- 1、本文档共16页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
CRC在软件加密中的应用_2
首先,您要准备一些工具:Ollydbg1.10、DeDe、Peid全能插件版,也许还需要
PE-tools1.50。这些软件您可以在网上很轻松的找到,如果没有可以与我联系。
第一步:检查
Peid是目前最流行,也是比较完善的检测软件。可以检测软件是否加壳,使用
了什么编译器等诸多信息,同时其丰富的插件可以完成许多扩展功能。现在,我们先
用Peid检测crctest.exe,查看程序的基本信息(如图):
Peid显示软件是用“Borland C++ 1999”版的编译器进行编译的,其实一般情况
下,用BCB编译的程序也会显示为用“Borland C++ 1999”编译。我们再用其中的插件
“Krypto ANALyzer”,来分析程序中是否有通用的加密算法。
1
我们可以看到,程序使用了CRC-32算法:
◆这里想告诉大家的是,Krypto ANALyzer是使用查询数组(码表)来确定软件
使用了什么算法,而软件使用动态生成数组(码表)的话,它是无法检测出算法来的。
呵呵,这也是它的漏洞了。你可以程序中保存一个其它算法的码表来混淆检测器。
(crctest.exe中就定义了一个CRC32的数组,但我们并没有使用它,而是使用了动
态生成的码表)
2
第二步:分析
了解软件没有加壳,而且可能是由BCB编译的之后,我们就要着手分析了。针对
Borland公司出品的Delphi和BCB编译器所生成执行程序,可以使用DeDe反编译器
进行分析,它可以很好的恢复程序的原始代码信息。
下面就是用DeDe将crctest.exe载入后的效果界面:
现在我们切换到“过程”页面,选择“main”单元:
上图中红线框中是我们感兴趣的地方,当按下“注册”按钮时,这个事件会被调用。
双击这个事件,我们就可以看到这个事件的汇编代码:
3
在其中显示的汇编代码已经被DeDe处理过,对标准的函数调用已经进行了
注释,其可读性很好。00401C90这个地址就是这个事件函数的入口点,如果您
有一些基本功,可以认真分析一下。您也许可以看出关键的代码。不过,下面我们要
进入动态调试了!
第三步:调试破解
在检测和分析的基础上,我们可以开始动态调试了。我要用动态的数据来解释破
解的思路与过程。现在,请打开Ollydbg动态调试器,将crctest.exe载入,停在程
序的入口处。
按Ctrl+G,输入00401C90,直接定位到“注册”按钮的点击事件函数入口处,并
按F2下断点。
接下来,可以按F9运行程序,进入调试,然后在窗口中,随便输入注册名和注
册码,点击“注册”按钮,程序将会中断在00401C90处(如下图):
4
不断按F8单步运行,其间您可以看到许多的数据在变化,不用管它,一直按F8
运行,直到显示注册错误的信息框,再看运行的状态:
可以看到,在运行 00401FDF这个地址的时候,软件显示了注册错误的信息框。
显然这个call 00468C08指令就是显示信息框的函数。我们只要找到调用这个
5
Call的调用(有点绕舌),就可以找到关键点了。大家向上回溯代码可以看到下面
的内容:
我们将汇编代码提取出来如下:
===========================
/*401F65*/ lea edx, [local.2]
/*401F68*/ lea eax, [local.4]
/*401F6B*/ call crctest.00468DA0 //对比注册码是否正确
/*401F70*/ test al, al
/*401F72*/ je short crctest.00401FC7 //如果不正确就跳走
/*401F74*/ mov eax, dword ptr ds:[46EF94]
/*401F79*/ push 40040
您可能关注的文档
- 课时作业70 相似三角形的判定及有关性质.doc
- 6 JSP EL函数.ppt
- 6820培训.pdf
- 高一下学期期中数学试卷.docx
- 高质量正射影像图的制作方法和技巧.doc
- 79项XP服务的理解(自由天空技术论坛).doc
- 高2017级高二上期第三次学月考试理.docx
- 2014年最新 诗词的意象.docx
- 高三综合模拟练习2.doc
- 近年高考语文试题进行了调整.doc
- [专精特新]金华永和氟化工有限公司行业竞争力评级分析报告(2023版).pdf
- [专精特新]重庆升光电力印务有限公司行业竞争力评级分析报告(2023版).pdf
- [专精特新]无锡巨力重工股份有限公司行业竞争力评级分析报告(2023版).pdf
- [专精特新]江西凯安新材料集团股份有限公司行业竞争力评级分析报告(2023版).pdf
- [专精特新]浙江永昌电气股份有限公司行业竞争力评级分析报告(2023版).pdf
- [专精特新]苏州中创铝业有限公司行业竞争力评级分析报告(2023版).pdf
- [专精特新]杭州汽轮铸锻有限公司行业竞争力评级分析报告(2023版).pdf
- [专精特新]浙江美声智能系统有限公司行业竞争力评级分析报告(2023版).pdf
- [专精特新]汕头市虹桥包装实业有限公司行业竞争力评级分析报告(2023版).pdf
- [专精特新]江西亚中电子科技股份有限公司行业竞争力评级分析报告(2023版).pdf
最近下载
- 江苏省2021年中学生生物学奥林匹克初赛理论试题答案.doc
- 2025年哈尔滨应用职业技术学院单招语文测试题库附答案.docx VIP
- 2025年安徽水利水电职业技术学院高职单招职业技能测试近5年常考版参考题库含答案解析.docx
- 【道氏理论】(完全版).doc
- 分娩镇痛的现状和临床应用课件.ppt
- 学科中心教研组管理方案.docx VIP
- 五年级下册数学单元测试-3长方体和正方体 人教版(含答案).docx
- 2024年安徽水利水电职业技术学院单招职业技能测试题库(考试直接用).docx VIP
- 23S516 混凝土排水管道基础及接口图集.docx VIP
- 数控系统(CNC)系列:Fanuc 31i-B_(6).G代码和M代码详解.docx
文档评论(0)