首页
社区
课程
招聘
[原创]写插件让OD像IDA那样代码高亮(开源)
2011-2-25 19:25 25177

[原创]写插件让OD像IDA那样代码高亮(开源)

2011-2-25 19:25
25177
想必各位都有这样的经历,在调试某些不太方便用IDA静态分析的代码时,看多了OD的各种ebp+和esp+,
会无比怀念IDA的高亮和修改符号名的功能,找了一下,好像目前还没有好用的OD高亮插件
那么,我们自己动手写一个吧

原理很简单,Hook OD的打印函数,Hook TextOut用来做屏幕取词,然后修改当前鼠标点击字符的颜色就完了
附件中的代码没有做修改符号名的功能,大家有兴趣可以自己改一改~

[培训]《安卓高级研修班(网课)》月薪三万计划,掌握调试、分析还原ollvm、vmp的方法,定制art虚拟机自动化脱壳的方法

上传的附件:
收藏
点赞6
打赏
分享
最新回复 (35)
雪    币: 695
活跃值: (25)
能力值: ( LV9,RANK:170 )
在线值:
发帖
回帖
粉丝
patapon 4 2011-2-25 19:47
2
0
沙发,感谢lz发布好东西
雪    币: 357
活跃值: (2593)
能力值: ( LV3,RANK:25 )
在线值:
发帖
回帖
粉丝
KooJiSung 2011-2-25 20:42
3
0
tmpHookInfo.dwApiOffset = 0x77EF808B;

你的硬编码...
雪    币: 1644
活跃值: (53)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
yodamaster 2011-2-25 21:55
4
0
多谢分享。。。
雪    币: 197
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
zanjero 2011-2-25 22:01
5
0
很好 我收藏了
雪    币: 3
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
bushimajia 2011-2-25 22:01
6
0
好东西,感谢LZ
雪    币: 7823
活跃值: (1677)
能力值: ( LV4,RANK:50 )
在线值:
发帖
回帖
粉丝
jimxy 1 2011-2-26 19:03
7
0
不错,顶一下!
雪    币: 33
活跃值: (11)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
PEBOSS 2011-2-26 21:05
8
0
请问一下,这个怎么用的?

我点了 start ,看着汇编出来的代码也没有什么改变,

然后又好好的看了一下源代码,还是没有能解决

希望回复一下
雪    币: 317
活跃值: (13)
能力值: ( LV4,RANK:50 )
在线值:
发帖
回帖
粉丝
RAsmDbg 1 2011-2-26 23:33
9
0
Find in File -> 搜索0x77EF808B
这是XP sp3的TexOutW+5地址处,你要修改成自己系统上的正确地址
然后在CAnalyWord::HookExtTextOutW函数内将
                mov     edi, edi
                push    ebp
                mov     ebp, esp
这三句代码改成你自己系统上的TextOutW入口代码

在写插件的时候因为只是给自己和同事用,为了方便直接硬编了,没有考虑兼容性
雪    币: 220
活跃值: (15)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
广海混沌 2011-2-27 00:23
10
0
呵呵 不错 不错,不过还得建议下楼主做个修改版,搞一下兼容性。
雪    币: 33
活跃值: (11)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
PEBOSS 2011-2-27 01:46
11
0
多谢您的回复,我的电脑也是 SP3 的 77EF808B                  这地址应该没问题

77EF8086 GDI32.ExtTextOutW      $  8BFF                mov     edi, edi
77EF8088                        .  55                  push    ebp
77EF8089                        .  8BEC                mov     ebp, esp
77EF808B                        .  83EC 18             sub     esp, 18
77EF808E                        .  56                  push    esi

但是就是不成功, 偶尔有一次成功了,看到标识的颜色 了
再是,再重启一下OD,就再也不能成功

我又将代码编译了编译,加了些调试,可惜还是还能成功,
搞了好几个小时,原因始终找不着

还有什么地方可能导致这样的状况呢?
雪    币: 317
活跃值: (13)
能力值: ( LV4,RANK:50 )
在线值:
发帖
回帖
粉丝
RAsmDbg 1 2011-2-27 02:36
12
0
将其他插件移除,不要使用修改版OD
再测试一下看看
CHighLight::DefhookDraw这个函数是Hook OD打印的回调函数,你可以调一下看看
雪    币: 8644
活跃值: (2030)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
airbar 2011-2-28 12:42
13
0
不错,谢谢!
雪    币: 174
活跃值: (26)
能力值: ( LV4,RANK:50 )
在线值:
发帖
回帖
粉丝
龙组 1 2011-2-28 13:12
14
0
这样做也太麻烦了
雪    币: 314
活跃值: (271)
能力值: ( LV4,RANK:50 )
在线值:
发帖
回帖
粉丝
rerefrancd 1 2011-2-28 15:41
15
0
加载OD直接挂了
雪    币: 134
活跃值: (105)
能力值: ( LV9,RANK:140 )
在线值:
发帖
回帖
粉丝
夜凉如水 3 2011-2-28 15:56
16
0
呵呵 获取下函数的基值在hook吗
雪    币: 563
活跃值: (95)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
lixupeng 2011-2-28 18:52
17
0
试试!!
雪    币: 371
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
hyp 2011-3-1 14:09
18
0
Find in File -> 搜索0x77EF808B
代码改成tmpHookInfo.dwApiOffset = (DWORD)tmpHookInfo.lpWinApiProc+5;
编译,win7下测试成功~
雪    币: 1379
活跃值: (703)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
hmilywen 2011-3-1 16:28
19
0
这个插件非常好,希望可以更新下硬编码问题,收藏!
雪    币: 1379
活跃值: (703)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
hmilywen 2011-3-1 16:44
20
0
call  push jcc 这样后面的地址不能识别?
雪    币: 200
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
魏彬 2011-3-1 19:07
21
0
不错,谢谢!
雪    币: 187
活跃值: (335)
能力值: ( LV9,RANK:450 )
在线值:
发帖
回帖
粉丝
RegKiller 10 2011-3-1 20:34
22
0
期待兼容版...
雪    币: 82
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
星际 2011-3-2 08:01
23
0
好东西。下来学习且应用。
雪    币: 6525
活跃值: (2497)
能力值: ( LV3,RANK:30 )
在线值:
发帖
回帖
粉丝
Kisesy 2011-3-15 18:07
24
0
不错的插件 支持
雪    币: 1644
活跃值: (53)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
yodamaster 2011-4-13 02:40
25
0
直接使用楼主提供的dll, od一起动就报错退出。

后将analyWord.cpp中81行改为
tmpHookInfo.dwApiOffset = (DWORD)((unsigned char*)tmpHookInfo.lpWinApiProc + 5)

编译,win xp下测试成功~
为方便其他人使用,附上修改后的代码和编译出来的dll。
上传的附件:
游客
登录 | 注册 方可回帖
返回