wzwgp 发表于 2006-2-26 12:03:35

UPX+IAT加密的问题

我是新手,正在学习脱壳,有几个问提请教各位大侠。

PEiD 查壳:UPX 0.89.6 - 1.02 / 1.05 - 1.24 -> Markus & Laszlo

OD载入 有提示:……可能被压缩,加密,或包含大量的嵌入数据……。
选“否”来到:

0057BE60 >60            PUSHAD          壳入口关键词:PUSHAD
0057BE61    BE 00404800   MOV ESI,TGL.00484000
0057BE66    8DBE 00D0B8FF   LEA EDI,DWORD PTR DS:

bp LoadLibraryA

7C801D77 >8BFF            MOV DI,EDI       ; 断在此
7C801D79    55            PUSH EBP

F2   Alt+F9

0057BF9C    95            XCHG EAX,EBP    返回程序领空后在此
0057BF9D    8A07            MOV AL,BYTE PTR DS:
0057BF9F    47            INC EDI
0057BFA0    08C0            OR AL,AL
0057BFA2^ 74 DC         JE SHORT TGL.0057BF80
……中间省略部分代码……
0057BFF1^ EB E2         JMP SHORT TGL.0057BFD5   回跳
0057BFF3    61            POPAD           关键词:POPAD
0057BFF4- E9 9F22C9FF   JMP TGL.0020E298         跳往 OEP

OllyDump脱壳

0020E298    55            PUSH EBP       JMP 飞到此
0020E299    8BEC            MOV EBP,ESP
0020E29B    B9 06000000   MOV ECX,6
0020E2A0    6A 00         PUSH 0
0020E2A2    6A 00         PUSH 0
0020E2A4    49            DEC ECX

OllyDump脱壳后:
PEiD 再查:Borland Delphi 4.0 - 5.0

有几个问题请教:
1.这样脱壳正确吗?0020E298处是OEP吗?
2.有自校验,IAT加密,ImportREC不能重建输入表,是否一定要重建输入表后才能去除有自校验。
3.在脱壳后的文件中作如下改动后:
00066AE4    E8 AB85FBFF   CALL zh.0001F094
00066AE9    84C0            TEST AL,AL
00066AEB    74 07         JE SHORT zh.00066AF4  JE 改成 JNE
00066AED    6A 00         PUSH 0
00066AEF    E8 8022FBFF   CALL <JMP.&USER32.PostQuitMessage>
00066AF4    C3            RET         
 程序可以运行了,但不能退出,退出时出错,能提示一下问题出在什么地方吗?
4.在0020E298处(我以为是OEP)处,光标往上拖动一下想看上面的代码,代码就变成如下:
0020E285    DC20            FSUB QWORD PTR DS:
0020E287    00C4            ADD AH,AL
0020E289    DC20            FSUB QWORD PTR DS:
0020E28B    0094DC 20000000 ADD BYTE PTR SS:,DL
0020E292    0000            ADD BYTE PTR DS:,AL
0020E294    EC            IN L,DX         
0020E295    DC20            FSUB QWORD PTR DS:
0020E297    0055 8B         ADD BYTE PTR SS:,DL
0020E29A    EC            IN L,DX                   ; I/O 命令
0020E29B    B9 06000000   MOV ECX,6
0020E2A0    6A 00         PUSH 0
0020E2A2    6A 00         PUSH 0
0020E2A4    49            DEC ECX

0020E298不见了,不知是什么原因。


希望能得到高手的指点,先谢了。

[ 本帖最后由 wzwgp 于 2006-2-26 04:08 编辑 ]

CorpUlent 发表于 2006-3-14 20:24:05

脱壳正确,OEP也正确,这个文件会自己修改PE,脱壳的时候尽量使用LOADPE来脱壳,所以,你不能重建输入表是很正常的,再者,你修改这个文件的时候由于没有使用LOADPE脱壳,改动的话,肯定是要出问题的...偶也是刚刚开始学脱壳的,才学到FSG,不知能否知你的联系方式

[ 本帖最后由 CorpUlent 于 2006-3-14 12:27 编辑 ]

wzwgp 发表于 2006-3-15 09:08:25

谢谢提示,不知你要我的哪种联系方式,可以给我发短信和邮件,我估计我找到的OEP不对。
页: [1]
查看完整版本: UPX+IAT加密的问题