MPRESS unpacking
x32
`` F9`` 누르고 EntryPoint로 이동하면 `` pushad``가 있다. `` F8`` 눌러서 실행한다.
보통 언패킹 이전에 이런 식으로 레지스터를 push해둔다.
언패킹이 끝나면서 다시 `` popad``할 때, ESP 값이 현재 ESP 값과 동일한 상태에서 `` popad``해야 레지스터가 제대로 복원되므로 ESP에 hardware bp를 건다.
```c
bphws esp,rw
```
bp에 걸리면 `` jmp`` instruction이 있을건데, 여기서 OEP로 jmp한 다음
Scylla를 이용해 Unpacked binary를 Dump한다.
x64
x64에는 `` pushad`` instruction이 없기 때문에 `` F9`` 누르고 EntryPoint로 이동하면 다음 instructions가 있다.
```c
push rdi
push rsi
push rbx
push rcx
push rdx
push r8
```
여기까지 진행하고 hardware bp.
```c
bphwd rsp,rw
```
이후 똑같이 진행하면 된다.
'Security > Reversing & Dbg' 카테고리의 다른 글
python decompile (0) | 2017.11.19 |
---|---|
[Windows] injection & hooking (0) | 2017.08.07 |
[Linux] injection (0) | 2017.08.07 |
gdb peda / gdb-multiarch (0) | 2017.07.13 |
gdb (0) | 2017.07.12 |