标签:
MFC:微软基础类库(英语:Microsoft Foundation Classes,简称MFC)是一个微软公司提供的类库(class
libraries),以C++类的形式封装了Windows
API,并且包含一个应用程序框架,以减少应用程序开发人员的工作量。其中包含的类包含大量Windows句柄封装类和很多Windows的内建控件和组
件的封装类。----名词解释
开始OD调试 目的是去除软件的使用次数限制
载入程序后F8走走看
发现了弹窗 不是进入程序的窗口 那我们F2设置断点之后,重新载入程序跟进去看看(记得把之前的断点去掉,为了方便)
跟进了两个call之后
F8单步走,发现跳出弹窗
根据程序发现进入了动态链接库的领空,然后发现又一次出现了弹窗,那我们要在这里设置断点,但是不能够是普通的软件断点了(也就是草率的按F2),我们可以右键-->断点-->硬件执行 设下硬件断点
重载程序,运行到断点处,删除之前的断点
会发现又进入了普通的程序领空,然后我们ctrl+F8 让它自己运行会发发现又出现了一个弹窗,那我又跟进去看了下发现它在动态链接库的领空死循环,说明这已经是我们的要的了。
点击进入程序 发现成功进入了
那么这个call函数就是我们要找的一个算法,它的功能是计算如果为1的话 就return 1 那我们把它汇编为 mov eax,1
保存程序 重新载入新程序 点击运行 发现直接可以进入了
但是关掉之后会出现小广告,很讨厌
先解释一下 OD中K的作用就是通过调用堆栈来看出哪些函数被调用过了
发现调用了一个程序领空的函数,我们双击开来看看
下个断点重新载入下,我们把这个函数nop掉,然后保存文件
重新载入下
运行 点击关闭后,广告不见了 真棒!
那么,还有另一种方法,也就是一种对比的方法,在程序的领空里面把所有的跳转都备注下有没有跳转,然后人为的把程序的计数变为0,然后对比之前的注释,会发现有些奇怪,有些原本不跳的跳转确跳了,那我们可以想办法反其道而行,应该就可以得到一些成果。
OD调试篇7--笔记及解题报告
标签:
原文地址:http://www.cnblogs.com/terryue/p/4894533.html