明确2个点:

1、MFC是微软为了方便程序员编写界面程序推出的一种软件架构(不能用在非微软系统上面,QT可以)

2、对于程序员来说,MFC涉及2个文件和3个关键位置,如下:

2个文件:.h文件和.cpp文件

3个关键位置:消息响应函数声明、实现以及控件和消息响应函数之间映射。

使用一个具体例子说明:

2个文件:6Dlg.h   6Dlg.cpp

3个关键位置:

消息响应函数声明,6Dlg.h文件

MFC软件架构逆向学习

实现,6Dlg.cpp文件

MFC软件架构逆向学习

控件和消息响应函数之间映射,6Dlg.cpp文件

MFC软件架构逆向学习

从生成的PE文件中定位消息响应函数位置,大致布局如下:

MFC软件架构逆向学习

详细内容如下(按虚拟地址从小到大顺序):

MFC软件架构逆向学习

MFC软件架构逆向学习

MFC软件架构逆向学习

MFC软件架构逆向学习

测试环境:Windows10   VS2015

其中MFC中函数不再以函数名出现,以函数序号代替函数名

注意:并不是所有的MFC程序中的消息响应函数都是这样分布,比如CTF中的MFC程序会故意难为你,不会是这种"惯例"布局。

例子下载地址:https://download.csdn.net/download/singleyellow/12741639

相关文章: