码迷,mamicode.com
首页 > 其他好文 > 详细

crack小实验

时间:2015-10-10 17:16:23      阅读:335      评论:0      收藏:0      [点我收藏+]

标签:

本文是按照《0day安全》一书中的实验一步步实现的,对于反汇编也有了新的认识。

工具:winxp sp3虚拟机,IDA Pro 6.6,OllyDbg,UltraEditor,VC 6.0,LordPE。

因为在win7下面虚拟内存有重定向的问题,不利于分析,因此在虚拟机win xp下面进行实验,win7下也可以通过ALSR插件来实现。

一、VC下编写小程序

程序实现密码验证,只有正确的密码才能成功。

二、IDA Pro反汇编程序

技术分享

可见“jz short loc_4010F6"是程序的判断语句,正确则进入右侧输出”Congratulation!",否则进入左侧,输出"incorrect password!"。

按空格键,找到语句所在位置“.text:004010E5                 jz      short loc_4010F6”。

三、OllyDbg动态调试

Ctrl+G找到“004010E5”所在位置:

CPU Disasm
地址 十六进制数据 汇编代码 注释
004010E5 /74 0F je short 004010F6

F2添加断点调试,发现程序确实在这里分支。

而通过将je(74)修改为jne(75)即可实现错误密码可以通过,而正确密码不能通过的现象。

四、LordPE计算文件偏移地址

技术分享

可知文件偏移地址为:0x004010E5-0x00400000 = 0x10E5

五、UltraEditor编辑PE文件

用UltraEditor打开PE文件,Ctrl+G找到0x10E5位置发现确实是"74",改为“75”即可,保存后运行发现程序确实发生了预期的变化。

crack小实验

标签:

原文地址:http://www.cnblogs.com/xiaofool/p/4867478.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!