MFC逆向-查找控件事件
本文最后更新于:2022-01-21 晚上
前言
最近想做一下腾讯的2016游戏安全竞赛的题目,然后第一题的是一个MFC程序,很久没有调试过MFC程序了,然后来记录一下MFC逆向中如何查找到控件事件的方法吧。
以前我遇见MFC的程序,一般都是直接用API下断的方式,比如断在弹窗,获取文本这些地方。这些方法也可以用,只是感觉没有学习到的这个方法方便。这次搜索了一下,学习了一种新的方式。(怎么以前没想着搜索学习一下呢…)
方法原理
首先我们要做MFC类的逆向,比如一些CM,都是想知道当点击按钮的时候的事件,从而来逆算法。在MFC中,程序是使用消息机制来实现操作相应的,数据结构如下:
1 |
|
其中nid
就是控件的id
,pfn
代表着处理函数,当此控件被调用时,就会调用此函数。
实际寻找
这里就直接拿腾讯的2016游戏安全竞赛题目来做示例了。
首先用Resource Hacker
打开文件,此工具可以帮助我们找到控件的ID
。我们现在想找的是名为注册
的按钮,看到此控件的ID
为1003
然后使用IDA进行查找
找到rdata的数据,可以看到如下的结构
可以手动修改结构,看到此时已经修改好了结构,其中sub_401E60
,就是我们想要找的当按下注册按钮时的事件处理函数。
接下来就可以开始进行分析了。
参考链接
https://www.jianshu.com/p/6e75c5d58230
本博客所有文章除特别声明外,均采用 CC BY-SA 4.0 协议 ,转载请注明出处!