华中科技大学软件安全实验一【破解Demo简易】
文章目录
- 前言
- 一、分析工具
- 二、实验步骤记录
- 1.看看破解软件长啥样!
- 2.尝试进行破解吧!
- 总结
前言
作者在复习软件安全这门课是所写
处于学习阶段,有什么错误,请各位大佬指正。
一、分析工具
OllyDbg,Visual C++ 6.0
二、实验步骤记录
1.看看破解软件长啥样!
(1)用OllyDbg打开DemoD_简版.exe
fig1.破解软件长得还挺酷的嘛
(2)点击运行按钮试一试吧
fig2.运行窗口好像不酷了
弹出运行窗口,观察到我们的攻击目标,找出验证序列号。
(3)常用的按钮有哪些:
—快乐老家按钮,回到最初的起点,误操作之后请按它。
—开始运行按钮,莽就完了,反正可以用快乐老家撤回。
F7执行单步执行。
F8按行执行,遇到函数的时候用这个很有效
就教四个吧,多的我也不会了。更多的知识菲菲子可以自行探索。
2.尝试进行破解吧!
(1)先使用快乐老家按钮,在反汇编区域内右键,选择中文搜索引擎->智能搜索。我们可以得到下图:
fig3.搜索结果,聚焦目标代码
(2)在合适的位置添加端点,之后点开始运行按钮。
fig4.仔细阅读汇编代码,看不懂的话可以右键**选择汇编(A)**查看更加详细的汇编指令
再次弹出运行结果的窗口,此时我们在序列号的位置,输入0000-0000-0000-0000,开始验证序列号,返回ODllyDbg。发现程序已经被顺利截断。
(3)开始一路F7,变按变关注寄存器的变化,菲菲加油!
分析汇编代码,我们可以看到EAX代表的是我们的输入,ECX是内存中的一个值。
注意:如果菲菲子仔细的话,应该已经发现了,ECX中的值不一定和我展示的一样,这是因为序列号是变化的。如果关闭应用,重启之后,序列号要重新寻找
【补充说明】
关键性代码:cmp eax,ecx 如果两者相同,则不会执行跳转指令;不同,则跳转。此时如果继续F7下去,直接会跳转到序列号错误。菲菲子可以大胆尝试一下。
内存地址展示区,右键->转到->表达式,输入要查看的地址。
这也代表着第一个序列号的值应该就是ecx中的值,此时为F8BE。
(4)举一反三,菲菲子可以自主进行序列号2、3、4的尝试
提示:每一次找到序列号之后,需要使用快乐老家按钮,回到开始;再点击运行,别忘了在序列号中输入已经确定的值哦
做出来了吗?做不出来吧。嘿嘿,不然我也不会破防了。
妙计1:点击验证序列号开始运行,而不是回车开始运行哦
妙计2:用过的端点用同样的方法去掉,可以跳过中间繁琐的函数调用过程哦
妙计3:使用F8运行,菲菲子有没有感觉被欺骗了呀hhh
炫耀一下我的图:
由于一些失误,序列号又改变了,我重做了一遍,第一个序列号是D620
、第二个序列号BCAD、第三个序列号CCAB
(5)突破难点第四个序列号
仔细阅读前三个序列号的汇编指令,不难发现其中的操作运算越来越复杂了,从开始的读一个内存的值,到向右移动,到两个内存的数值相加。
但没有改变的是直接通过cmp的语句,我们可以直接找到对应的序列号结果,但第四个序列号不太一样,需要仔细分析上面的汇编代码。
分析mov eax,[local.86],将内存中esp-0x158的地址取了出来。
思考1、程序中取了别的地址的值,当做我们输入了?
很显然这个想法不对,那我们的输入就和答案无关了呀!
通过汇编代码查看,
读取的内存地址按顺序排布,没有问题!
思考2、程序内部对我们的输入进行了运算?
在附近的代码没有发现问题,究竟在哪里对内存中esp-0x158的值做了修改呢。
向上查看,我们可以看到这样一块可疑的代码,仔细阅读,分析含义:
代码含义是将19f288的一个字的内容,送到了19f278中,而19f278中的值就是我们输入的值。
貌似进行了简单的数值覆盖,接下来我们思考,19f288中的值是怎么来的呢?我们可以发现19f288其实等于[local.82],[local.82]=(eax+[local.78]) and 0xAFDA,其中eax的值
就是我们输入的第四个序列号,而[local.78]的值为D620,所以我们可以知道最后参与比较的表达式第一个序列号+第四个序列号的值,与上AFDA的值,等于25F7。
由于A是1010,7是0111。所以此时无解。
做到这里就差不多可以了,我们已经知道方法了!
总结
复习了一个实验用了俩个小时,考试周我真浪啊
华中科技大学软件安全实验一【破解Demo简易】相关推荐
- 计算机网络实验华中科技大学,华中科技大学计算机网络实验报告.pdf
华中科技大学计算机网络实验报告.pdf <计算机网络> 课程实验报告 姓名 院系 学号 南六楼 实验地点 实验时间 2013 年4 月21 日 计算机开放实验室 出勤.表现得分 实验报告 ...
- 华中科技大学微波实验报告2
华中科技大学的第二个微波实验 一.实验项目 微波元件特性参数测量 二.实验目的 1.学习矢量利用矢量网络分析仪扫频测量微带谐振器Q值的方法: 2.学会使用矢量网络分析仪测量微波定向耦合器的特性参数: ...
- 华中科技大学微波实验报告1
华中科技大学的第一个微波实验 实验项目 矢量网络分析仪的使用及传输线的测量 实验目的 1.学习矢量网络分析仪的基本工作原理: 2.初步掌握AV36580矢量网络分析仪的操作使用方法: 3.掌握使用矢量 ...
- 华中科技大学计算机网络实验_第四届江苏省计算机网络与云计算新技术研讨会在南京召开...
第四届江苏省计算机网络与云计算新技术研讨会于2020年12月12日在南京喜马拉雅假日酒店成功召开,100多位来自全省产学研各界专家学者参加了本次会议.本次会议由江苏省计算机学会网络与分布计算专委会和云 ...
- 华中科技大学操作系统实验课 实验四
一.实验目的 (1)理解设备是文件的概念. (2)掌握Linux模块.驱动的概念和编程流程 (3)Windows /Linux下掌握文件读写基本操作 二.实验内容 (1)编写一个Linux内核模块,并 ...
- 华科 计算机网络实验,华中科技大学计算机网络实验(二)报告.doc
计算机网络课程实验报告 实验2:抗干扰编码 姓名 李蓝鑫 院系 自动化学院 学号 U201514280 实验地点 科技楼十二楼机房 实验时间 2018年5月3日 实验目的: 1. 了解抗干扰编码原理. ...
- 华中科技大学操作系统实验课 实验三
一.实验目的 (1)理解页面淘汰算法原理,编写程序演示页面淘汰算法. (2)验证Linux虚拟地址转化为物理地址的机制 (3)理解和验证程序运行局部性的原理. (4)理解和验证缺页处理的流程. 二.实 ...
- 华科计算机电路理论实验报告,华中科技大学组成原理实验报告单周期MIPS CPU数据表示实验.docx...
文档介绍: 专业:计算机科学与技术班级:CS1502学号U201414596姓名:卢振兴电话:**********邮件:476134013@数据表示实验 2设计要求 2方案设计 213 实验步骤 7故 ...
- c语言实验与课程设计 李开,华中科技大学C语言课程设计实验报告及源代码.doc...
华中科技大学C语言课程设计实验报告及源代码 课 程 设 计 报 告 题目: 航班时刻表信息查询系统 课程名称: C语言程序设计 专业班级: 学 号: 姓 名: 指导教师: 报告日期: 计算机科学与技术 ...
最新文章
- 7软件质量与测试规范
- 阿里平头哥首款CPU芯片发布!5nm倚天710,128核单片600亿晶体管,无人能与争锋...
- Linux常用命令——压缩与解压缩命令
- 3,SQL语句及数据库优化
- linux显示存储与标定不符,找到了linux分区顺序错乱修复方法
- django中collectstatic的使用(亲测)
- 人类一败涂地做图教程_《人类一败涂地》形象绘画技巧图文指南
- Sparklens:Spark应用程序优化工具
- shell中的expect命令
- 可变模糊集理论matlab程序,可变模糊集理论的哲学基础
- oracle查参数,各种oracle参数查询语句
- 高频小信号谐振放大器的matlab仿真,高频小信号谐振放大器的MATLAB仿真
- idear配置工具上传Jar包到服务器并运行
- 域名遭到劫持怎么办?
- 七种策略助企业成功转型数字化
- c语言实现逻辑谓词编程,头脑风暴-逻辑编程语言Prolog(01)
- 试客行销盛行国内试客族突破300万
- ssis ssrs mysql_【软件】SSIS vs SSAS vs SSRS
- html模板引擎的作用,如何用javascript实现一个模板引擎
- CTF比赛中常见的MISC解题方法