MPRESS unpacking
x32
F9
누르고 EntryPoint로 이동하면 pushad
가 있다. F8
눌러서 실행한다. 보통 언패킹 이전에 이런 식으로 레지스터를 push해둔다. 언패킹이 끝나면서 다시 popad
할 때, ESP 값이 현재 ESP 값과 동일한 상태에서 popad
해야 레지스터가 제대로 복원되므로 ESP에 hardware bp를 건다.
1
bphws esp,rw
bp에 걸리면 jmp
instruction이 있을건데, 여기서 OEP로 jmp한 다음 Scylla를 이용해 Unpacked binary를 Dump한다.
x64
x64에는 pushad
instruction이 없기 때문에 F9
누르고 EntryPoint로 이동하면 다음 instructions가 있다.
1
2
3
4
5
6
push rdi
push rsi
push rbx
push rcx
push rdx
push r8
여기까지 진행하고 hardware bp.
1
bphwd rsp,rw
이후 똑같이 진행하면 된다.
This post is licensed under CC BY 4.0 by the author.