본문 바로가기

Python Hacking Programming3

Python Hacking Programming (3) 파이썬 해킹 프로그래밍 (Python Hacking Programming) 저자 : 저스틴 지이츠출판사 : 에이콘 3장. 윈도우 디버거 개발[3.4] 브레이크포인트 소스파일 my_debugger.py 소스파일 my_test.py 소스파일 print_loop.py [3.4 브레이크포인트]1. 소프트 브레이크포인트 소프트 브레이크포인트를 설정하기 위해서는 프로세스의 메모리를 읽고 쓸 수 있어야 한다. 이를 위해 사용하는 함수가 바로 ReadProcessMemory()와 WriteProcessMemory() 이 두 함수다. BOOL ReadProcessMemory( HANDLE hProcess, LPCVOID lpBaseAddress, LPVOID lpBuffer, DWORD nSize, LPDWORD lpN.. 2013. 11. 10.
Python Hacking Programming (2) 파이썬 해킹 프로그래밍 (Python Hacking Programming) 저자 : 저스틴 지이츠출판사 : 에이콘 3장. 윈도우 디버거 개발[3.3] 디버그 이벤트 핸들러 구현 [3.3 디버그 이벤트 핸들러 구현]이벤트가 발생했을 때 디버거가 그 이벤트에 반응하기 위해서는 각 디버깅 이벤트에 대한 핸들러를 구현해야 한다. WaitForDebugEvent() 함수를 통해 이벤트가 발생할 때마다 DEBUG_EVENT 구조체를 매번 반환한다. 다음 DEBUG_EVENT 구조체를 살펴보자. typedef struct _DEBUG_EVENT { DWORD dwDebugEventCode; DWORD dwProcessId; DWORD dwThreadId; union { EXCEPTION_DEBUG_INFO Excep.. 2013. 11. 10.
Python Hacking Programming (1) 파이썬 해킹 프로그래밍 (Python Hacking Programming) 저자 : 저스틴 지이츠출판사 : 에이콘 3장. 윈도우 디버거 개발[3.1] 윈도우 디버거 개발[3.2] CPU 레지스터 상태 얻기 소스코드 입니다. 역시 소스코드에 오타가 좀 있었군요 . . . [3.1 윈도우 디버거 개발]프로세스를 디버깅하려면 어떤 식으로든 먼저 해당 프로세스를 디버거와 연결해야 한다. 그래서 디버깅할 프로세스를 실행시키거나, 이미 실행돼 있는 프로세스에 attach를 해야 한다. 프로세스를 실행시키는 경우는 디버거가 실행 바이너리를 직접 실행하는 것인데, 이 경우 해당 프로세스의 코드가 실행되기 전에 제어를 할 수 있다는 장점이 있다. 윈도우에서는 프로세스를 실행시킬 때 CreateProcess() 함수를 호.. 2013. 11. 10.