最近一段时间在学习逆向,就做了一些总结,也是漫漫逆向之路中特征积累的开始
MFC12.0-vs2013编写
MFC14.0-vs2015编写
特征获取方法:在OnInitDialog和 按钮事件中使用MessageBox,下断点,并ctrl+f9,f8回溯,找到入口处
MFC12.0,MFC14.0都分析了D,R(debug调试 ,release发布)/S,D(static在静态库中使用 MFC ,dynamic在共享 DLL 中使用 MFC)四种情况:
下面使用简写DS DD RS RD(如DD:debug dynamic),注意dynamic动态的需要在对应的dll中查找特征
关于这一点,如图

![]()
12.0
OnInitDialog:[dynami在共享 DLL 中使用 MFCc在mfc120u.dll中找]
DS,DD
8945FC837DFC??74??8B4DFC8B118BF48B4DFC8B82????????FFD03BF4 调用处:CALL EAX
RS RD
558BEC817D0C????????75??FF7508E8????????5068????????E8????????595985C074??8B108BC8FF92????????EB?? 调用处:CALL DWORD PTR DS:[EDX+??]
按钮事件[dynamic在共享 DLL 中使用 MFC在mfc120u.dll中找]
DS,DD均为:CALL DWORD PTR SS:[EBP-0x8]
RS call dword ptr ss:[ebp+0x14]
RD call dword ptr ss:[ebp+0xC]
14.0
OnInitDialog [dynamic在共享 DLL 中使用 MFC在mfc140u.dll中找]
DS DD:8945F88B4DF8E8????????8B4DFCFF55F83BF4E8????????EB??EB??B8????????EB??33C0
调用处:
8B 4D FC mov ecx,dword ptr [ebp-4]
FF 55 F8 call dword ptr [ebp-8]
3B F4 cmp esi,esp
RS RD:8B0F568BB1????????8BCEE8????????8BCFFFD65EEB??33C040
调用处:
call esi
按钮事件[dynamic在共享 DLL 中使用 MFC在mfc140u.dll中找]
DS call dword ptr [ebp-48h]
DD call dword ptr [ebp-8]
RS call dword ptr ss:[ebp+0x14]
RD call dword ptr ss:[ebp+0xC]
使用:
确定是主模块还是mfc140u.dll或mfc120u.dll,
如果是opecode(如上面找OnInitDialog入口),ctrl+b查找;
如果是汇编命令(如上面的按钮),右键查找->所有命令->输入命令,全部下断

以后也许还会遇到其他的程序,如qt等,也都需要多总结,最简单的就是这样自己构造一个demo,定位到关键处
如有错误,还望批评指教~
[培训]科锐逆向工程师培训第53期2025年7月8日开班!