Post

MPRESS unpacking

x32

F9 누르고 EntryPoint로 이동하면 pushad가 있다. F8 눌러서 실행한다. 보통 언패킹 이전에 이런 식으로 레지스터를 push해둔다. 언패킹이 끝나면서 다시 popad할 때, ESP 값이 현재 ESP 값과 동일한 상태에서 popad해야 레지스터가 제대로 복원되므로 ESP에 hardware bp를 건다.

1
2
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
7
push rdi
push rsi
push rbx
push rcx
push rdx
push r8

여기까지 진행하고 hardware bp.

1
2
bphwd rsp,rw

이후 똑같이 진행하면 된다.

This post is licensed under CC BY 4.0 by the author.