PyDBG
PyDBG에 대해서 알아보도록 하겠습니다.
먼저 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 |