본문 바로가기

Programming/Python

PyDBG

PyDBG


PyDBG에 대해서 알아보도록 하겠습니다.



PaiMei-1.1.win32.exe


먼저 PaiMei-1.1.win32.exe를 설치 합니다. 설치 후 pydasm.pyd를 C:\python27\Lib\site=packages\pydbg\에 넣습니다.

마찬가지로 첨부된 __init__.py를 C:\python27\Lib\ctypes\에 넣습니다.


cmd 창에서 C:\python27\Lib\site-packages로 이동합니다. 그 후 python easy_install.py build -c mingw32 를 입력합니다.

python을 실행하여 import pydbg를 했을 때 오류가 없으면 설치가 완료됩니다.




가상 XP에서 다음 소스코드를 작성합니다.




echo-server-strcpy 프로그램을 실행 한 후 cmd에서 위 소스코드를 실행합니다.

이 소스코드를 실행할 때 파일이름.py PID를 입력해줍니다.


그 후 Ubuntu에서 exploit.py를 실행하도록 합니다.





위 소스코드를 분석해 보도록 하죠.


EXCOPTION_ACCESS_VIOLATION은 접근 위반 예외가 발생했을 때를 의미합니다.

예외가 발생했을 때 detect_overflow 함수로 이동하죠.


if 문의 dbg.dbg.u.Exception.dwFirstChance일 경우 return DBG_EXCEPTION_NOT_HANDLE을 하고 있는데 이것은 첫 번째 발생한 예외라면 건너 뛰는 것입니다.

왜냐하면 첫 번째 발생한 예외는 운영체제에서 발생하는 예외이기 때문입니다.


그 후 EIP 값을 출력해 줍니다.



'Programming > Python' 카테고리의 다른 글

API 모니터링  (0) 2016.03.15
Pydasm을 이용한 디스어셈블링  (0) 2016.03.15
PE 분석  (0) 2016.03.15
Pyhook  (2) 2016.03.14
Assemble, Disassemble, Search  (0) 2016.03.14