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 编辑 ] 脱壳正确,OEP也正确,这个文件会自己修改PE,脱壳的时候尽量使用LOADPE来脱壳,所以,你不能重建输入表是很正常的,再者,你修改这个文件的时候由于没有使用LOADPE脱壳,改动的话,肯定是要出问题的...偶也是刚刚开始学脱壳的,才学到FSG,不知能否知你的联系方式
[ 本帖最后由 CorpUlent 于 2006-3-14 12:27 编辑 ] 谢谢提示,不知你要我的哪种联系方式,可以给我发短信和邮件,我估计我找到的OEP不对。
页:
[1]