首页
社区
课程
招聘
[原创]mfc spy,把mfc程序的内部函数揪出来
发表于: 2005-1-14 00:05 106471

[原创]mfc spy,把mfc程序的内部函数揪出来

2005-1-14 00:05
106471
收藏
免费 7
支持
分享
最新回复 (93)
雪    币: 200
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
76
我这个程序很奇怪,这个程序应该是MFC编写的,上面有三个按钮,但是用MFCSpy分析的时候无法看到dialog上的按钮消息处理函数的地址,到message map那里看,都是一些0字节。mfcspy分析的结果如下
HWND: 000A052C
class:0012D4A8(CSfingePropertySheet,size=0x94)
CSfingePropertySheet:CPropertySheet:CWnd:CCmdTarget:CObject

[+00]vtbl address=00451070(SFinGe.exe+051070)
[+04]CCmdTarget::m_dwRef=1
[+08]CCmdTarget::m_pOuterUnknown=00000000
[+0C]CCmdTarget::m_xInnerUnknown=00000000
[+10]CCmdTarget::m_xDispatch.m_vtbl=00000000
[+14]CCmdTarget::m_bResultExpected=00000001
[+18]CCmdTarget::m_xConnPtContainer.m_vtbl=00000000
[+1C]CWnd::m_hWnd=000A052C
[+20]CWnd::m_hWndOwner=00000000
[+24]CWnd::m_nFlags=00000018
[+28]CWnd::m_pfnSuper=77D2759D
[+2C]CWnd::m_nModalResult=00000002
[+30]CWnd::m_pDropTarget=00000000
[+34]CWnd::m_pCtrlCont=00000000
[+38]CWnd::m_pCtrlSite=00000000

[vtbl+00]GetRuntimeClass         =00408B80(SFinGe.exe+008B80)
[vtbl+04]destructor              =00408BD0(SFinGe.exe+008BD0)
[vtbl+08]Serialize               =004017C0(SFinGe.exe+0017C0)
[vtbl+0C]OnCmdMsg                =0044A5AF(SFinGe.exe+04A5AF)
[vtbl+10]OnFinalRelease          =00442E87(SFinGe.exe+042E87)
[vtbl+14]IsInvokeAllowed         =00444E87(SFinGe.exe+044E87)
[vtbl+18]GetDispatchIID          =00444847(SFinGe.exe+044847)
[vtbl+1C]GetTypeInfoCount        =004463ED(SFinGe.exe+0463ED)
[vtbl+20]GetTypeLibCache         =004463ED(SFinGe.exe+0463ED)
[vtbl+24]GetTypeLib              =00444E8D(SFinGe.exe+044E8D)
[vtbl+28]GetMessageMap           =00408C00(SFinGe.exe+008C00)
[vtbl+2C]GetCommandMap           =00444F24(SFinGe.exe+044F24)
[vtbl+30]GetDispatchMap          =00444EDA(SFinGe.exe+044EDA)
[vtbl+34]GetConnectionMap        =00444F1E(SFinGe.exe+044F1E)
[vtbl+38]GetInterfaceMap         =00444EE6(SFinGe.exe+044EE6)
[vtbl+3C]GetEventSinkMap         =00444EE0(SFinGe.exe+044EE0)
[vtbl+40]OnCreateAggregates      =00444567(SFinGe.exe+044567)
[vtbl+44]GetInterfaceHook        =00444847(SFinGe.exe+044847)
[vtbl+48]GetExtraConnectionPoints=00444847(SFinGe.exe+044847)
[vtbl+4C]GetConnectionHook       =00444847(SFinGe.exe+044847)
[vtbl+50]PreSubclassWindow       =00442E86(SFinGe.exe+042E86)
[vtbl+54]Create                  =00442C8E(SFinGe.exe+042C8E)
[vtbl+58]DestroyWindow           =00442E98(SFinGe.exe+042E98)
[vtbl+5C]PreCreateWindow         =00442C6E(SFinGe.exe+042C6E)
[vtbl+60]CalcWindowRect          =00443CC6(SFinGe.exe+043CC6)
[vtbl+64]OnToolHitTest           =00442FA6(SFinGe.exe+042FA6)
[vtbl+68]GetScrollBarCtrl        =00444847(SFinGe.exe+044847)
[vtbl+6C]WinHelpA                =004432D3(SFinGe.exe+0432D3)
[vtbl+70]ContinueModal           =0044A665(SFinGe.exe+04A665)
[vtbl+74]EndModalLoop            =00444823(SFinGe.exe+044823)
[vtbl+78]OnCommand               =0044ABD2(SFinGe.exe+04ABD2)
[vtbl+7C]OnNotify                =00443A6A(SFinGe.exe+043A6A)
[vtbl+80]GetSuperWndProcAddr     =00442F2C(SFinGe.exe+042F2C)
[vtbl+84]DoDataExchange          =004017C0(SFinGe.exe+0017C0)
[vtbl+88]BeginModalState         =00401810(SFinGe.exe+001810)
[vtbl+8C]EndModalState           =00401820(SFinGe.exe+001820)
[vtbl+90]PreTranslateMessage     =0044A54E(SFinGe.exe+04A54E)
[vtbl+94]OnAmbientProperty       =004450EF(SFinGe.exe+0450EF)
[vtbl+98]WindowProc              =004433FB(SFinGe.exe+0433FB)
[vtbl+9C]OnWndMsg                =0044343F(SFinGe.exe+04343F)
[vtbl+A0]DefWindowProcA          =00442EE5(SFinGe.exe+042EE5)
[vtbl+A4]PostNcDestroy           =00442E86(SFinGe.exe+042E86)
[vtbl+A8]OnChildNotify           =00443E04(SFinGe.exe+043E04)
[vtbl+AC]CheckAutoCenter         =00444567(SFinGe.exe+044567)
[vtbl+B0]IsFrameWnd              =004463ED(SFinGe.exe+0463ED)
[vtbl+B4]SetOccDialogInfo        =00444847(SFinGe.exe+044847)

message map=00451050(SFinGe.exe+051050)
msg map entries at 00451058(SFinGe.exe+051058)

希望高手能告知这是为什么呢?是用了win32混合编程吗?这样的情况如何定位这个按钮的消息处理函数地址呢?
2006-2-22 14:36
0
雪    币: 202
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
77
朋友,我的邮箱mikydoll@126.com,也麻烦发一个您的,交流学习下。谢谢
2006-10-31 15:41
0
雪    币: 72
活跃值: (412)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
78
确实是好东东啊。

有了这个,有些事就简单多了。
2010-9-26 14:55
0
雪    币: 173
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
79
非常不错   。
2010-12-9 09:02
0
雪    币: 225
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
80
不错,顶了。。。。。。。
2011-1-25 14:46
0
雪    币: 205
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
81
谢谢楼主的分享。
2012-6-8 21:41
0
雪    币: 3366
活跃值: (1358)
能力值: ( LV4,RANK:40 )
在线值:
发帖
回帖
粉丝
82
静态编译的MFC识别怎么样?
2013-12-25 17:17
0
雪    币: 144
活跃值: (43)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
83
值得深入研究,我决定修改一下,以支持最新版的MFC系列。
2014-6-9 10:46
0
雪    币: 237
活跃值: (40)
能力值: ( LV3,RANK:20 )
在线值:
发帖
回帖
粉丝
84
如果能直接生成idc脚本就更好了。
2014-8-17 15:20
0
雪    币: 16
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
85
放到 gitbub 开源就好了 楼主
2015-2-6 13:49
0
雪    币: 161
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
86
感谢,这么实用的好文章,
2015-2-25 23:19
0
雪    币: 40
活跃值: (32)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
csa
87
不错不错。使用下先
2015-2-26 09:31
0
雪    币: 121
活跃值: (44)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
88
值得深入研究,我决定修改一下,以支持最新版的MFC系列。
2015-2-27 00:35
0
雪    币: 205
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
89
写MFC的,收藏了,谢谢楼主
2015-3-4 16:13
0
雪    币: 144
活跃值: (43)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
90
居然更新了
2015-3-4 16:21
0
雪    币: 398
活跃值: (40)
能力值: ( LV3,RANK:20 )
在线值:
发帖
回帖
粉丝
91
我用这工具测试了VC6写的程序正常,但VC2010写的程序,都不能正常识别
2015-3-4 16:51
0
雪    币: 100
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
92
楼主请问有最近更新该工具吗?
2015-3-24 12:37
0
雪    币: 188
活跃值: (342)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
93
想到不错,一直没想过可以这样分析mfc
2015-6-25 23:43
0
雪    币: 18
活跃值: (301)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
94
学习了,谢谢~~
2016-12-5 09:25
0
游客
登录 | 注册 方可回帖
返回
//