首页
论坛
课程
招聘
雪    币: 269
活跃值: 活跃值 (10)
能力值: ( LV5,RANK:60 )
在线值:
发帖
回帖
粉丝

[原创]我的第一次成长

2008-11-11 18:00 11445

[原创]我的第一次成长

2008-11-11 18:00
11445
前两天朋友发过来一个exe格式的视频文件,说是从网上买来的,必须输入与机器码对应的播放密码才能观看,想问我能否crack。我虽然写过两三年驱动,也用过SoftICE,但是对crack却完全是门外汉。大学时学过的汇编知识考完试就还给老师了,直到上个月看过了王爽老师的《汇编语言》(好书,推荐!),才刚刚跟汇编混了个脸熟。按理说不应该揽下这个瓷器活,不过我发现软件的界面比较粗糙,推测作者编程水平一般(当然也有很多NB的软件界面都很糙,但我想他们的作者应该不会靠卖视频赚钱,:)),就头脑一热答应下来了。
        本来打算使用自己比较熟悉的SoftICE,但是安装起来比较麻烦,所以从看雪下载了OllyICE v1.10修改版(其实也就是汉化加强版的OllyDBG啦)。用OD打开原始文件,立刻弹出一个对话框“快速统计报告表明其代码段可能被压缩、加密或包含大量的嵌入数据,代码分析将是非常不可靠或完全错误的,是否继续?”。这个exe嵌入了视频数据是肯定的,难道还加了传说中的壳?抱着一丝希望点击“否”,然后按F9运行,又弹出一个对话框“Protection Error——error1.china-drm.com”,关闭对话框后,程序就运行结束了。直接运行原始文件时不是这样的啊,难道它还有反调试功能?
        又到看雪下载了PEiD v0.94,打开文件一查,果然加了壳:ASProtect 1.2x - 1.3x [Registered] -> Alexey Solodovnikov [Overlay]。这是啥壳咱也不懂,但既然加了咱就脱呗。看雪上的ASProtect脱壳专用工具试了个遍,没一个管用,真是奇怪啊。到网上Google了一下,发现很多新手都在问如何脱这个壳,有的说很难搞,还有的说很简单,用某位高人写的Aspr2.XX_IATfixer_v2.2s.Osc脚本就能脱掉。赶紧又下载了这个脚本,试用了一下,还是不行啊,脚本运行过程中出错,弹出一个对话框“Error on line 285, Text: and tmp3, 0FFFF”。
        在网上又找了一个名为“ASProtect 1.2x - 1.3x [Registered]的脱壳技巧”的教学视频,先看看高手是怎么搞的吧。在视频里,作者先使用了HideOD插件的Hide功能(作者说不用的话脱壳后的程序可能出错),然后调用了一个名为“asp.osc”的脚本,一下子就把壳脱掉了!可是到哪里去找这个脚本呢?视频作者给出的论坛地址打不开,八成是给封掉了。
        我在网上又Google了半天,有两个“重大”发现(对我这样的菜鸟而言):一是可以使用PEiD的VerA 0.15插件检查出壳的真正版本,即ASProtect 2.3 SKE build 06.26 Beta [Extract];二是终于找到了一个名为“Aspr2.XX_unpacker_v1.0E.osc”的脚本。按照视频的步骤,先Hide,再运行脚本,果然成功了!不过脚本提示有偷窃代码,需要在日志窗口中检查IAT。没问题,视频也介绍了如何对付这种情况。运行ImportREC,找到脱壳的进程,把OD日志窗口中的OEP相对地址、IAT相对地址和IAT大小分别复制进去,不要点击“自动查找IAT”,直接点击“获取输入表”,结果显示输入表函数全部有效,然后点击“修复转储文件”,这个壳就算脱掉啦!
        脱壳后的文件很小,运行时会提示“文件已经破坏,无法播放”。看来程序有自校验措施,再说就算没有自校验,我们把视频数据弄丢了不也白脱嘛。又看了几位高手的文章,说可以利用PEiD的Overlay插件(ExtOverlay Plugin by Bob)把原始程序中的Overlay数据提取出来,这些数据应该就是视频信息。试了一下,果然提取出一个几十MB的文件,虽然不象前辈们说的那样可以直接播放,但是把它利用HxD软件附加到脱壳文件末尾以后,脱壳后的程序终于能够运行了。
        到这里,万里长征走完了第一步,不过也是最困难最关键的一步!下面开始实质性的crack工作。
        用PEiD扫描脱壳后的新程序,显示“什么都没有找到”,选择“核心扫描”,发现是用Delphi写的软件。其实在此之前,我用Spy++观察该程序运行时,就发现该程序许多窗口的类名的开头字母都是T,也从侧面印证了该程序的编写语言是Delphi。
        既然是对付Delphi,当然要祭出“神兵”DeDe了。我使用的是看雪下载的DEDE 3.50.4 Fix加强版。不知什么原因,进行扩展分析时程序总是死掉。不过也无所谓,一般分析就足够了。从“窗体”选项卡可以找到主界面窗体ID;从“过程”选项卡可以找到该窗体中显示机器码的控件ID、输入用户密码的控件ID、“确定”按钮的控件ID以及相应的事件响应函数。双击函数名,就弹出该函数对应的汇编代码,尤其让人兴奋的是还有详细的代码注释!
剩下的步骤就没办法详细记录了,就是下断点,跟踪,分析。虽然作者将用户密码的比较过程拆分成三段代码,安排在不同的地方,但是由于比较过程本身比较简单,因此很快就得到了正确的用户密码。将密码输入脱壳后的程序,就能够正常播放视频了。

HWS计划·2020安全精英夏令营来了!我们在华为松山湖欧洲小镇等你

最新回复 (17)
雪    币: 200
活跃值: 活跃值 (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
单步王子 活跃值 2008-11-12 03:44
2
0
好文章!~~

这什么方法啊 没见过 是否做个简单教程给个连接我们学习下啊》?``
雪    币: 202
活跃值: 活跃值 (10)
能力值: ( LV9,RANK:290 )
在线值:
发帖
回帖
粉丝
newjueqi 活跃值 7 2008-11-12 09:10
3
0
学习了,支持一下
雪    币: 200
活跃值: 活跃值 (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
yinjiar 活跃值 2008-11-12 17:40
4
0
学习了 对初学者很有知道作用
雪    币: 200
活跃值: 活跃值 (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
飘渺之恋 活跃值 2008-11-13 01:01
5
0
恩.  楼主的这篇作文写的很好.

我给你打90分,回家妈妈会给你买棒棒糖吃哦.
雪    币: 200
活跃值: 活跃值 (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
ppoo 活跃值 2008-11-13 07:21
6
0
王爽老师的《汇编语言》(好书,推荐!),在哪里有下,如果真好书就应该买正版的了。
雪    币: 269
活跃值: 活跃值 (10)
能力值: ( LV5,RANK:60 )
在线值:
发帖
回帖
粉丝
nudtsong 活跃值 1 2008-11-15 19:39
7
0
第一次发贴,没有经验,非常感谢大家的鼓励!希望我们共同进步!
关于使用SPY++,其实并不复杂。先运行你要观察的程序,然后启动SPY++,它会自动列出桌面上所有窗口的句柄、标题、类名等信息。因为Delphi程序所使用的类库一般都是字母T开头(就像VC程序使用的MFC类库一般都是字母C开头一样),所以比较好分辨。
王爽老师的那本书网上有很多电子版,但推荐买正版支持一下。发一个电子版链接http://www.mt30.com/Soft/books/Bcomputer/200705/4579.html
雪    币: 1108
活跃值: 活跃值 (10)
能力值: ( LV7,RANK:100 )
在线值:
发帖
回帖
粉丝
dreamzgj 活跃值 2 2008-11-15 20:19
8
0
作者虽然没有给出代码分析

而往往思路才是最重要

作者这清晰的思路很是值得学习

support
雪    币: 200
活跃值: 活跃值 (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
jiazhao 活跃值 2008-11-15 21:26
9
0
谢谢了,学习
雪    币: 200
活跃值: 活跃值 (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
love网络 活跃值 2008-11-15 23:05
10
0
不错!希望继续努力
雪    币: 200
活跃值: 活跃值 (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
stonewp 活跃值 2008-11-16 13:46
11
0
谢谢楼主的帖子~给我们这些小菜一些思路
雪    币: 202
活跃值: 活跃值 (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
小黑兄 活跃值 2008-11-17 10:48
12
0
排版下会是更好的文章
雪    币: 269
活跃值: 活跃值 (10)
能力值: ( LV5,RANK:60 )
在线值:
发帖
回帖
粉丝
nudtsong 活跃值 1 2008-11-17 20:29
13
0
我在Word里排版排的挺好的,一粘贴过来不知怎么回事就乱了,整了半天也没达到预想的效果
雪    币: 202
活跃值: 活跃值 (10)
能力值: ( LV9,RANK:290 )
在线值:
发帖
回帖
粉丝
newjueqi 活跃值 7 2008-11-17 20:55
14
0
听看雪说,在记事本里排版,基本在记事本是什么样在网页里就是什么样
雪    币: 420
活跃值: 活跃值 (11)
能力值: ( LV6,RANK:90 )
在线值:
发帖
回帖
粉丝
rxzcums 活跃值 2 2008-11-17 21:23
15
0
采用等宽字体的缘故
看雪这个论坛源码真的很好,特喜欢,那个聊天室也很酷!总体感觉:棒!
雪    币: 269
活跃值: 活跃值 (10)
能力值: ( LV5,RANK:60 )
在线值:
发帖
回帖
粉丝
nudtsong 活跃值 1 2008-11-17 21:25
16
0
下次用记事本试试
雪    币: 200
活跃值: 活跃值 (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
井木 活跃值 2008-11-17 23:11
17
0
[QUOTE=;]...[/QUOTE]
支持下。我们新手不知道重什么地方下手呢`。
雪    币: 217
活跃值: 活跃值 (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
qincccken 活跃值 2010-11-2 20:24
18
0
不错,学习一下老师的成长经历
游客
登录 | 注册 方可回帖
返回