首页
社区
课程
招聘
olldbg如何对button的点击事件下断点??
发表于: 2005-8-24 10:31 4540

olldbg如何对button的点击事件下断点??

2005-8-24 10:31
4540
olldbg如何对button的点击事件下断点??

[课程]Android-CTF解题方法汇总!

收藏
免费 0
支持
分享
最新回复 (3)
雪    币: 201
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
2
没有人用过消息断点吗?
2005-8-24 16:38
0
雪    币: 200
活跃值: (40)
能力值: ( LV4,RANK:50 )
在线值:
发帖
回帖
粉丝
3
根据注册对话框函数就知道了点按钮后的对话框过程入口地址.
然后在传递消息的函数里用SHIFT+F4下断,把按钮ID输入进去就可以了
中断后,再去过程入口那里下个中断  比如说ID是543, 那么肯定有个 cmp eax,543的句子,这这条命令一样能追的到~

你要是明白了消息传递和对话框的建立,这个问题就不该问了~
2005-8-24 17:34
0
雪    币: 209
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
4
以MFC下的程序为例:
它的调用结构如下:
AfxWndProcBase
AfxWndProc
  AfxWndProc(hWnd, uMsg, uParam, lParam, CWnd* pWnd)
   AfxCallWndProc(CWnd* pWnd, HWND hWnd, UINT uMsg, WPARAM wParam, LPARAM lParam)
    AfxCallWndProc
     CWnd::WindowProc
      WindowProc( UINT message, WPARAM wParam, LPARAM lParam );
       CWnd::OnWndMsg
         用户::On***Msg()
现查找名称,在AfxCallWndProc上设断点,
对于这个调用,hWnd在esp+8的地方uMsg在esp+C的地方
所以,条件为[esp+8]==hWnd && [esp+C] == message
进入这个断点后,再在CWnd::OnWndMsg上设断点,进入这个函数,跟进去就可以到用户写的处理函数中了。

这大概是对MFC的较为方便的跟踪方法。
也可以在TranslateMessage上设断点,但要跟踪进入的层次太多。

其实还可以找到消息映射列表,直接得到用户的所有消息处理函数入口。
2005-9-1 22:45
0
游客
登录 | 注册 方可回帖
返回
//