利用DebuggerX定位关键CALL

文章介绍如何使用自定义调试器DebuggerX辅助定位关键CALL,以Windows计算器程序为例,通过获取函数调用列表并利用通知程序进行定位,最终找到关于界面的关键CALL实现方式。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

最新写了一个调试器正式的名字叫做DebuggerX,界面上山寨了一部分SOFTICE的界面:)利用自己写的调试器可以辅助定位一些软件的关键CALL,这里我们拿CALC.exe来举一个例子,这个也就是Windows自带的计算器程序。我想知道这个计算器的关于的关键CALL在那个函数当中,从而了解到这个关于界面是怎么出来的。

OK,假设我不知道这个关于界面是通过什么样的函数或者调用弹出来的,这个时候我就可以借助DebuggerX的辅助定位功能来进行定位了,首先利用OD获取一下所有函数调用列表,这个地方只需要收集一下常用的就行了,例如:

以push ebp \ mov ebp, esp 开头的函数体。收集好后存到一个文本文件中去,格式就按照OD默认的格式:

然后通过DebuggerX载入这个1.txt,如下图:

接下来,通过一个通知程序开始我们关键定位的过程。

很容易地手工过滤掉UI循环调用函数两次后,就直接定位到了关键CALL处:

 

此处就是找到的关键CALL,这个时候我们可以利用OD来验证一下,直接用OD定位到地址:100565B处。

很容易验证出来,次地址为关键CALL,且找到了计算器关于按钮的实现是通过调用ShellAboutW实现的。利用这种方法跟途径可以在不知道目标程序语言框架的情况下做到80%左右的关键代码定位。这个效率还是挺可观的,当然最彻底的方法是研究不同语言的框架结构,但是这个方法在速度及效率上弥补了研究框架的不足。

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值