首页
社区
课程
招聘
[求助]请教IDA debugger 插件的编写问题
发表于: 2011-5-4 17:18 4425

[求助]请教IDA debugger 插件的编写问题

2011-5-4 17:18
4425
正在学习如何使用IDA编写插件,想在程序被调试的时候做一些信息记录工作,于是使用dbg.hpp中提供的api进行相关的操作。

dbg.hpp中的一些api提供了两种版本,一种是同步模式,还有一种是异步模式(request_xxx),同步模式的调用会直接执行并立即返回。而异步模式的是把request请求放入队列在调用run_requests()后由IDA来执行。调试事件由最初的hook_to_notification_point注册的回调处理。

我想要实现的效果是类似Vm dispatcher处下断,单步一下就会到handler处,我要做的就是记录handler的执行流程。

大致思路代码如下:

在dispatcher处断下后执行如下代码
request_step_over();
run_requests();


回调处理
case dbg_step_over:
{
       get_reg_val("eip",&stRegVal);//获取eip寄存器的值,发现还未真正执行单步操作
       //查看eip值,如果单步执行了
       {
           //记录相关信息
        }
       else
        {
            request_continue_process();
            run_requests();
         }
}


现在问题是只能记录一个handler,然后IDA调试器就“挂”掉了,就是按F7,F8,F4等这类按键都没效果了~~

自己也刚接触IDA插件,很多东西了解的很肤浅,还请有熟悉的朋友指教一二:)
如果哪位朋友写过IDA debugger相关的插件,也希望可以学习学习~

[培训]内核驱动高级班,冲击BAT一流互联网大厂工作,每周日13:00-18:00直播授课

收藏
免费 0
支持
分享
最新回复 (3)
雪    币: 1137
活跃值: (10)
能力值: ( LV7,RANK:100 )
在线值:
发帖
回帖
粉丝
2
为什么总是要在自己发求助贴后,问题就不知不觉的解决呢?

又得送kx了

ps:解决方法就是加一句 clear_requests_queue();

不过还是希望有熟悉ida debugger调试器插件编写的朋友们聊聊经验之谈

排队送kx(5*10),对象仅限还在赚kx的临时用户吧
2011-5-4 17:57
0
雪    币: 78
活跃值: (25)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
3
就是个DLL
可以调用windows的API来实现框架和界面,还可实现windows的消息循环机制
可以只在必要的时候调用IDA SDK的接口,甚至可以hook别的第三方软件实现杀毒,
自动脱壳处理等
2011-5-5 04:49
0
雪    币: 1137
活跃值: (10)
能力值: ( LV7,RANK:100 )
在线值:
发帖
回帖
粉丝
4
虽然只是短短几句话,但足以见得"举剑问天"兄对IDA是相当的熟悉,呵呵
不过其中"可以hook别的第三方软件实现杀毒"这个不明白,首先不明白为何要这么做,而大致实现思路又是怎样?有空还请"举剑问天"兄多多指教

ps:kx都送了吧
2011-5-5 09:22
0
游客
登录 | 注册 方可回帖
返回
//