ProcDump应用文章二
今天,在吴朝相的网页上看到一篇由台湾的 Peter's 写的关于脱壳的文章,里面提及到的了 Procdump1.50 的使用,但由于所写的内容比较地肤浅,并没有交待到 Procdump1.50 的强大之处,同时由于最近在网上的软件,加壳之风日盛,如果作为一个 Cracker ,不跟着时代走,可 能在不久的将来,你就没有什么软件可以修改了,所以一定要在加脱方法下点苦功才行,为此, 小弟想把一月来学习到的脱壳技术 Post 出来,让大家了解一下在 Windows 上是如何进行软件脱 壳的,同时也想向大家介绍强大的 Procdump1.50 是如何使用的,如何用它来进行手动脱壳的, 如何扩展自已的 Procdump1.50 的脱壳种类。但由于小弟在脱壳方面还是新手,如果文章中有错误之处,请来信指教。
读者要求:
你可以阅读和传播本文章,但不能对文章的内容作任何的修改,请尊重作者的劳动。
首先我们要先准备我们的工具:
1.Procdump1.50
2.Ultraedit6.10 (这个你也可以用别的编辑器)
3.Winsoftice4.0
4.Trw0.75
5.MakePE1.27
6.Wdasm8.93
操作:
1. 在 windows 上打开一个 Dos 窗口 , 进入 UPX0.82 所在的目录;
2. 输入 upx [ 要加壳的文件路径和文件名 ]
3.OK! 加壳成功了!
好了!现在可以试一试脱壳了!
操作:
1. 运行 Procdump1.50 ;
2. 按 Unpack 按钮,这时就出现了 Choose Unpacker 窗口;
3. 在窗口中选择 UPX ,这时就会跳出一个选择你要脱壳文件的选择窗口;
4. 按下打开,哦天啊!好痛苦啊!程序没有脱壳竟然运行了, Procdump1.50 提示一个错
误发生在 script 的第一行。
运行 TRW0.75 ,选择菜单中的 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 跳到解压程序
0137: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]
0137:0043D110 JMP 0043D122 跳到解压程序
所以我们马上把机器代码抄下来:
EB,10
第二个是:
0137:0043D255 E9D6A1FDFF JMP 00417430 这就是程序的真正入口了
机器代码就是:
E9,D6,A1,FD,FF
好了,所有的要找到东西我们都已经找到了,我们就开始编写 UPX0.82 的脱壳扩展了。
我编写的具体如下:
[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 ; 一步一步地跟踪分析程式
OPTL1=00000000
OPTL2=01010001
OPTL3=01010001
OPTL4=00030000
OPTL5=00000000
以下文章所述,可能在有的机器上有不同的结果,请自行修正:
作者的机器是:
赛扬 300A (超 450 )
PC100-64M 内存
当我再次运行 Procdump1.50 来脱壳程序时,竟然程序一下子就运行了,根本不象上次那样提示要我保存 脱壳后的文件,所以我想,可能这些参数有些不合适我的机器,于是我认真分析了每一个参数的真正含义之后,就把参数作了如下的修改:OPTL1=00000001 这是延迟时间,我设为 1ms
OPTL2=01010101 采用了快速 dump 的工作方式
OPTL3=01010001
OPTL4=00030000
OPTL5=00000000
完整地加入:
[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
By The Way !
我发现对于使用 UPX0.7x 到 UPX0.8x 加壳的软件,用我的方法都可以成功脱壳。
相关视频
相关阅读 Windows错误代码大全 Windows错误代码查询激活windows有什么用Mac QQ和Windows QQ聊天记录怎么合并 Mac QQ和Windows QQ聊天记录Windows 10自动更新怎么关闭 如何关闭Windows 10自动更新windows 10 rs4快速预览版17017下载错误问题Win10秋季创意者更新16291更新了什么 win10 16291更新内容windows10秋季创意者更新时间 windows10秋季创意者更新内容kb3150513补丁更新了什么 Windows 10补丁kb3150513是什么
热门文章 去除winrar注册框方法
最新文章
比特币病毒怎么破解 比去除winrar注册框方法
华为无线路由器HG522-C破解教程(附超级密码JEB格式文件京东电子书下载和阅读限制破解教UltraISO注册码全集(最新)通过Access破解MSSQL获得数据
人气排行 华为无线路由器HG522-C破解教程(附超级密码JEB格式文件京东电子书下载和阅读限制破解教UltraISO注册码全集(最新)qq相册密码破解方法去除winrar注册框方法(适应任何版本)怎么用手机破解收费游戏华为无线猫HG522破解如何给软件脱壳基础教程
查看所有0条评论>>