方法一:字符串查找
首先用ollydbg打开我们要破解的软件
按F9使程序运行起来
我们想要知道点击”买入“按钮以后,程序调用了什么方法实现的。
接下来开始破解:
首先点击“买入”按钮,可以看到
接下来我们通过
中文引擎搜索,搜索我们刚才看到有有关信息,例如“Hello”
然后双击这个地址,跳转到MFVAppli中:
首先就在当下设置一个断点(F2),然后重新开始,
点击“买入”按钮时,就会暂停到如下界面
按F8单步调试,发现到01316703 FF15 70C23201 call dword ptr ds:[<&USER32.MessageBoxA>] ; user32.MessageBoxA
的时候窗口弹了出来
所以这个01316703就是弹出窗口的函数,接下来点击确定关掉窗口后继续调试。
到retn返回
这里可以看出在10277503上面有一个call,我猜想也许就是从这里调用的,接下来取消之前的断点,再10277500上添加一个断点。然后重新开始,按F9执行,点击“买入”按钮,
程序果然断在这里,证明我的猜想是没有错的(我之前试了N多遍才试出来)
然后按 F7进入这个函数,可以看到
调用了MFCAppli.CMFCApplication1Dlg::OnBnClickedButton1这个方法,再接着调试下去,
这里就是我们之前找到的地方,连起来就是点击了“买入”按钮以后,程序调用MFCAppli.CMFCApplication1Dlg::OnBnClickedButton1这个方法下面的MessageBoxA函数。
为了验证下正确性,找到MFCApplication1的源代码:
无误,至此查找完成。
方法二:按钮事件查询找
首先同上打开软件运行起来,然后打开程序窗口
可以看到如下界面
(如果没有的话右键->刷新)
然后我们在”买入”按钮上设一个消息断点
202的按钮弹起消息
然后点击买入按钮,程序暂停,打开内存窗口Alt+M
找到如下信息,在该信息上设置内存访问断点,记得删除之前的断点,以免影响之后的操作。