DLL脱壳UPX
这个我让别人脱完以后传给我了。我自己脱了几次 入口点 和他的都对不上。
简单说一下我的步骤。
然后OD。 隐藏载入 这个DLL文件
00903000 >E8 00000000 CALL XYQ.00903005 //载入后停在这个位置
00903005 5D POP EBP
00903006 81ED 05304800 SUB EBP,483005
0090300C 81C5 01004800 ADD EBP,480001
00903012 55 PUSH EBP
00903013 58 POP EAX
00903014 FFE0 JMP EAX
00903016 8BC2 MOV EAX,EDX
00903018 C3 RETN
然后F9运行弹出 错误框 模块 LOADDLL 具有空代码段我点的确定.
00881000 /04108800 DD XYQ.00881004// F9运行 错误确定后 停在这个位置
00881004 \03 DB 03
00881005 .07 DB 07
00881006 .42 6F 6F 6C 6>ASCII "Boolean"
0088100D 01 DB 01
0088100E 00 DB 00
0088100F 00 DB 00
F8向下走
00410277 A1 CC004200 MOV EAX,DWORD PTR DS:
0041027C 83F8 12 CMP EAX,12
0041027F^ 0F85 C4FEFFFF JNZ LOADDLL.00410149 // F8 走到这个位置 (跳转实现)
00410285 6A 00 PUSH 0 // 在这个位置F4然后关掉 ollydbg dll loader
00410287 E8 18080000 CALL <JMP.&KERNEL32.ExitProcess>
然后继续 F8 向下走
00900001 60 PUSHAD
00900002 E8 03000000 CALL XYQ.0090000A // F8 走到这个位置 F7 进入
00900007- E9 EB045D45 JMP 45ED04F7
0090000C 55 PUSH EBP
0090000D C3 RETN
继续F8 向下走
00900008 /EB 04 JMP SHORT XYQ.0090000E // 在这里跳转实现
0090000A |5D POP EBP
0090000B |45 INC EBP
0090000C |55 PUSH EBP
0090000D |C3 RETN
0090000E \E8 01000000 CALL XYQ.00900014 // JMP 跳转到这里 F7 进入
00900013 EB 5D JMP SHORT XYQ.00900072
00900015 BB EDFFFFFF MOV EBX,-13
继续 F8 向下走
008E883C 55 DB 55 // 停在这里然后 从模块删除分析
008E883D 8B DB 8B
008E883E EC DB EC
008E883F 83 DB 83
008E8840 C4 DB C4
删除分析后 显示为
008E883C 55 PUSH EBP // 我个人觉得这个位置就是 OEP
008E883D 8BEC MOV EBP,ESP
008E883F 83C4 C4 ADD ESP,-3C
008E8842 B8 EC858E00 MOV EAX,XYQ.008E85EC
008E8847 E8 BCE1F9FF CALL XYQ.00886A08
008E884C E8 03BEF9FF CALL XYQ.00884654
008E8851 8D40 00 LEA EAX,DWORD PTR DS:
008E8854 0000 ADD BYTE PTR DS:,AL
然后用 LordPE 脱壳 (选DLL 文件)
ImportREC 选DLL文件 修复 (选项里只保留了 修正EP到OEP 和 启用调试权限)
到修复这里 就卡壳了 试了好几种方法, 即使是修复了 出来后查到的 入口点 也和他给我传过来的对不上.
不是软件版本问题 OD我用了五个版本的 (DYK 第二版 第三版 fly 野猪Dbg)
LordPE 我用了两个版本的(包括英文版)
ImportREC 我也用了三个版本的(1.6版 1.7版 和 Fly 的修正美化版)
[ 本帖最后由 峰云星炫 于 2008-7-2 13:02 编辑 ] 这个是他脱掉后 PEID 查到的信息
OD 载入后
008E883C > $ /E9 49010000 JMP XYQ_112.008E898A // 载入后 停在这个位置
008E8841 |90 NOP
008E8842 |90 NOP
008E8843 |90 NOP
008E8844 |90 NOP
008E8845 |D8 DB D8
008E8846 |90 NOP
008E8847 |90 NOP
008E8848 |90 NOP
008E8849 |90 NOP 你把DLL基址弄错了吧应该是:870000 你试试这个,我发觉这个是ASPACK的壳,不是UPX啊!
页:
[1]