|
[原创]mfc spy,把mfc程序的内部函数揪出来
我这个程序很奇怪,这个程序应该是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混合编程吗?这样的情况如何定位这个按钮的消息处理函数地址呢? |
|
几种典型程序Button处理代码的定位
thank you |
|
|
|
|
|
请教如何跟踪响应按钮的代码
多谢,现在就学习 |
操作理由
RANk
{{ user_info.golds == '' ? 0 : user_info.golds }}
雪币
{{ experience }}
课程经验
{{ score }}
学习收益
{{study_duration_fmt}}
学习时长
基本信息
荣誉称号:
{{ honorary_title }}
能力排名:
No.{{ rank_num }}
等 级:
LV{{ rank_lv-100 }}
活跃值:
在线值:
浏览人数:{{ visits }}
最近活跃:{{ last_active_time }}
注册时间:{{ user_info.create_date_jsonfmt }}
勋章
兑换勋章
证书
证书查询 >
能力值