OD调试篇12
2015-11-02 21:26
169 查看
Delphi的逆向先看看今天需要破解的程序。
![](http://images2015.cnblogs.com/blog/824717/201511/824717-20151102212553039-379426183.jpg)
![](http://images2015.cnblogs.com/blog/824717/201511/824717-20151102212554524-1936014407.png)
![](http://images2015.cnblogs.com/blog/824717/201511/824717-20151102212554930-2015575971.png)
打开程序先出现了一个nag窗口,然后是unregistered未注册的提示,以及关于里的需要注册。
![](http://images2015.cnblogs.com/blog/824717/201511/824717-20151102212555289-555907656.png)
拖进die看了看 就是delphi写的。那我们就用OD打开看看。
![](http://images2015.cnblogs.com/blog/824717/201511/824717-20151102212555555-858441882.png)
老方法,右键查找字符串,
![](http://images2015.cnblogs.com/blog/824717/201511/824717-20151102212555821-1074533096.png)
![](http://images2015.cnblogs.com/blog/824717/201511/824717-20151102212558008-73365952.png)
发现了有用的东西,双击进入
![](http://images2015.cnblogs.com/blog/824717/201511/824717-20151102212558711-165671789.png)
我们需要的地方并没有任何跳转,三角形就是有跳转来自什么的。
![](http://images2015.cnblogs.com/blog/824717/201511/824717-20151102212559242-1564264300.png)
经过分析,可以利用OD的功能查看下,除了它本身,还有谁调用了照这个命令
![](http://images2015.cnblogs.com/blog/824717/201511/824717-20151102212559664-1631606166.png)
发现了还有个东西调用了它 push了东西进去,双击它
![](http://images2015.cnblogs.com/blog/824717/201511/824717-20151102212600336-729519201.png)
我们可以下断点,试试,发现程序没有断下来,那我们向上找找。
![](http://images2015.cnblogs.com/blog/824717/201511/824717-20151102212600883-320928481.png)
发现了有用的东西,那我们上去找合适的地方下断点。重新载入,运行。
![](http://images2015.cnblogs.com/blog/824717/201511/824717-20151102212601649-1418956206.png)
然后单步执行
![](http://images2015.cnblogs.com/blog/824717/201511/824717-20151102212602242-634908335.jpg)
发现问题了,这个call有问题,对这个call下断点
![](http://images2015.cnblogs.com/blog/824717/201511/824717-20151102212602946-1433703368.png)
既然有问题,把它nop掉试试
![](http://images2015.cnblogs.com/blog/824717/201511/824717-20151102212603649-31879374.png)
在下面设断点,看看能不能执行过来,发现是可以得,那我们F8继续走
![](http://images2015.cnblogs.com/blog/824717/201511/824717-20151102212604055-1720257313.png)
发现一个跳转,要让他实现,不然下面的jnz跳转就跳出程序了 改为jmp 继续F8
![](http://images2015.cnblogs.com/blog/824717/201511/824717-20151102212604836-1685813247.png)
又发现了一个跳转,不能让它跳,跳了红线牵的地方又是failed了,直接nop然后一直F8 发现程序OK了。那我们保存,运行下检验下程序
![](http://images2015.cnblogs.com/blog/824717/201511/824717-20151102212605946-977003401.jpg)
发现没有了nag窗口,也没有了未注册的信息,也不用写注册码了。那就破解完毕啦!
来自为知笔记(Wiz)
![](http://images2015.cnblogs.com/blog/824717/201511/824717-20151102212553039-379426183.jpg)
![](http://images2015.cnblogs.com/blog/824717/201511/824717-20151102212554524-1936014407.png)
![](http://images2015.cnblogs.com/blog/824717/201511/824717-20151102212554930-2015575971.png)
打开程序先出现了一个nag窗口,然后是unregistered未注册的提示,以及关于里的需要注册。
![](http://images2015.cnblogs.com/blog/824717/201511/824717-20151102212555289-555907656.png)
拖进die看了看 就是delphi写的。那我们就用OD打开看看。
![](http://images2015.cnblogs.com/blog/824717/201511/824717-20151102212555555-858441882.png)
老方法,右键查找字符串,
![](http://images2015.cnblogs.com/blog/824717/201511/824717-20151102212555821-1074533096.png)
![](http://images2015.cnblogs.com/blog/824717/201511/824717-20151102212558008-73365952.png)
发现了有用的东西,双击进入
![](http://images2015.cnblogs.com/blog/824717/201511/824717-20151102212558711-165671789.png)
我们需要的地方并没有任何跳转,三角形就是有跳转来自什么的。
![](http://images2015.cnblogs.com/blog/824717/201511/824717-20151102212559242-1564264300.png)
经过分析,可以利用OD的功能查看下,除了它本身,还有谁调用了照这个命令
![](http://images2015.cnblogs.com/blog/824717/201511/824717-20151102212559664-1631606166.png)
发现了还有个东西调用了它 push了东西进去,双击它
![](http://images2015.cnblogs.com/blog/824717/201511/824717-20151102212600336-729519201.png)
我们可以下断点,试试,发现程序没有断下来,那我们向上找找。
![](http://images2015.cnblogs.com/blog/824717/201511/824717-20151102212600883-320928481.png)
发现了有用的东西,那我们上去找合适的地方下断点。重新载入,运行。
![](http://images2015.cnblogs.com/blog/824717/201511/824717-20151102212601649-1418956206.png)
然后单步执行
![](http://images2015.cnblogs.com/blog/824717/201511/824717-20151102212602242-634908335.jpg)
发现问题了,这个call有问题,对这个call下断点
![](http://images2015.cnblogs.com/blog/824717/201511/824717-20151102212602946-1433703368.png)
既然有问题,把它nop掉试试
![](http://images2015.cnblogs.com/blog/824717/201511/824717-20151102212603649-31879374.png)
在下面设断点,看看能不能执行过来,发现是可以得,那我们F8继续走
![](http://images2015.cnblogs.com/blog/824717/201511/824717-20151102212604055-1720257313.png)
发现一个跳转,要让他实现,不然下面的jnz跳转就跳出程序了 改为jmp 继续F8
![](http://images2015.cnblogs.com/blog/824717/201511/824717-20151102212604836-1685813247.png)
又发现了一个跳转,不能让它跳,跳了红线牵的地方又是failed了,直接nop然后一直F8 发现程序OK了。那我们保存,运行下检验下程序
![](http://images2015.cnblogs.com/blog/824717/201511/824717-20151102212605946-977003401.jpg)
发现没有了nag窗口,也没有了未注册的信息,也不用写注册码了。那就破解完毕啦!
来自为知笔记(Wiz)
相关文章推荐
- 介绍一个开源的在线管理SQLServer的小工具--SQLEntMan
- Saltstack简单汇总,快速入门
- 缩放WebView中图片尺寸 适合屏幕尺寸
- 【bzoj4300】绝世好题
- vs2010 + opencv保存图像模块
- 展讯7715 Android 平台编译
- OC第六天 block
- 在Asset Store上购买unity插件
- LeetCode Binary Tree Postorder Traversal(数据结构)
- 《剑指offer》——不用加减乘除做加法
- ios(7)@synthesize和@dynamic分别有什么作用?
- GitHub 使用教程图文详解
- UVA11258
- #在蓝懿学习iOS的日子#Day10
- 获取对象类型
- 面试题7:用两个栈实现队列和用两个队列实现一个栈
- SSL编程(1) 概述
- 【iOS学习笔记】IOS开发中设置applicationIconBadgeNumber和消息推送
- hdu 5536 Chip Factory
- SSL加密编程(1) 概述