最新消息:本站技术交流 QQ 群:28124927

OllyDbg捕捉MFC程序按钮事件

逆向与汇编 exchen 5710浏览

1. 首先下消息断点WM_LBUTTONUP, 或者使用bp TranslateMessage MSG==WM_LBUTTONUP

2.点按钮会断在USER32模块中, ALT+M选择代码段F2下断点,再F9运行, 会看到执行到

0040160A .- FF25 E0204000 jmp dword ptr [<&MFC42.#6374_CWnd::W>; MFC42.#6374_CWnd::WindowProc

3. 在这里会比较坑爹, F8进去之后, ALT+M选择代码段F2下断点,再F9运行, 然后反反复复都是差不多这个位置, 最好的办法是在WindowProc下面找到这句下断点

00401670 .- FF25 24214000 jmp dword ptr [<&MFC42.#4425_CDialog>; MFC42.#4431_CPropertySheet::OnCmdMsg

4.F9运行起来, F8进去之后, ALT+M选择代码段F2下断点,再F9运行,会看到执行到这条语句

00401230 . B8 E0224000 mov eax, 004022E0

5.单步运行,会到MFC42模块里, 继续F8单步,会看到下面有一个call

73D323BA E8 7F000000 call 73D3243E

6., 在这里ALT+M,再选择 代码段F2下断点, F9运行,OK! 跳到消息响应处理的代码里.

00401470 . 6A 00 push 0
00401472 . 68 FC304000 push 004030FC
00401477 . 68 20304000 push 00403020 ; ASCII "OnButton1"
0040147C . E8 37020000 call
00401481 . C3 retn
---------------------------------------------------------------------------------------------------
只试了VC6.0, 其他版本的程序可能会有区别.

转载请注明:exchen's blog » OllyDbg捕捉MFC程序按钮事件