- 1、本文档共8页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
OD使用教程7 - 解密系列【调试篇】教学文稿.ppt
OD使用教程7
小甲鱼觉得,掌握逆向的思维尤为重要。所以在咱的OD使用教程中,不单会告诉你怎么去逆向这个软件,小甲鱼更多想引导大家发挥自己的想象力,在理解原理的基础上用更多创新的方法实现突破。(此处应该有掌声)
好滴,咱一起来看一下今天的对手,正所谓知己知彼杀杀杀!
VisualSite Designer.exe
破解的思路
仔细观察一个程序,我们会发现,无论在怎么加密,无论加密哪里,这个程序加密的目的就是需要你掏腰包来获得更多的功能或者解除限制。
那么我们就可以逆向的来思考,如果该程序成功的注册后,那么程序的行为必将发生变化,如NAG去除了,如功能限制没有了等等。
也就是说,程序的代码的走法也会跟未注册的时候截然不同。因为程序的行为改变了,那么决定它所有行为的代码走法也会发生变化。
破解的思路
小甲鱼在这里再举个例子:
未注册 - 不跳过NAG窗口
已注册 - 改编代码或条件,跳过NAG窗口
说啥呢?也就是说我们只需要找到这个判断是否需要“跳”的条件即可。
另外补充说一点,一般我们说条件跳,鱼油们一定会想到:cmp XX,XX 然后jz或jnz或jl等。
其实还有另外一种形式,叫做可变跳转。
小甲鱼描述能力仅限于美女,还是举个例子吧:
破解的思路
例如jmp eax,无疑是一个直接的跳转。但是我们知道eax是一个寄存器,对于高级语言的说法它就是一个变量,里边的值随时可以改变。
那么完全可以这样:
未注册 - eax == 004013A0
已注册 - eax ==所以这个例子告诉我们,世界很大,也很邪恶,坏叔叔很多,他们鬼点子更多,要实现技术的突破,就要打破传统的思维模式。
认识OD的两种断点
OllyDBG从原理上来区分,有两种不同的断点:软件断点和硬件断点。
也许会有朋友说那不是还有内存断点吗?
内存断点严格来说是属于一种特殊的软件断点。
内存断点:
内存断点每次只能设置一个,假如你设置了另一个内存断点,则上一个会被自动删除。
设置一个内存断点,会改变整块(4KB)内存的属性,哪怕你只设置一个字节的内存断点。
认识OD的两种断点
这两种断点在使用上都有它们自身的限制,只要搞清楚它们各自的特性就知道何时该用哪个了。
例如软件断点就只能在OD的CPU界面下,在数据段它下不了,在一条指令的中间它也下不了。
在我们这个例子中,断点我们想下在windows的动态链接库里,我们需要用到硬件断点,因为用软件断点下在dll文件中是不会保存的,重启程序后将丢失断点。
接下来的一系列实践会让你掌握这些技巧的!
文档评论(0)