PicturesToExe3.51的脫殼 (2千字)

看雪資料發表於2001-04-22

文章標題:PicturesToExe3.51的脫殼
加殼軟體:Asprotect1.2以上(本人估計,不一定準確)
文章重點:輸入表的修復(關於如何尋找入口點等可參考其他脫殼文章)
使用軟體:Trw2000、Import REConstructor v1.2 beta2、procdump162、Uedit32
參考文章:BestFont《用Import REConstructor v1.2 beta2 修復輸入表》
    PicturesToExe3.51用Asprotect加的殼,估計是1.2以上版本,用caspr1.012無法脫殼,只能手動。
    先用衝擊波2000找入口點,竟然沒有找到,看樣子得全手動了。祭起Trw2000,經過若干小時的艱苦奮戰(有點誇張),終於找到入口點為51133C,停下後用procdump162選“使用實際輸入表”然後dump(full),再修改入口為51133C,到此第一場戰役勝利結束。
    接下來就該修復輸入表了,按照《用Import REConstructor v1.2 beta2 修復輸入表》的方法修復,最後發現還有幾個無法解決,分別如下:
偏移        值
1161F8        E3C86C
116320        E3C874
116364        E3C834
1163B4        E3C864
1163BC        E3C87C
那麼這些值所指向的地址到底有什麼呢?我們看一下:
0167:00E3C834  MOV      EAX,[00E435D8]
0167:00E3C839  RET
(呼叫:00407824 FF2564635100            jmp dword ptr [00516364])

0167:00E3C864  MOV      EAX,[00E435E0]
0167:00E3C869  RET
(呼叫:00407784 FF25B4635100            jmp dword ptr [005163B4])

0167:00E3C86C  MOV      EAX,[00E43678]
0167:00E3C871  RET
(呼叫:004012C0 FF25F8615100            jmp dword ptr [005161F8])

0167:00E3C874  PUSH    EBP        \
0167:00E3C875  MOV      EBP,ESP         |實際什麼都沒幹,
0167:00E3C877  POP      EBP         |相當於 ret  04
0167:00E3C878  RET      04        /
(呼叫:004078AC FF2520635100            jmp dword ptr [00516320])

0167:00E3C87C  PUSH    EBP        \
0167:00E3C87D  MOV      EBP,ESP         |同上
0167:00E3C87F  POP      EBP         |
0167:00E3C880  RET      04        /
(呼叫:00407774 FF25BC635100            jmp dword ptr [005163BC])

先解決最後兩個,我們找到:0040402A C20400    ret 0004,所以只要將上面兩個呼叫處改為:
0167:004078AC E979C7FFFF    jmp 0040402A
0167:00407774 E9B1C8FFFF    jmp 0040402A
就行了。
再來看前面三個,發現:
[00E435D8]=C000A004
[00E435E0]=FFF9CAB3
[00E43678]=816CD848
而且都是固定不變的,所以可以這樣改:
00407824 B804A000C0              mov eax, C000A004
00407829 C3                      ret

00407784 B8B3CAF9FF              mov eax, FFF9CAB3
00407789 C3                      ret

004012C0 B848D86C81              mov eax, 816CD848
004012C5 C3                      ret
現在輸入表裡那些無用的垃圾就都沒用了,你可以隨便選一個函式填上去。然後將脫下來的原始檔案先修改一下,再修復輸入表,都做好以後就可以執行了。

相關文章