2012-09-14 3 views
2

은 접근 다음 Notepad.exe와 사용에 주사를 수행맬웨어 주입 코드를 디버깅하는 방법은 무엇입니까? 나는 악성 코드를 디버깅하고

CreateProcess(notepad.exe , create_suspend) 
GetThreadContext 
VirtualProtectEx 
WriteProcessMemory(address=1000000, Size:10200) 
WriteProcessMemory(address=7FFD8008, Size:4) 
SetThreadContext 
ResumeThread 
  1. 이 다시 시작하기 전에 디버거에 Notepad.exe를 첨부 할 PID가 없습니다.
  2. 이력서가 끝나면 스레드가 너무 빨리 실행되므로 시간적으로 ollydgb에 연결할 수 없습니다.
  3. I 메모리를 덤프하고 Notepad.exe, 에 쓰는 것부터 PE로 저장하지만 오류와 함께 실행됩니다.

어떻게 맬웨어 주입 코드를 디버깅합니까? 감사!!

답변

0

CreateProcess가 반환 된 후에 프로세스가 이미 존재해야하며이 프로세스에 연결할 수 있어야합니다. 또 다른 방법은 ResumeThread 호출을 건너 뛰고 그 시점에 연결하는 것입니다.

2
  1. WriteProcessMemory를 호출하기 전에 삽입 된 코드의 첫 번째 바이트를 'int 3'(opcode는 cc)으로 수정해야합니다.
  2. OD는 주 스레드를 시작하지 않은 프로세스에 연결할 수 없으므로 대신 WinDbg를 사용하십시오.
  3. WinDbg가 하위 프로세스에 연결된 후 ResumeThread를 호출합니다.
  4. 주 스레드를 실행하려면 F5 키를 누릅니다.
  5. 'int 3'이 보일 때 주 스레드가 멈추게됩니다. 이제 바이트를 원래 값으로 변경해야합니다. 예를 들면 다음과 같습니다. eb addr_to_change 55. PS : opcode 55는 'push ebp'를 의미합니다.이 명령은 한 함수의 시작 부분에서 가장 많이 사용되는 명령입니다.
  6. 이제 F10 키를 눌러 단일 단계 디버깅을 시작하십시오.
+0

감사합니다. 시도해 보겠습니다. – user1177284

관련 문제