- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
第十五章-硬编码序列号寻踪-Part3
我们来接着完成上一章留下那个硬编码Cr
ackMe的作业,名字叫”Splish”。
用OD加载它。
OD加载后停在了入口点处。
我们通过在反汇编窗口中点击鼠标右键选
择-Search for-Name(label)in current
module查看API函数列表。
我们可以看到当前模块使用了哪些API函
数。
我们可以看到使用了GetWindowTextA来获
取序列号,MessageBoxA来提示序列号正确
或者错误。我们可以给这两个API设置断
点,这里我们先来看看该程序的字符串列
表。
单击鼠标右键选择-Search for-All refe
renced text strings。
这里我们可以看到提示输入了正确硬编码
序列号的字符串-”Gongratulations, yo
u got the hard coded serial”。我们
在这个字符串上面双击鼠标左键,就可以
来到引用了该字符串的代码处。
我们可以看到来到了验证序列号的代码块
了。
可以看到使用GetWindowTextA获取用户输
入的序列号,然后使用MessageBoxA来提示
用户输入的序列号正确与否。我们在获取
用户输入的序列号GetWindowTextA的调用
处设置一个断点。
按F9键运行CrackMe。
为了找到上面的硬编码序列号,我们随便
输入一个错误的序列号,然后单击Check H
ardcoded按钮。
我们可以看到断在了之前设置的断点处。
我们先来看看堆栈中的情况,Buffer参数
指向403215地址开始的内存单元,用于保
存用户输入的序列号。
我们在数据窗口中定位到该缓冲区
该缓冲区会保存用户输入的序列号。我们
按F8键单步执行该API函数。
由于单击F8键,该API函数得以执行,所以
序列号保存到了该缓冲区中。
下一条指令会将401353保存到EAX中(记住
,LEA指令并不是移动指定地址内存单元中
的内容,而是移动方括号中的值,这里是40
1353)。我们通过在该指令上面单击鼠标
右键选择-Follow in Dump-Memory addre
ss来在数据窗口中定位到401353这个地址
。
401353指向字符串”HardCoded”,按F7键
单步执行LEA指令。
解释窗口中也提示401353这个地址指向字
符串”HardCoded”,执行LEA指令后,EAX
保存了401353这个地址。
接下来的LEA指令,EBX会保存403215这个
地址。
按F7键单步,EBX保存403215。
OD中显示,403215这个地址指向字符串”9
8989898”,也就是我们之前输入的错误序
列号,我们像之前一样在数据窗口中转到4
03215这个地址。
可以看到403215指向的内存单元中保存了
我们输入的错误序列号。
下一条指令检查EAX 401353这个地址指向
内存单元的第一个字节是否为零。
我们可以在数据窗口中转到401353这个地
址,可以看到保存了字符串”HardCoded”
。
这里第一个字节是48,解释窗口中提示该A
SCII码对应的字符是’H’,是”HardCode
d”字符串的第一个字节,不为零。
由于’H’不等于零,所以零标志位置0,JE
不会跳转 (记住,JE指令当零标志位Z置1的
时候跳转)。
继续单击F7键单步。
可以清楚的看到该指令将EAX指向内存单
元 (即字符串”HardCoded”)的第一个字
节,这里是48,保存到CL寄存器中,接下来
一条指令将EBX指向的内存单元 (即我们输
入的错误序列号)的第一个字节保存到DL
寄存器中。接着比较这两个字节是否相等
,如果不相等,就跳转到4013D2地址处,弹
出消息框提示”Sorry, please try agai
n.”。
下图中验证了这一点。
按F7键,CL寄存器的值为48。
接下来一行DL寄存器保存我们输入的错误
序列号的第一个字节。
按下F7键,可以看到DL的值为39。
现在比较CL和DL的值。
OD解释窗口中,字符’9’对应的ASCII码
值为39,即我们输入的错误序列号的第一
个字符与字符’H’对应的ASCII码值为48
,即硬编码序列号”HardCoded”的第一个
字符,进行比较。
可以看到由于它们不相等,JNZ指令就会跳
转到提示错误信息的代码处。如果它们相
等的话,跳转将不会发生,我们可以通过双
击零标志位Z来修改其值,让跳转不发生。
现在零标志位Z置1了,表示比较的两个字
您可能关注的文档
- 糖尿病教育-01-糖尿病基础知识.pptx
- 糖尿病教育-02-从关键指标看糖尿病的诊断与治疗.pptx
- 糖尿病教育-05-糖尿病降糖药物的选择.ppt
- 糖尿病教育-08-HbA1c测试介绍.pptx
- 糖尿病教育-09-糖尿病与并发症.pptx
- 糖尿病教育-11-关注下肢血管病变和糖尿病足.pptx
- 糖尿病教育-12-β细胞功能知多少.pptx
- 糖尿病教育-16-体重控制.pptx
- 糖尿病教育-17-肥胖糖尿病患者的治疗与管理.pptx
- 人工神经元网络模型.pptx
- 2025天津工业大学师资博士后招聘2人笔试题库带答案解析.docx
- 2025四川中冶天工集团西南公司招聘14人备考题库带答案解析.docx
- 2025四川南充市农业科学院第二批引进高层次人才考核招聘2人备考题库带答案解析.docx
- 2025四川德阳绵竹市人力资源和社会保障局绵竹市卫生健康局卫生事业单位考核招聘专业技术人员41人历年.docx
- 2025云南昭通昭阳区政务服务管理局公益性岗位招聘1人备考题库及答案解析(夺冠).docx
- 2025年西安一附院沣东医院招聘笔试题库附答案解析.docx
- 2025山东临沂市纪委监委机关所属事业单位选聘工作人员10人笔试备考试卷带答案解析.docx
- 2025四川成都市新都区妇幼保健院编外专业技术人员招聘8人历年真题题库附答案解析.docx
- 2025年宝鸡三和职业学院招聘笔试题库(82人)最新.docx
- 2025云南昆明市第二人民医院紧急招聘神经(创伤)外科医师1人历年试题汇编含答案解析(必刷).docx
最近下载
- 微表处配合比报告.doc VIP
- 赣美版美术五年级上册第14课 四格幽默漫画 课件(共16张PPT).pptx VIP
- 流体力学课后习题答案.pdf VIP
- ZQ减速机安装尺寸.pdf VIP
- 北师大版数学一年级上册看图列式应用题练习.pdf VIP
- C425056【基础】2025年厦门大学070704海洋地质《647海洋地质学》考研基础训练110题.pdf VIP
- 深井超深井钻完井技术现状、挑战和“十三五”发展方向.pdf VIP
- 大学生生涯发展展示.pptx VIP
- 2023年中国社会科学评价研究院招聘笔试参考题库附带答案详解.pdf VIP
- 票务岗位招聘面试题与参考回答2025年.docx VIP
原创力文档


文档评论(0)