找回密码
 注册
搜索
热搜: 回贴

脱壳技术,手动脱壳入门第十二篇Dxpack 0.86(图),脱壳

2010-1-30 18:18| 发布者: admin| 查看: 70| 评论: 0|原作者: 琴姬


脱壳技术,手动脱壳入门第十二篇Dxpack 0.86(图),脱壳
2008年06月23日 星期一 下午 03:11
【脱文标题】 手动脱壳入门第十二篇Dxpack 0.86



【脱文作者】 weiyi75[Dfcg]



【作者邮箱】 weiyi75@sohu.com



【作者主页】 Dfcg官方大本营



【使用工具】 Peid,Ollydbg



【脱壳平台】 Win2K/XP



【软件名称】 Dxpack 0.86加壳的一个Win98的记事本



【软件简介】 Dxpack 是一Win32PE格式可执行文件压缩程序,程序界面有中英文两种。可以压缩资源,输入输出表。打开文件可以用三种方法,1:用界面上的打开按钮,2:直接拖放文件,3:右健菜单或命令行。主要目的是减少可执行文件的体积。兼可起到加密可执行文件的目的。程序压缩过后执行速度不会减慢,对于大的文件,甚至有所改善。由于时间有限,压缩算法采用Joergen Ibsen'"aPLib"库。没有自行研究压缩算法Joergen Ibsen'"aPLib"库可以免费用于个人用户,本程序及可免费用于个人用户。



【软件大小】 17.6 KB



【加壳方式】 未知壳



【保护方式】 Dxpack



【脱壳声明】 我是一只小菜鸟,偶得一点心得,愿与大家分享:



软件截图。







程序下载地址



本地下载



首先必须的工具要准备好

脱壳目标,Dxpack0.86加壳的记事本。



本地下载



用Peid或FI测NOTEPAD.EXE都不能识别,因为它是国产的壳,名气也不高,着名的终极上网提速软件就是用这个软件加的壳,并略作修改使Peid查不出Oep。两大查壳软件数据库中无它的特征码,不过在加壳目标用Peid查看Ep区段可看到.dxpack的加壳标志。看截图压缩选项和软件名可知道这个软件非加密壳,以压缩为目的.

手动脱壳建议大家用Ollydbg,工作平台Win2000,WinXp,Win9x不推荐。

手动脱壳时,用Olldbg载入程序,脱壳程序里面会有有好多循环。对付循环时,只能让程序往前运行,基本不能让它往回跳,要想法跳出循环圈。不要用Peid查入口,单步跟踪,提高手动找入口能力。



用OD载入程序后。

确定一个入口警告,然后Od提示程序加壳,选不继续分析。

停在这里

0040D000 > 60 PUSHAD 通过前面的文章是不是很熟悉这个指令了,出口处会有PopAd指令与它对应。

0040D001 E8 00000000 CALL NOTEPAD.0040D006 变形jmp

0040D006 5D POP EBP

0040D007 8BFD MOV EDI,EBP

0040D009 81ED 06104000 SUB EBP,NOTEPAD.00401006

0040D00F 2BBD 94124000 SUB EDI,DWORD PTR SS:[EBP 401294]

0040D015 81EF 06000000 SUB EDI,6

0040D01B 83BD 14134000 0>CMP DWORD PTR SS:[EBP 401314],1

0040D022 /0F84 2F010000 JE NOTEPAD.0040D157 这里没跳走,让我们到40D157看看

0040D028 |C785 14134000 0>MOV DWORD PTR SS:[EBP 401314],1

0040D032 |89BD 1C134000 MOV DWORD PTR SS:[EBP 40131C],EDI

0040D038 |8D9D B2114000 LEA EBX,DWORD PTR SS:[EBP 4011B2]

0040D03E |8DB5 65114000 LEA ESI,DWORD PTR SS:[EBP 401165]

0040D044 |46 INC ESI

0040D045 |803E 00 CMP BYTE PTR DS:[ESI],0

0040D048 |74 24 JE SHORT NOTEPAD.0040D06E

0040D04A |56 PUSH ESI

0040D04B |FF95 34124000 CALL DWORD PTR SS:[EBP 401234]

0040D051 |46 INC ESI

0040D052 |803E 00 CMP BYTE PTR DS:[ESI],0

0040D055 ^|75 FA JNZ SHORT NOTEPAD.0040D051 中间的全是解压过程循环.

0040D057 |46 INC ESI

0040D058 |803E 00 CMP BYTE PTR DS:[ESI],0

0040D05B ^|74 E7 JE SHORT NOTEPAD.0040D044

0040D05D |50 PUSH EAX

0040D05E |56 PUSH ESI

0040D05F |50 PUSH EAX

0040D060 |FF95 38124000 CALL DWORD PTR SS:[EBP 401238]

0040D066 |8903 MOV DWORD PTR DS:[EBX],EAX

0040D068 |58 POP EAX

0040D069 |83C3 04 ADD EBX,4

0040D06C ^|EB E3 JMP SHORT NOTEPAD.0040D051

0040D06E |8DB5 A4124000 LEA ESI,DWORD PTR SS:[EBP 4012A4]

0040D074 |8B46 04 MOV EAX,DWORD PTR DS:[ESI 4]

0040D077 |6A 04 PUSH 4

0040D079 |68 00300000 PUSH 3000

0040D07E |50 PUSH EAX

0040D07F |6A 00 PUSH 0

0040D081 |FF95 B2114000 CALL DWORD PTR SS:[EBP 4011B2]

0040D087 |8985 61124000 MOV DWORD PTR SS:[EBP 401261],EAX

0040D08D |56 PUSH ESI

0040D08E |8B1E MOV EBX,DWORD PTR DS:[ESI]

0040D090 |039D 1C134000 ADD EBX,DWORD PTR SS:[EBP 40131C]

0040D096 |50 PUSH EAX

0040D097 |53 PUSH EBX

0040D098 |E8 13030000 CALL NOTEPAD.0040D3B0

0040D09D |83C4 08 ADD ESP,8

0040D0A0 |8B4E 04 MOV ECX,DWORD PTR DS:[ESI 4]

0040D0A3 |8B3E MOV EDI,DWORD PTR DS:[ESI]

0040D0A5 |03BD 1C134000 ADD EDI,DWORD PTR SS:[EBP 40131C]

0040D0AB |8BB5 61124000 MOV ESI,DWORD PTR SS:[EBP 401261]

0040D0B1 |F3:A4 REP MOVS BYTE PTR ES:[EDI],BYTE PTR DS:[>

0040D0B3 |5E POP ESI

0040D0B4 |8B85 61124000 MOV EAX,DWORD PTR SS:[EBP 401261]

0040D0BA |68 00800000 PUSH 8000

0040D0BF |6A 00 PUSH 0

0040D0C1 |50 PUSH EAX

0040D0C2 |FF95 B6114000 CALL DWORD PTR SS:[EBP 4011B6]

0040D0C8 |83C6 08 ADD ESI,8

0040D0CB |833E 00 CMP DWORD PTR DS:[ESI],0

0040D0CE ^|75 A4 JNZ SHORT NOTEPAD.0040D074

0040D0D0 |E8 4F020000 CALL NOTEPAD.0040D324

0040D0D5 |8BB5 98124000 MOV ESI,DWORD PTR SS:[EBP 401298]

0040D0DB |8BBD 1C134000 MOV EDI,DWORD PTR SS:[EBP 40131C]

0040D0E1 |8B443E 0C MOV EAX,DWORD PTR DS:[ESI EDI C]

0040D0E5 |0BC0 OR EAX,EAX

0040D0E7 |74 6E JE SHORT NOTEPAD.0040D157

0040D0E9 |03C7 ADD EAX,EDI

0040D0EB |50 PUSH EAX

0040D0EC |FF95 34124000 CALL DWORD PTR SS:[EBP 401234]

0040D0F2 |0BC0 OR EAX,EAX

0040D0F4 |74 43 JE SHORT NOTEPAD.0040D139

0040D0F6 |8B1C3E MOV EBX,DWORD PTR DS:[ESI EDI]

0040D0F9 |8B4C3E 10 MOV ECX,DWORD PTR DS:[ESI EDI 10]

0040D0FD |83C6 14 ADD ESI,14

0040D100 |0BDB OR EBX,EBX

0040D102 |75 02 JNZ SHORT NOTEPAD.0040D106

0040D104 |8BD9 MOV EBX,ECX

0040D106 |8B143B MOV EDX,DWORD PTR DS:[EBX EDI]

0040D109 |83C3 04 ADD EBX,4

0040D10C |0BD2 OR EDX,EDX

0040D10E ^|74 D1 JE SHORT NOTEPAD.0040D0E1

0040D110 |F7C2 00000080 TEST EDX,80000000

0040D116 |74 05 JE SHORT NOTEPAD.0040D11D

0040D118 |0FB7D2 MOVZX EDX,DX

0040D11B |EB 04 JMP SHORT NOTEPAD.0040D121

0040D11D |8D543A 02 LEA EDX,DWORD PTR DS:[EDX EDI 2]

0040D121 |50 PUSH EAX

0040D122 |51 PUSH ECX

0040D123 |52 PUSH EDX

0040D124 |50 PUSH EAX

0040D125 |FF95 38124000 CALL DWORD PTR SS:[EBP 401238]

0040D12B |59 POP ECX

0040D12C |0BC0 OR EAX,EAX

0040D12E |74 09 JE SHORT NOTEPAD.0040D139

0040D130 |890439 MOV DWORD PTR DS:[ECX EDI],EAX

0040D133 |58 POP EAX

0040D134 |83C1 04 ADD ECX,4

0040D137 ^|EB CD JMP SHORT NOTEPAD.0040D106 往回跳

0040D139 |8D8D 65124000 LEA ECX,DWORD PTR SS:[EBP 401265]

0040D13F |8D85 84124000 LEA EAX,DWORD PTR SS:[EBP 401284]

0040D145 |6A 00 PUSH 0

0040D147 |50 PUSH EAX

0040D148 |51 PUSH ECX

0040D149 |6A 00 PUSH 0

0040D14B |FF95 BE114000 CALL DWORD PTR SS:[EBP 4011BE]

0040D151 |FFA5 BA114000 JMP DWORD PTR SS:[EBP 4011BA]

0040D157 \8B85 9C124000 MOV EAX,DWORD PTR SS:[EBP 40129C] 到这里看看.

0040D15D 03C7 ADD EAX,EDI

0040D15F 894424 1C MOV DWORD PTR SS:[ESP 1C],EAX

0040D163 61 POPAD 这个是什么,关键字与入口处对称.中间代码也没有Popad指令,不用怀疑,这里就是解压后的出口.让我们直接F2在这里下断点,F9运行到这里后再F2取消断点.

0040D164 FFE0 JMP EAX 这个就是跨段跳跃,F8到达Oep处.



004010CC 55 PUSH EBP

经过Popad关键字,并跨段跳跃到入口,我们在这里用Od的Dump插件直接脱壳。

004010CD 8BEC MOV EBP,ESP

004010CF 83EC 44 SUB ESP,44

004010D2 56 PUSH ESI

004010D3 FF15 E4634000 CALL DWORD PTR DS:[4063E4] ; KERNEL32.GetCommandLineA

004010D9 8BF0 MOV ESI,EAX

004010DB 8A00 MOV AL,BYTE PTR DS:[EAX]

004010DD 3C 22 CMP AL,22

004010DF 75 1B JNZ SHORT NOTEPAD.004010FC

004010E1 56 PUSH ESI



重建输入表时,插件有两个选项。Method2重建输入表很快,脱壳后运行率高。Method1重建输入表慢,脱壳后运行率较低。不过本程序用Method2重建输入表无法运行,Method1重建输入表后程序可直接运行。




最新评论

QQ|小黑屋|最新主题|手机版|微赢网络技术论坛 ( 苏ICP备08020429号 )

GMT+8, 2024-9-29 23:23 , Processed in 0.202227 second(s), 12 queries , Gzip On, MemCache On.

Powered by Discuz! X3.5

© 2001-2023 Discuz! Team.

返回顶部