能力值:
( 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混合编程吗?这样的情况如何定位这个按钮的消息处理函数地址呢?
|
能力值:
( LV2,RANK:10 )
|
-
-
77 楼
朋友,我的邮箱mikydoll@126.com,也麻烦发一个您的,交流学习下。谢谢
|
能力值:
( LV2,RANK:10 )
|
-
-
78 楼
确实是好东东啊。
有了这个,有些事就简单多了。
|
能力值:
( LV2,RANK:10 )
|
-
-
79 楼
非常不错 。
|
能力值:
( LV2,RANK:10 )
|
-
-
80 楼
不错,顶了。。。。。。。
|
能力值:
( LV2,RANK:10 )
|
-
-
81 楼
谢谢楼主的分享。
|
能力值:
( LV4,RANK:40 )
|
-
-
82 楼
静态编译的MFC识别怎么样?
|
能力值:
( LV2,RANK:10 )
|
-
-
83 楼
值得深入研究,我决定修改一下,以支持最新版的MFC系列。
|
能力值:
( LV3,RANK:20 )
|
-
-
84 楼
如果能直接生成idc脚本就更好了。
|
能力值:
( LV2,RANK:10 )
|
-
-
85 楼
放到 gitbub 开源就好了 楼主
|
能力值:
( LV2,RANK:10 )
|
-
-
86 楼
感谢,这么实用的好文章,
|
能力值:
( LV2,RANK:10 )
|
-
-
87 楼
不错不错。使用下先
|
能力值:
( LV2,RANK:10 )
|
-
-
88 楼
值得深入研究,我决定修改一下,以支持最新版的MFC系列。
|
能力值:
( LV2,RANK:10 )
|
-
-
89 楼
写MFC的,收藏了,谢谢楼主
|
能力值:
( LV2,RANK:10 )
|
-
-
90 楼
居然更新了
|
能力值:
( LV3,RANK:20 )
|
-
-
91 楼
我用这工具测试了VC6写的程序正常,但VC2010写的程序,都不能正常识别
|
能力值:
( LV2,RANK:10 )
|
-
-
92 楼
楼主请问有最近更新该工具吗?
|
能力值:
( LV2,RANK:10 )
|
-
-
93 楼
想到不错,一直没想过可以这样分析mfc
|
能力值:
( LV2,RANK:10 )
|
-
-
94 楼
学习了,谢谢~~
|
|
|