你可以阅读和传播本文章并可对文章内容作任何类型修改甚至可以将心得体会体会重心整理发布更可以直接针对某个特定文件进行理论):
首先让我们要先准备如下几种工具(以下工具均可找到最新免费或破解版本别问我下载地址):
1.Procdump
2.Ultraedit (这个你也可以用别编辑器)
3.Winsoftice
4.Trw
5.MakePE
6.Wdasm
好了!工具都准备齐全了我们就去搞个实验品吧!今次我们选是UPX 在Procdump脱壳文件列表中你可以清楚地看到有 UPX 选项所以我们今天就选它了好了下载完毕我们先用它来为软件Software加个脱吧!
操作:
1. 在 windows 上打开个 Dos 窗口 , 进入 UPX 所在目录;
2. 输入 upx [ 要加壳文件路径和文件名 ]
3.OK! 加壳成功了!
嘿嘿好了现在可以再试试脱壳了!
操作:
1. 运行 Procdump ;
2. 按 Unpack 按钮这时就出现了 Choose Unpacker 窗口;
3. 在窗口中选择 UPX 这时就会跳出个选择你要脱壳文件选择窗口;
4. 按下打开哦天啊!好痛苦啊!没有脱壳竟然运行了 Procdump提示个错
误发生在 script 第行
以上所有操作是对自动脱壳来说基本上自动脱壳操作都是这样好了难道就这样没有戏唱了吗?作者写文章那会就写这几十行废话呢?请接着看下面吧! 好了看看它没有没防住 winsoftice 呢?重新启动机器换个有安装 winsoftice windows 平台 吧!再次运行被加脱了还好!没有当掉 winsoftice 这样心中暗喜你有难了啊!看来外国人写东西还是比较友善不象 Ding Boy 幻影系列比小燕子还凶加了两重气死本帅嘿又说 Ding Boy 坏话了其实有时我觉得他比较象 Crack 界小燕子令人又爱又恨好了关闭用 winsoftice 载入去唉刚刚还说好呢!原来它还是对 winsoftice 作了点小动作 winsoftice 不能中断于入口第句处没有关系现在有 3种思路方法第种思路方法是通过对.exe or .dll 文件作点修改 使其符合标准 PE 文件格式 winsoftice 毕竟不是专为 Crack 设计所以它中断入口 是针对标准 PE 文件格式来写对于那些不符合它就没有能力了具体 PE 文件格式大家可以看看 VC 中 MSDN 中帮助和 WINNT.H 中解释;第 2种思路方法就是不用 winsoftice 而用 TRW 刘涛涛先生 TRW 是专为 Crack 设计所以几乎所有可以在 Windows 上运行它 都可以中断得了;第 3种思路方法就是在原 .exe or .dll 文件中加插 3 语句令 winsoftice 强行中断 好了思路方法说了大罗我们就用最简单思路方法吧!没人会有简单不用去用最繁如果有吧!大家就......
运行 TRW选择菜单中 TRNEWTCB 命令然后运行加脱马上中断于第句了
具体如下:
0137:0043D100 PUSHAD 会中断于这里
0137:0043D101 MOV ESI,0042B0D9
0137:0043D106 LEA EDI,[ESI+FFFD5F27]
0137:0043D10C PUSH EDI
0137:0043D10D OR EBP,-01
0137:0043D110 JMP 0043D122 跳到解压
137:0043D112 NOP
0137:0043D113 NOP
解压入口:
0137:0043D122 8B1E MOV EBX,[ESI]
0137:0043D124 83EEFC SUB ESI,-04
0137:0043D127 11DB ADC EBX,EBX
0137:0043D129 72ED JB 0043D118
0137:0043D12B B801000000 MOV EAX,00000001
0137:0043D130 01DB ADD EBX,EBX
0137:0043D132 7507 JNZ 0043D13B
0137:0043D134 8B1E MOV EBX,[ESI]
好了在解压里面会做无数次循环我没有必要了解它是如何进行加压所以就把光标直向下走直走到这里:
0137:0043D250 EBD6 JMP 0043D228
0137:0043D252 61 POPAD
0137:0043D253 C3 RET
0137:0043D254 61 POPAD
0137:0043D255 E9D6A1FDFF JMP 00417430 这就是真正入口了
0137:0043D25A 0000 ADD [EAX],AL
0137:0043D25C 0000 ADD [EAX],AL
0137:0043D25E 0000 ADD [EAX],AL
好开心啊!终于找到了入口地址如果你只是针对某个特定而脱壳那么现在就可以 用 TRW pedump 命令直接脱壳了但这不是我们所要我们现在是要研究 UPX0.82 壳要写个通用脱壳 ini 加入到 Procdump1.50 里面那么这样你以后就可以很方便脱掉 UPX0.82 所 脱了同时也很方便网上传播了让别人也能分享你成果这才是真正 Cracker 精神
操作:
1. 用 Ultraedit6.10 打开 Procdump1.50 目录下 Script.ini 文件;
它格式如下:
[INDEX]
P1=Hasiuk/NeoLite
P2=PESHiELD
P3=Standard
P4=Shrinker 3.3
P5=Wwpack32 I
P6=Manolo
P7=Petite<1.3
P8=Wwpack32 II
P9=Vbox Dialog
PA=Vbox Std
PB=Petite 1.x
PC=Shrinker 3.2
PD=PEPack
PE=UPX 修改为 PE=UPX<0.7X
PF=Aspack<108
P10=SoftSentry
P11=CodeSafe 3.X
P12=Aspack108
P13=Neolite2
P14=Aspack108.2
P15=Petite 2.0
P16=Sentinel
P17=PKLiTE
P18=Petite 2.1
P19=PCShrink
P1A=PCGUARD v2.10
P1B=Aspack108.3
P1C=Shrinker 3.4
P1D=UPX0.7X-0.8X 加入这句
然后找到:
[UPX] 修改为 [UPX<0.7X]
然后在文件最下面加入:
[UPX0.7X-0.8X]
好了准备功夫我们都做好了现在可以写 UPX 脱壳扩展了首先我们可以见到有两个跳动地方第个是:
0137:0043D110 JMP 0043D122 跳到解压
所以我们马上把机器代码抄下来:
EB,10
第 2个是:
0137:0043D255 E9D6A1FDFF JMP 00417430 这就是真正入口了
机器代码就是:
E9,D6,A1,FD,FF
好了所有要找到东西我们都已经找到了我们就开始编写 UPX 脱壳扩展了
我编写具体如下:
[UPX0.7X-0.8X]
L1=OBJR ; 在扫描开始处设置内存地址
L2=LOOK EB,10 ; 查找第个 EB,10 代码
L3=BP ; 在当前内存位置设置断点
L4=WALK ; 交还控制权到 Procdump 并且执行下个指令
L5=OBJR ; 在扫描开始处设置内存地址
L6=LOOK 61,E9 ; 查找第个 EB,10 代码
L7=BP ; 在当前内存位置设置断点
L8=STEP ; 步步地跟踪分析程式
好了以上解释都很清楚了没有什么不明白了我们把文件保存后再次运行 Procdump 在 Choose Unpacker 中可以见到多了个 UPX0.7X-0.8X 项了选择它进行脱我们加了脱 哈哈叫我们保存了你可以不要高兴得太早了你试试运行 dump 哦不能运行非法操作 不要心急我们好象还有点东西要加上呢!那就是 dump 可选参数了 Procdump 共给我们 提供了 5组可选参数如果你没有特别指出就用默认值好,我们加上去试试吧!
OPTL1=00000000
OPTL2=01010001
OPTL3=01010001
OPTL4=00030000
OPTL5=00000000
以上这 5参数是最常用你加参数时可要先试试或者加了的后就可以用了好我们加上试试
以下文章所述可能在有机器上有区别结果请自行修正:
作者机器是:
PIII 667
128M 内存
当我再次运行 Procdump 来脱壳时竟然下子就运行了根本不象上次那样提示要我保存 脱壳后文件所以我想可能这些参数有些不合适我机器于是我认真分析了每个参数真正含义的后就把参数作了如下修改:
OPTL1=00000001 这是延迟时间我设为 1ms
OPTL2=01010101 采用了快速 dump 工作方式
OPTL3=01010001
OPTL4=00030000
OPTL5=00000000
今次再运行 Procdump 进行脱壳哈哈!!!可以脱了然后再双击脱壳后文件咦可以执行了 再用 Wdasm 反汇编分析下文件发现基本和原文件相同只是文件大小有点区别大了点再用了下软件Software各种功能切正常所以应该说脱壳是成功到此文章也该在此结束了不过好象还漏了点事就是用 MakePe 帮助脱壳后文件作进步优化这就不描述了 自己看帮助进 行吧! 好了最后整理总结下吧!
完整地加入:
[UPX0.7X-0.8X]
L1=OBJR
L2=LOOK EB,10
L3=BP
L4=WALK
L5=OBJR
L6=LOOK 61,E9
L7=BP
L8=STEP
OPTL1=00000001
OPTL2=01010101
OPTL3=01010001
OPTL4=00030000
OPTL5=00000000
最后说了魔术再高明也看得出门道但看门道就看看热闹也可以看!
最新评论