posted by 블르샤이닝 2015. 10. 15. 17:55
728x90

난 풀었는데...스샷및 글쓰기 귀찮아서 그냥 비슷한 방법 찾아서 글올림. 전 POPAD로 해서 JMP 및 다른 메모리 주소로 이동되는거 해서 찾음...왜 아래 방법으로 안됐찌; 그냥 죽어버리던데...여튼 아래방법으로 된다함. 

--------------------------------------------------------------------------------------


UNPACK 순서

1. 올리디버거로 대상 프로그램 실행(ASPACK으로 패킹된)

2. MUP공식(?)으로 OEP를 찾은 다음 올리 덤프로 프로그램 덤프

3. IMPORT REC에서 원본 대상 프로그램을 실행하여 여 IAT를 찾은 후 덤프한 대상 프로그램에 덮어씌움

4. 덤프한 프로그램이 제대로 실행 되는지 획인 (UNPacking이 되었는지 확인)

 

 

1. 올리디버거로 대상 프로그램 실행

 

- 올리디버거를 실행하고 대상 프로그램을 불러옴

 

1) 경고 메시지가 나오면 확인을 누르고 코드 분석을 하겠냐는 메뉴에서 예를 누름

 

2. MUP공식(?)으로 OEP를 찾은 다음 올리 덤프로 프로그램 덤프

 

2) Step into (F7) 을 1번 누름

3) 레지스터 화면의 ESP를 선택하고 Follow in dump 를 누름

4) HEX 덤프 화면에서 ESP를 덤프한 것이 나오면 4바이트 (4칸)을 드래그 한 후

breakpoint => hardware on access ==> Dword를 선택함

5) Run (F8)을 누름

6) JNZ 로 시작하는 명령에서 실행이 멈춤

7) Step into (F7)을 2번 더 누름

8) Push로 시작되는 명령줄 밑 retn에 도달해 잇어야함

9) F7을 한번 더 누름

10) AS pack으로 암호화(?)된 문자열들 앞으로 이동함 (여기가 OEP)

11) Ctrl + A (Analyse Coed)를 누름

12) 코드가 제대로 보임

13) Plug in 메뉴에서 olly dump를 선택 한 후 modify 부분을 메모하고  Rubild import를 체크 해지후

Dump 버튼을 눌러 저장함 (임의의 이름으로 저장)

14) 올리 디버거를 종료하고 나옴

 

3. IMPORT REC에서 원본 대상 프로그램을 실행하여 여 IAT를 찾은 후 덤프한 대상 프로그램에 덮어씌움

 

15) 패킹된 원본(정상) 프로그램 실행

16) Import Rec를 실행하여 원본 프로그램을 로딩함

17) OEP 부분에 13에서 메모한 modify 주소를 넣고 IAT autoSearch를 누르고 Get imports를 누름

18) Imported Finctions Found에 IAT가 나옴

19) Fix dump를 누른 후 올리에서 덤프를 뜬 프로그램을 선택을 하여줌

 

4. 덤프한 프로그램이 제대로 실행 되는지 획인 (UNPacking이 되었는지 확인)

 

20) 덤프를 뜬 프로그램이 정상적으로 실행이 되는지 확인

21) 끝

728x90