首页
社区
课程
招聘
[讨论]OD插件需求讨论
发表于: 2013-4-28 14:30 9093

[讨论]OD插件需求讨论

2013-4-28 14:30
9093
OD有个比较handy的功能就是当进入某个API调用时,会显示


但很多时候通过逆向,我们知道一个函数的参数有哪些,并且关心那个参数的变化时,只能眼睛紧盯着栈堆,还要计算偏移,稍不留神就看走位置

于此,我想写一个插件,能够自定义函数参数,指定堆栈某个地址为参数起始,并把参数文本显示在栈堆窗口里。
插件的实现方法,我已经有点眉目了,不知道大家有没有兴趣?

另外我还想写一个插件就是针对c++ std::string或者MFC/ATL的CString,或者VB的字符串显示插件。很多时候我们知道一个call调用是产生一个字符串类,但是当call返回时,一般是eax保存了字符类的实例,但实际那段字符串的位置并不是那么好找,常常需要跟进eax特定的偏移去找。
但是怎么个显示法暂时还没有定论。我想的是单步执行后,扫描各个寄存器,在汇编下面那个小窗口即时显示字符串。

最后还有个watcher插件,以前用过一个watch,感觉并不好用,想写个支持自定义数据结构,甚至还支持IDA符号,然后对指定的地址以结构展示出来。就像VC调试那样。

好了,以上是我最近闲来无事,想搞点东西的想法。如果你有其他OD插件需求,请提出来。

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

上传的附件:
收藏
免费 0
支持
分享
最新回复 (10)
雪    币: 371
活跃值: (72)
能力值: ( LV5,RANK:60 )
在线值:
发帖
回帖
粉丝
2
od 2.0 h 用着挺好,

硬说需求的话,能让od打开驱动,进行静态分析么?.

可以这样做,一般的驱动都会导入 ntoskrnl.exe  和hal.dll

我们做一个无任何功能的dll   名字为 ntoskrnl.exe和hal.dll  ,且导出那些函数(函数代码置空),

那么,驱动就能用LoadLibraryEx函数加载,了,虽然不能运行,但是能静态分析.

ps(其实这个功能,Immunity Debugger 就有,但是感觉他的有bug ...)

Immunity Debugger 的打开文件对话框...
上传的附件:
2013-4-28 16:24
0
雪    币: 350
活跃值: (13)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
3
其实od本来就有第一个功能, 具体看ollydbg的百科

2013-4-28 16:37
0
雪    币: 371
活跃值: (72)
能力值: ( LV5,RANK:60 )
在线值:
发帖
回帖
粉丝
4
能把ntoskrnl.exe也分析就牛x了,这样,A代码啊,搜索代码啊就很方便了~~~
2013-4-28 16:37
0
雪    币: 3974
活跃值: (2307)
能力值: ( LV6,RANK:93 )
在线值:
发帖
回帖
粉丝
5
[QUOTE=Diabloking;1171632]其实od本来就有第一个功能, 具体看ollydbg的百科

[/QUOTE]

嗯,这个我知道,只是可以自定义吗?貌似是lib库那里设置,如mfc lib等。
我原先只是设想在堆栈里显示参数信息,忘了汇编窗口会也显示,而且貌似更高级,因为可以OD会自己分析push等指令,并在push指令处显示对应参数名。不过感谢提醒啊,能增强OD本身的这个功能也是不错的。

2013年5月2日:
呵呵,没仔细看OD的百度百科(那个其实是来自翻译的OD完全教程,也就是OD的帮助文档吧),有个common.arg就是自定义函数和参数的,我是跟了下OD看到"common.arg"再去搜索才知道的。
虽然有点麻烦,暂时不管这个功能了,先写个显示label的插件
2013-4-29 17:37
0
雪    币: 3974
活跃值: (2307)
能力值: ( LV6,RANK:93 )
在线值:
发帖
回帖
粉丝
6
这个貌似不错,一般都是IDA分析驱动更方便,既然IM有这个功能,不妨借鉴来看看,当然能不能成功还是未知数,毕竟人家有源码。
2013-4-29 17:41
0
雪    币: 3974
活跃值: (2307)
能力值: ( LV6,RANK:93 )
在线值:
发帖
回帖
粉丝
7
该功能已经做进HolyShit!
http://bbs.pediy.com/showthread.php?t=170858
2013-5-21 12:19
0
雪    币: 3313
活跃值: (3289)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
8
指定地址赋予自定义的结构形态再加各种颜色高亮。。也想过写这么个东西。只是不怎么熟悉那些插件函数。帮助有点简单一些函数的使用是上下关联的缺少个使用的好例子.坐等LZ作品
2013-6-16 23:05
0
雪    币: 3974
活跃值: (2307)
能力值: ( LV6,RANK:93 )
在线值:
发帖
回帖
粉丝
9
暂时没有计划,这里抱怨一句,用的人少是不会更新的。
另外,OD SDK估计是没有这些功能的,需要自己分析OD如何显示,其实很简单,OD每个窗口都是一个table,每行显示会调用固定的drawfunc函数,该函数的参数里有显示的内容以及高亮的设置,我们只需要hook该drawfunc即可。
2013-6-17 11:05
0
雪    币: 3313
活跃值: (3289)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
10
呵呵,写这些东西肯定是因为已有的不能满足需求。但也不都会是人人都需要的。个人认为写东西有时候就是兴趣爱好,自己开心就好,何必人多人少。另外除了SYS外,比如从内存DUMP的一段代码块。要能让OD直接加载也挺方便的。IDA实在是有点慢.
2013-6-18 13:48
0
雪    币: 3974
活跃值: (2307)
能力值: ( LV6,RANK:93 )
在线值:
发帖
回帖
粉丝
11
这个功能OD本身有个bakeup>load from file,没怎么用过,不知道可行否,好像会覆盖数据。

不过还有种方法就是分配一段内容,将dump内容copy进去,然后在OD的反汇编窗口定位到那段内存。不过这样分析的话,估计能看到的信息很少,因为没有IAT和重定位信息。
2013-6-24 17:14
0
游客
登录 | 注册 方可回帖
返回