如何用IDA找到这个程序中特定函数地址

 我来答
秋殇di冬寒
2016-12-22 · 超过314用户采纳过TA的回答
知道小有建树答主
回答量:688
采纳率:0%
帮助的人:408万
展开全部
在IDA反汇编窗口中记下函数开始内存地址,结束内存地址,然后转到“Hex -View”窗口记下二进制文件偏移量,最后使用WinHex打开二进制文件,找打对应位置,可以复制出来十六进制数据。
管罡00l

2020-12-18 · TA获得超过1.1万个赞
知道大有可为答主
回答量:1.2万
采纳率:41%
帮助的人:236万
展开全部
比起用Win32SDK写的程序,要分析MFC应用程序要麻烦不少。在前者,只要找到注册窗口类的地方就知道其WinProc的位置。那里是程序的控制中心,只要顺藤摸瓜就可以找到你感兴趣的地方。对于用MFC写的程序,这一切都变得复杂起来了。这时,所有的消息都是通过一套复杂的机制来完成分发的。他们是通过分发数据表来找到最终函数地址的. 详细请参阅MFC的源代码。 常见的消息分发数据是由以下的宏来生成的: ON_WM_SIZE() ON_NOTIFY(TCN_SELCHANGE, ID_TABBOARD, OnBoardSelchange) ON_WM_LBUTTONDBLCLK() ON_WM_LBUTTONDOWN() ON_WM_RBUTTONDOWN() ON_WM_TIMER() ON_COMMAND(ID_REDRAW_ALL, OnRedrawAll) 这里简单说一下如何找到二类消息的处理函数。一类是WM_XXX型消息,如WM_LBUTTONDOWN,另一类是WM_COMMAND型消息. 对于第一类,它的调用栈是: CMyView::OnLButtonDown <--最终目标 CWnd::OnWndMsg <--找到这个函数就接近最终目标了 CWnd::WindowProc AxfCallWndProc AxfWndProc AxfWndProcBase 以WM_LBUTTONDOWN为例 #define ON_WM_LBUTTONDOWN() / { WM_LBUTTONDOWN, 0, 0, 0, AfxSig_vwp, / (AFX_PMSG)(AFX_PMSGW)(void (AFX_MSG_CALL CWnd::*)(UINT, CPoint))&OnLButtonDown }, AfxSig_vwp = 0x31 对于VC6.0 Release 版本,可搜索 C0 24 F0 83 C0 2F 48 83 F8 30 0F 87 C6 02 找到CWnd::OnWndMsg。 进入CWnd::OnWndMsg后,找到 case 0x30(IDA 中的case 0x30其实是 case 0x31)处的 call ebx 将进入你真正感兴趣的地方! 这里必须用条件断点Dword(ESP+0x0c) == 0x201, (注WM_LBUTTONDOWN == 0x201) 否则这个断点总会遇到. 找WM_COMMAND消息处理的地方 对于第二类,它的调用栈是: CMyDoc::OnCmdXXX <--最终目标 _AxfDispatchCmdMsg <--找到这个函数就接近最终目标了 CCmdTarget::OnCmdMsg CDocument::OnCmdMsg CView::OnCmdMsg CFrameWnd::OnCmdMsg CWnd::OnCommand CFrameWnd::OnCommand CWnd::OnWndMsg CWnd::WindowProc AxfCallWndProc AxfWndProc AxfWndProcBase ON_COMMAND定义如下 #define ON_COMMAND(id, memberFxn) / { WM_COMMAND, CN_COMMAND, (WORD)id, (WORD)id, AfxSig_vv, (AFX_PMSG)&memberFxn }, 其中的AfxSig_vv = 12 搜索 71 74 5C 48 48 74 53 83 E8 0A 74 46,将找到_AfxDispatchCmdMsg函数,在case 12 的地方设断点并运行,当程序需要处理OnCmdXXX的时候,控制就会跑到这里,单步进入就可以了。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 1条折叠回答
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式