3. 过几秒以后,直接跳到最后一行,有没有看到 ASPACK / Solodovnikov Alexy [1.07b] 这行 ?
哦 ~~~ 原来 CWView2000 是用 ASPACK 1.07b 来加密的啊。那要脱壳不就简单了,去找一个专门脱 ASPACK 1.07 的软体不就得了 ??
没错,不过我在来要教的,是使用目前全世界最强的拨壳机 Procdump 来剥壳。 三 . 用 Procdump 1.50 来剥 ASPACK 1.07b 的壳 :
1. 首先,当然也是把 Procdump 解压缩到刚刚的目录 (C:\\TRY) 2. 执行 Procdump ,你会看到如下的视窗 :
3. 因为我们要剥壳,所以按下 Unpack( 其他的按钮是干什么的,我也不清楚,大概是跟 WIN 的 PE 执行档有关的吧 ):
4. 由刚刚 TYP 侦测得知, CWView2000 是用 Aspack 1.07b 加的壳,所以理所当然的我们要选择 [Aspack<108] ,选好后,按下 OK( 要选对喔,选错会剥不出来 ):
5. 此时, ProcDump 会要求你开启你要剥壳的执行档,当然,我们要把路径指到 c:\\try\\cwview32.exe 6. 紧接著马上会出现如下的视窗,此时,千万不要按下 [ 确定 ] 。稍微等一下,有耐心一点,你马 上就会看到 CWView2000 被呼叫执行了,此时,将视窗切换至 CWView ,随便使用一二个 功能,然后在不要关掉 CWView2000 之下,按下 [ 确定 ] 钮。 ( 这个按钮是当程式 [ 完全 ] 被载入以后,才要按的 )
上面这个步骤很重要,如果心急乱按或乱关,你就得重来了。
7. 按下 [ 确定 ] 后没多久,会出现下面的视窗,并且此时 cwview 会自动被关掉,然后开始剥壳 运算,当出现 Step by step analyzis activated ... 时,过不久, Prucdump 就会要求你键入要输出的 档名 ( 也就壳剥掉以后,原始的卵要存成什么档名 ) ,我这里举例成 unshell.exe ,此时,也代表剥壳成功 !!: 剥壳还蛮简单的嘛,对不对 ?
三 . 试试看剥壳了以后的 CWView32.exe 可不可用 :
你可以自己执行看看,应该可以用吧 ? 或许你也可以比较一下剥壳与未剥之间的差别, 你将惊觉 : 没有剥壳的 CWView32 只有 602kb ,但是剥壳后,竟然高达 1634kb 。很惊人的压缩率吧 !( 所以加密或加壳的确有存在的必要,就好像压缩一样,可以帮助人们节省很多硬碟空间 ) 四 . 试试看剥壳了以后的 CWView32.exe 可不可以修改成注册版 ?:
你可以用 16 位元编辑器,打开刚刚剥壳后的档案 (unshell.exe) ,然后 寻找 C60520864F0001
改成 ------------00
嘿嘿,找的到对不对 ? 也可以改了吧 ... 这样就不用使用外挂的「动态破解」软体 PPATCHER 了 ! 五 . 我知道你在想什么 ...
你是不是在想,可不可以把刚刚修改完成的 unshell.exe 再把它加壳,让它变的小一点啊 ? 当然可以,只要你有加壳软体 ... 还等什么,赶快去做啊 ! 从这次的破解教学我们学到 :
1. 如何使用 TYP 来侦测壳,与如何使用史上最强的 procdump 来剥壳。
2. 要剥壳,其实并不难,只要 TYP 侦测得出来、 procdump 有列表的,都很简单。 要注意的是 :
1. 当你发现 TYP 的回报是 Unknow 时候,别慌, procdump 也可以针对未知的壳作剥壳的运算,只要选择 **unknow** 就可以啦,不过成功率当然降低许多。
2. 为什么要介绍 procdump? 因为它可以外挂 script.ini 来增加剥壳的能力。也就是你可以自己用 sice 追某个被不知名加密软体给加壳的软体,然后纪录起相关的资料,再交由 Procdump 来把记忆体的内容「 dump 」 ( 存 ) 起来,只是这篇教学没有教 ( 我也不太会啦 ...) 。
3.TYP 是目前世界上侦测壳、压缩资料,能力最强的软体,要善用,你可以在下面的网站抓到 : 阿伦的家 (GB 码 ): http://crackers.163.net/
作者网页 : http://www-user.TU-Cottbus.DE/~kannegv 注意 : 要抓 dos32 的版本,才能在 windows 下正常使用
4.Procdump 是目前世界上最强的拨壳软体,除可以剥已知道的壳外,还可以剥许多未知的壳。更可以以手动的方法,增强其剥壳能力 ( 可惜的是,它只支援 win32 的软体, win16 与 dos 的他都不支援 ) 。,你可以在下面的网站抓到 :
阿伦的家 (GB 码 ): http://crackers.163.net/
吴朝相的家 (GB 码 ):http://member.netease.com/~topage
5. 别看我的网站都是介绍中国的网站,我可是道道地地的台湾人,只是因为破解与保护在中国比较盛行,不得已 ... 否则我也想介绍一些台湾的破解站啊 !( 不然只有孤零零的我一个 )
3、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
好了!工具都准备齐全了,我们就去下载一个实验品吧!今次我们选的是UPX ,在 Procdump1.50 的脱壳文件列表中,你可以清楚地看到有 UPX 的选项,所以我们今次就选它了,目前它的最新版本是 0.82 ,好了下载完毕了,我们先用它来为软件加一个脱吧! 操作:
1. 在 windows 上打开一个 Dos 窗口 , 进入 UPX0.82 所在的目录; 2. 输入 upx [ 要加壳的文件路径和文件名 ] 3.OK! 加壳成功了!
好了!现在可以试一试脱壳了! 操作:
1. 运行 Procdump1.50 ;
2. 按 Unpack 按钮,这时就出现了 Choose Unpacker 窗口;
3. 在窗口中选择 UPX ,这时就会跳出一个选择你要脱壳文件的选择窗口;
4. 按下打开,哦天啊!好痛苦啊!程序没有脱壳竟然运行了, Procdump1.50 提示一个错 误发生在 script 的第一行。
以上的所有操作,是对自动脱壳来说的,基本上的自动脱壳的操作都是这样的。好了,难道就这样没有戏唱了吗?作者写文章那会就写这几十行废话呢?请接着看下面的吧! 好了,看一看它没有没防住 winsoftice 呢?重新启动机器,换一个有安装 winsoftice 的 windows 平台 吧!再次运行被加脱了的程序,还好!没有当掉 winsoftice ,这样心中暗喜,你有难了啊!看来外 国人写的东西还是比较有善,不象 Ding Boy 的幻影系列,比小燕子还凶( ^o^ ,又说 Ding Boy 的坏 话了,其实有时我觉得他比较象 Crack 界的小燕子,令人又爱又恨)。好了关闭程序,用 winsoftice 载入去,唉刚刚还说好呢!原来它还是对 winsoftice 作了一点小动作, winsoftice 不能中断于程序的入口的第一句处。没有关系,现在有三种方法,第一种方法是通过对程序的 exe 文件作一点修改, 使其符合标准的 PE 文件格式,因为 winsoftice 毕竟不是专为 Crack 设计的,所以它的中断程序入口 是针对标准的 PE 文件格式来写的,对于那些不符合的,它就没有能力了,具体的 PE 文件格式,大 家可以看一看 VC 中的 MSDN 中的帮助和 WINNT.H 中的解释;第二种方法就是不用 winsoftice ,而用 TRW ,因为刘涛涛先生的 TRW 是专为 Crack 设计的,所以几乎所有可以在 Windows 上运行的程序,它 都可以中断得了;第三种方法,就是在原 exe 文件中加插 int 3 语句,令 winsoftice 强行中断。 好了,方法说了一大罗,我们就用最简单的方法吧!没人会有简单的不用,去用最繁的,如果有吧!大家就。。。。。。。。
运行 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