포스팅 썸네일 이미지

SYSTEM HACKING

[Cheat Engine] 기본적인 사용법 / 단축키

Cheat Engine 기본적인 사용법 몇 달 안썼더니 다까먹어서... 또 까먹을 미래의 나를 위해 기록 (개인 기록용이라 대충 작성되어있고, 틀린 부분이 있을 수 있습니다. 있으면 댓글로 알려주세요) 0. 기본 설정(Debug 우회) Windows에서 Cheat Engine을 사용하면 기본적으로 Windows Debugger를 사용하고 있는데, 이걸 감지하는 경우가 있음. 이 경우 Edit > Settings > Debugger Options > Debugger Method에서 Use VEH Debugger 사용 이게 모든걸 우회해주지는 않지만, 우회되는 프로그램들이 많음 1. Search String 프로그램을 실행시켜서 보이는 문자열/값들은 모두 메모리 어딘가에 기록될 수 밖에 없음. 따라서 이를 ..

2022.01.25 게시됨

 포스팅 썸네일 이미지

SYSTEM HACKING/PWNABLE

[Python] Built-in 객체 사용하기, 응용하기 (Python RCE)

Built-in 객체 사용하기, 응용하기 (for CTF) Python built-in functions (Python RCE) 요즘 python으로 포너블 문제가 많이 나오던데, 왠만하면 이거 관련 문제들이여서 한번 정리하려고 합니당 1. __builtin__ 객체 소개 일단 'built-in'함수라는건 누구나 알고 있다고 생각합니다. 그 python에서 기본적으로 제공하는 그 함수들 맞아유! 더 중요하게 봐야할 건 built-in 객체입니다. 예를 들어, builtins.open 은 내장 함수 open() 의 완전한 이름입니다. 이렇게 모든 내장 식별자를 연결하는 액세스를 제공합니다. 어려워 보일 수 있는데 사실 우리가 평소에 사용하던 것들입니다. 혹시나 더 궁금하신 분들은 여기로 #1. Using ..

2021.05.14 게시됨

 포스팅 썸네일 이미지

SYSTEM HACKING/PWNABLE

[STACK] mprotect ROP

ROP using mprotect 오늘은 기존의 ROP와는 조금 다른 것을 해보려고 합니다. 기존에는 system함수를 이용해서 권한을 얻는 식이라면, 이번에는 mprotect함수를 이용해서 권한을 획득하는 방식의 ROP에 대해서 알아보려고 합니다. 1. mprotect함수란 기본적으로 mprotect함수에 대해서 알아보도록 합시다. mprotect함수는 메모리에 대한 접근을 제어하는 함수로, 원형은 다음과 같습니다. #include int mprotect(const void *addr, size_t len, int prot); - addr : 접근을 제어할 주소 - len : 주소 기준으로 관여할 길이 - prot : 다음 값들의 비트OR값이다. PROT_NONE : 접근할 수 없다. PROT_READ..

2021.03.17 게시됨

 포스팅 썸네일 이미지

SYSTEM HACKING/PWNABLE

그래서 우리가 포너블을 하는 이유

물론 저도 부족한 지식이지만 동아리 활동을 통해 포너블에 대해 후배들을 가르치면서, 가장 많이 설명한 부분이 "포너블이 무엇이고, 왜 하는가"에 대한 부분입니다. 저는 처음 공부할 당시에 정말 맨땅에 헤딩 식으로 공부를 했기 때문에, 정확하게 내가 왜 이걸 하고 있으며 결론적으로 이루고 싶은 바가 무엇인지도 모르고 그냥 풀었습니다. 저는 어떤 일이든 내가 어떤 일을 하고있으며, 이 일의 목적은 무엇인지 파악하는 것이 매우 중요하다고 생각하는 반면에 구글을 찾아보면 무작정 워게임들을 추천하는 글밖에 없는 것 같아서 이 글을 작성합니다. (혹시나 잘못 작성된 부분이 있다면 댓글 부탁드립니다. 감사합니다!) 0. 포너블이란 사실 이내용은 조금만 찾아봐도 널려있는 내용이라 간단하게 하고 넘어가겠습니다. 우선 왜..

2021.03.07 게시됨

 포스팅 썸네일 이미지

SYSTEM HACKING/PWNABLE

[Stack] Stack Frame 공부하기 - 2

Stack Frame -2- 오늘은 Stack Frame에 대해서 더 자세히 들여다보도록 합시다. 저번에는 전체적인 흐름에 대해서 파악해보았다면, 이번에는 하나의 함수에만 집중해서 정확히 어떤 일들이 일어나는지 확인해보도록 하겠습니다. (참고)앞으로의 내용은 기본적으로 메모리 주소(ex. C언어의 pointer 등등..)에 대한 기본적인 이해는 있다는 전제 하에 작성된 글입니다. 1. 더 자세히 들여다보기 이번에는 조금은 다른 코드를 통해서 분석해보도록 합시다. //gcc -m32 -g -o ex2 ex2.c #include int main() { int a = 5; char arr[64]; printf("main함수가 호출되었습니다\n"); return 0; } 위 코드는 저번 글에서 사용한 코드에서 ..

2021.03.02 게시됨

 포스팅 썸네일 이미지

SYSTEM HACKING/PWNABLE

[Stack] Stack Frame 공부하기 - 1

Stack Frame -1- 오늘은 Stack Frame에 대해서 배울 예정입니다. 앞으로 2~3개의 글을 통해서 기본적으로 Stack Frame이 무엇인지, 시스템 보안을 하는 사람의 입장에서는 어떤 것들을 알고 있어야 하는지, 그리고 나아가 Stack Frame을 분석할 수 있는 툴 중 하나인 gdb 사용방법을 작성할 예정입니다. 1. Stack Frame이란? 사실 Stack Frame이라는 말보다는 그냥 Stack, Stack 자료구조정도로 더 많이 쓰이는 것 같습니다. 기본적으로 프로그램이라고 함은 컴퓨터의 메모리를 사용해서 이런저런 연산/작동을 수행하는 것을 칭하죠. 그럼 이런 프로그램들이 수십개가 실행되고 있는 컴퓨터에서는 메모리를 효율적으로, 잘 쓰는게 중요하겠죠? 그래서 이 프로그램들이 ..

2021.03.01 게시됨