简单逆向分析使用案例(1)--CrackMe_00.exe 找出密码
2015-12-13 18:49
495 查看
环境:
win7 旗舰版 x64
OD2.01
PEiD0.95
使用资源
http://download.csdn.net/detail/obuyiseng/9351217 中的 CrackMe_00.exe
技巧:
使用OD中的栈回溯。
第一步:简单测试。
随便输入点击确定,发现弹出对话框,那么我们就可以确定,程序里面含有MessageBox函数。
第二步:使用PEiD查看程序信息。
通过上面的信息,我们猜测该程序是使用的VS2013编写,并且是Debug版本。
备注:
vs2015 -- 14 vs2013 -- 12vs2012 -- 11vs2010 -- 10 vs2008 --?? vs2005--??vc++6.0--6.0
不过这都只是参考而已。
我们接下来可以查看下子系统,内容如下:
我们在输入表中发现了MessageBoxA()。
第三步:进入OD调试
1、将程序拖入OD中,并打断点 BP MessageBoxA ----注意大小写
2、查看是否有存在1中打的断点
3、按C进行返回,并点击运行。弹出程序窗口,并进行任意输入,并点击确定。程序会在MessageBoxA函数处进行断住。
4、点击堆栈窗口中的栈顶回车,进入到CPU窗口,此时CPU窗口就是MessageBoxA调用后栈中压入的返回值。
5、在 00FC14D4地址往上看,发现了MessageBoxA。再往上看就发现了,弹出框中的文本“Err code” 和 正确的文本“Good”。
6、我们要想得到正确的信息,就需要查看文本"Good"的上面的信息。
在提示的注释处,发现有strcmp函数,该函数是比较两个文本是否相等。"1111"是我们自己写的,那么"HackAv"应该就是我们要找的密钥。
win7 旗舰版 x64
OD2.01
PEiD0.95
使用资源
http://download.csdn.net/detail/obuyiseng/9351217 中的 CrackMe_00.exe
技巧:
使用OD中的栈回溯。
第一步:简单测试。
随便输入点击确定,发现弹出对话框,那么我们就可以确定,程序里面含有MessageBox函数。
第二步:使用PEiD查看程序信息。
通过上面的信息,我们猜测该程序是使用的VS2013编写,并且是Debug版本。
备注:
vs2015 -- 14 vs2013 -- 12vs2012 -- 11vs2010 -- 10 vs2008 --?? vs2005--??vc++6.0--6.0
不过这都只是参考而已。
我们接下来可以查看下子系统,内容如下:
我们在输入表中发现了MessageBoxA()。
第三步:进入OD调试
1、将程序拖入OD中,并打断点 BP MessageBoxA ----注意大小写
2、查看是否有存在1中打的断点
3、按C进行返回,并点击运行。弹出程序窗口,并进行任意输入,并点击确定。程序会在MessageBoxA函数处进行断住。
4、点击堆栈窗口中的栈顶回车,进入到CPU窗口,此时CPU窗口就是MessageBoxA调用后栈中压入的返回值。
5、在 00FC14D4地址往上看,发现了MessageBoxA。再往上看就发现了,弹出框中的文本“Err code” 和 正确的文本“Good”。
6、我们要想得到正确的信息,就需要查看文本"Good"的上面的信息。
在提示的注释处,发现有strcmp函数,该函数是比较两个文本是否相等。"1111"是我们自己写的,那么"HackAv"应该就是我们要找的密钥。
相关文章推荐
- 设计模式-工厂模式
- PHP 7 已经发布,你会选择PHP 7吗?
- PHP 7 已经发布,你会选择PHP 7吗?
- Vector
- spring支持JCP的JSR330规范,使用javax.inject
- wamp集成环境下的配置问题 ----显示字符集的问题
- 糯米团—重制“iPhone团购信息客户端”(零)源代码与跳的那些坑和思考
- 【树】二叉树的各种操作
- 决策树
- viewDidAppear什么时候调用?
- 多个Flume合并一个channel上传文件到Hdfs
- C语言
- 《java并发编程实战》随笔——第二章 线程安全性
- 看德日进,凯文·凯利与Kurzweil老师?
- 云计算和SDN中的开源交换机介绍以及使用
- 单色VGA显示verilogHDL通用代码
- 日期选择器:jquery datepicker的使用
- id3算法(python代码)
- SLAM拾萃(1):octomap
- 数据挖掘笔记-特征选择-算法实现-1