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