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

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

2011-2-25 19:25
25964

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

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


[招生]科锐逆向工程师培训(2024年11月15日实地,远程教学同时开班, 第51期)

上传的附件:
收藏
免费 7
支持
分享
最新回复 (35)
雪    币: 695
活跃值: (25)
能力值: ( LV9,RANK:170 )
在线值:
发帖
回帖
粉丝
2
沙发,感谢lz发布好东西
2011-2-25 19:47
0
雪    币: 357
活跃值: (3403)
能力值: ( LV3,RANK:25 )
在线值:
发帖
回帖
粉丝
3
tmpHookInfo.dwApiOffset = 0x77EF808B;

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

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

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

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

在写插件的时候因为只是给自己和同事用,为了方便直接硬编了,没有考虑兼容性
2011-2-26 23:33
0
雪    币: 220
活跃值: (15)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
10
呵呵 不错 不错,不过还得建议下楼主做个修改版,搞一下兼容性。
2011-2-27 00:23
0
雪    币: 33
活跃值: (11)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
11
多谢您的回复,我的电脑也是 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,就再也不能成功

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

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

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

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