ASPROtect 1.22加殼的ahaview2.0脫殼 (5千字)

看雪資料發表於2002-03-24

ASPROtect 1.22加殼的ahaview2.0脫殼
crack by fwnl
軟體簡介:AhaView是一個功能單純的看圖軟體,具有類似資源管理的樹狀目錄分類,可以顯示目錄內所有圖片的縮圖,也可用全螢幕模式檢視單張圖片。
軟體下載:http://gwbn.onlinedown.net/down/ahaview.exe

由於這個程式是用Aspr1.22(FI 249查的)加殼,所以caspr不能脫此殼,於是就只有手動來脫了。

一.找入口點

    由於是delphi程式,所以利用快速尋找aspr入口的方法:

    執行ahaview2.0,用prodump選dump(full)脫殼,存為dump.exe。接著用UltraEdit32開啟dump.exe,ALT+F3,填runtime,選中查詢ASCⅡ,執行搜尋,搜到後,向上查詢離runtime最近的機器碼為55 8B EC的地方就是程式的oep,而在AhaView.exe裡這個位置在offset:000E3978處,用peditor的flc功能將它轉換為virtual address就是004e3978----oep。

二.用trw2000初步脫殼

  下面要在入口處脫殼,開啟SuperBPM,點erase,用trw載入Any2Icon.exe,下g 4e3978,接著下pedump脫出程式.

三.修復import table

  開啟原加殼程式,在Import REConstructor v1.4.2+ 的 Attach to an Active Process 視窗中選取ang2icon.exe的程式,然後在下方的oep處填入000e3978,點IAI AutoSearch,再點Get Imports 然後點Show Invalid,在Imported Functions Found視窗裡的無效地址上點滑鼠右鍵,選Trace Leve11(disasm),再點show invaids,發現還有幾個沒有修復,再次在那幾個沒有修復的地址上點滑鼠右鍵.
  選中Plugin Tracer(Asprotect 1.2X Emul),再點show invaids應發現所有的dll顯示 valid:Yes了。然後點Fix Dump,選中你用trw2000 pedump出的檔案修復.
  這樣修復後的程式還是不能執行.於是我們要看程式在那裡出錯,然後再用原版的對比看.

0167:004E3978  PUSH    EBP                      //入口
0167:004E3979  MOV      EBP,ESP
0167:004E397B  ADD      ESP,BYTE -10
0167:004E397E  XOR      EAX,EAX
0167:004E3980  MOV      [EBP-10],EAX
0167:004E3983  MOV      EAX,004E3578
0167:004E3988  CALL    004065E4
0167:004E398D  XOR      EAX,EAX
0167:004E398F  PUSH    EBP
0167:004E3990  PUSH    DWORD 004E39F3
0167:004E3995  PUSH    DWORD [FS:EAX]
0167:004E3998  MOV      [FS:EAX],ESP
0167:004E399B  MOV      EAX,[004E89B0]
0167:004E39A0  MOV      EAX,[EAX]
0167:004E39A2  CALL    00451EBC
0167:004E39A7  MOV      EAX,[004E89B0]
0167:004E39AC  MOV      EAX,[EAX]
0167:004E39AE  MOV      EDX,004E3A08
0167:004E39B3  CALL    00451AC0
0167:004E39B8  LEA      EAX,[EBP-10]
0167:004E39BB  CALL    00453458
0167:004E39C0  MOV      EDX,[EBP-10]
0167:004E39C3  MOV      EAX,[004E89B0]
0167:004E39C8  MOV      EAX,[EAX]
0167:004E39CA  ADD      EAX,BYTE +40
0167:004E39CD  MOV      ECX,004E3A18
0167:004E39D2  CALL    00404014
0167:004E39D7  CALL    NEAR [004E8620] 這個call指向cec8fb,F8進去全是?號
0167:004E39DD  XOR      EAX,EAX

用原未脫殼的程式進入0167:004E39D7  CALL    NEAR [004E8620]發現到了下面這裡:

0167:00CEC8FB  NOP   
0167:00CEC8FC  CMP      DWORD [00CF35A8],BYTE +00
0167:00CEC903  JZ      00CEC90b
0167:00CEC905  CALL    NEAR[00CF35A8] //f8進入
就來到了下面這裡
0167:004E34F3  RET   
0167:004E34F4  PUSH    EBX            //CALL    NEAR [004E8620]真正指向
0167:004E34F5  XOR      EBX,EBX
0167:004E34F7  CALL    00402A10
0167:004E34FC  TEST    EAX,EAX

於是知道脫出的程式少了CXXXXX到CXXXXXX這段。

我們首先d cec8fb,然後Alt+Page Up ,當看到資料框內如下顯示
可知道這段資料從CE0100開始.


0030:00CE0FE0 ?? ?? ?? ?? ?? ?? ?? ??-?? ?? ?? ?? ?? ?? ?? ?? 
0030:00CE0FF0 ?? ?? ?? ?? ?? ?? ?? ??-?? ?? ?? ?? ?? ?? ?? ?? <---空地址了
0030:00CE1000 0A 06 73 74 72 69 6E 67-00 00 00 00 00 00 00 00 ..string........
0030:00CE1010 00 00 00 00 00 00 00 00-3C 10 C9 00 00 00 00 00 ........<.?....
0030:00CE1020 6D 11 C9 00 04 00 00 00-00 00 00 00 B0 29 C9 00 m.?........??
0030:00CE1030 98 28 C9 00 C0 28 C9 00-04 29 C9 00 11 00 0B 00 ????.)?....
0030:00CE1040 10 29 C9 00 04 46 72 65-65 13 00 1C 29 C9 00 0C .)?.Free...)?.

然後Alt+Page Down ,當看到資料框內如下顯示
可知道這段資料從cF8000結束.

0030:00CF7FD0 00 00 00 00 00 00 00 00-00 00 00 00 00 00 00 00 ................
0030:00CF7FE0 00 00 00 00 00 00 00 00-00 00 00 00 00 00 00 00 ................
0030:00CF7FF0 00 00 00 00 00 00 00 00-00 00 00 00 00 00 00 00 ................
0030:00CF8000 ?? ?? ?? ?? ?? ?? ?? ??-?? ?? ?? ?? ?? ?? ?? ?? <---空地址了
0030:00CF8010 ?? ?? ?? ?? ?? ?? ?? ??-?? ?? ?? ?? ?? ?? ?? ?? 
0030:00CF8020 ?? ?? ?? ?? ?? ?? ?? ??-?? ?? ?? ?? ?? ?? ?? ?? 

    於是我們就在trw2000中w CE1000 CF8000 new.bin.來儲存出new.bin
用winhex開啟dump_.exe和NEW.bin把NEW.bin的內容貼上到dump_.exe的最後,然後再用peditor載入dump_.exe,點sections,然後右鍵點add a section新增一個新段名字為new.然後選中new這段section,右鍵點edit ection編輯它,由於CF8000-CE1000=17000,所以在Virtuel Siae填入00017000,Virtuel Offsize 填008E1000 ,因為(cE1000-400000=8E1000), Raw填00017000,然後點apply changes來儲存修改。最後再點rebuilder,去掉所有的勾,只保留 make PE Header win nt/2k compatible這一項.然後點do這樣就重建好的Pe頭了.

呵呵,這樣程式就可以執行了,好像沒什麼錯誤,脫殼後的東西不能用下面的這個key註冊,這個東西的註冊版我還是脫不了呀,各位大哥幫忙看看呀.謝謝了.

這個東西的註冊key: 0Klum1it1rCgBqNbtZwcvn8VzbIiGRUiN8sWOI9OP7GNX/SrjmJU0gvxCz            ?? JRlA8eYj5ZTz+D/KPZI2lLKEd1oNV28TnfdgZUCOaNpgKtp/JVIQeaZ5Gs            ?? 3gIHiOV6RjghDLecqi6PM5ECbzfl3sN5qO0AvxLrtOvB5lbzpP+UKlqA=                                                           

                                                                            fwnl
                                                                          2002.3.24
                                                                            長沙

相關文章