반응형
PE 악성코드를 분석하다보면, 디버깅은 뗄래야 뗄 수 없는 분석방법이다.
이 과정에서 실제 악성행위를 하는 부분이나 혹은 분석가가 원하는 부분만을 디버깅하는 것이 중요하다.
(나는 실제로 간단한 샘플을 초기에 ntdll부터 디버깅을 해서 아주 고생한적이 있다.)
데이터파일이나 메모리상에 존재하는 쉘코드를 읽어서 특정 프로세스에 주입시키거나,
어떤 지점으로 가고자 할 때 쓰는 방법이 있다.
* 해당 dll이나 exe파일이 어떤 데이터파일을 읽어온다면, (주로 CreateFile -> ReadFile -> VirtualAlloc~ )
그 데이터파일을 올리디버거가 존재하는 동일 경로에 놓아야한다.
쉘 코드의 시작지점이나 아니면 원하는 모듈의 EP를 EB FE(jmp 0x0)로 변경하여 디버깅을 시도한다.
이 후에 디버깅을 시도하면, 분석하고자하는 부분의 시작점에서 멈춰있는 것을 확인할 수 있다.
이후 디버거에서 해당 부분을 원래 opcode로 수정하여 다시 분석을 진행하면 된다.
또한, 올리디버거 기준으로 New Origin Here로 원하는 곳으로 강제 분기할 수 있다.
이 방법은 우리가 원하는 곳을 어셈블리코드 상에서 어디인지 정확히 알 경우에 이야기이고,
그렇지 않다면 위에 방법을 활용할 수 있다!
반응형
'Rev > Info' 카테고리의 다른 글
WS2_32.connect (0) | 2023.02.24 |
---|---|
BAT 2 EXE (0) | 2022.06.16 |
랜섬웨어 주요 암호화 알고리즘 (0) | 2022.03.22 |
Python - Subprocess Error (0) | 2022.03.20 |
[Malware] Cobalt Strike (0) | 2022.02.25 |