首页
社区
课程
招聘
我编写的od插件OllyFlow(05/8/20 updated)
2005-8-14 23:11 52307

我编写的od插件OllyFlow(05/8/20 updated)

2005-8-14 23:11
52307
最新版本:0.71
附件:ollyflow.rar

历史版本:
0.7
0.61

OllyFlow plugin for Ollydbg

This plugin generate 3 types of graphs as IDA did
* Function Flowchart (this modulo has the some function as OllyGraph, another plugin by Joe Stewart, but is partly rewritten to improve the performance)
* Reference From Graph (Xrefs from)
* Reference To Graph (Xrefs to)

Also Global Function Call Graph is supported as a side effect.

You need the wingraph32 from IDA. Setup its location from plugin menu before using it. Enjoy.

Any bug reports or suggestion, feel free to drop me a message, henryouly.gmail@com(I accidently swapped "@" and ".")

OllyFlow ChangeLog
0.71 (2005-8-20)
* IMPL: Place all graph items under "OllyFlow" entry in popup menu

0.7 (2005-8-18)
* FUNC: Add "Module Graph", a module from procedure P is defined as
  a) All procedures in this module are called from P directly or indirectly
  b) No procedure(except P) is called from any other procedure outside this module
  c) All procedures which satisfy a) and b) are included in the module
  Also notice that API function is not treated as procedure, that means the API shown in
  the Module Graph may be called elsewhere. They are not considered to be a part of the
  current module. I show them on the graph only to make it more meanful.

0.61 (2005-8-18)
* BUGFIX: try another approach to get ini file name. It solves the configuration  problems
  of special versions for chinese users. If you didn't face with such problem, you don't need
  to upgrade to this version.

0.6 (2005-8-18)
* BUGFIX: correct the title of Function Call Graph
* FUNC: Add Call Stack Graph, the visual mode of call stack window. Instead of tracing the
  running, it looks into the stack and find possible call references. So it doesn't reach
  high accurrency in a few cases.
* IMPL: use GetPrivateProfileString and WritePrivateProfileString to operate ini files

0.5 (2005-8-16)
* BUGFIX: Xrefs To Graph, unable to find the path of wingraph32
* BUGFIX: Xrefs to Graph, the start tag is not generated correctly.
* FUNC: To display the name of user-define label instead of function address(dark green)
* IMPL: code refactory

0.4 (2005-8-15)
* BUGFIX: Fuction Flowchart, the block closed with RETN has an arrow to other blocks.
* BUGFIX: Fuction Flowchart, the JMP instruction has conditional arrows to other blocks.
* IMPL: Fully rewrite the algorithm of Fuction Flowchart to correct last two bugs.
* BUGFIX: The plugin path can't be customized. (Thanks TQN)
* BUGFIX: Crash when no EXE is opened. (Thanks mc707)

0.3 (2005-8-14)
* FUNC: Add "Xrefs to" graph and "Function Call" graph

0.2 (2005-8-13)
* FUNC: Add "Xrefs from" graph
* IMPL: use EdgeList array to store edge information, instead of a dynamic allocated string

0.1 (2005-8-13)
* initial version, originally from OllyGraph v0.1 by Joe Stewart

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

收藏
点赞7
打赏
分享
最新回复 (60)
雪    币: 83395
活跃值: (198475)
能力值: (RANK:10 )
在线值:
发帖
回帖
粉丝
linhanshi 2005-8-14 23:27
2
0
不错
雪    币: 124
活跃值: (70)
能力值: ( LV4,RANK:50 )
在线值:
发帖
回帖
粉丝
jskew 1 2005-8-14 23:29
3
0
重点介绍下
* Reference From Graph (Xrefs from)
* Reference To Graph (Xrefs to)
我都不明白什么意思,其他和OllyGraph基本一样
雪    币: 270
活跃值: (312)
能力值: ( LV9,RANK:330 )
在线值:
发帖
回帖
粉丝
henryouly 8 2005-8-15 01:41
4
0
可能我英文不行吧

就是IDA的另外两个功能,也就是OllyGraph作者所说还没做的功能,从当前函数开始查看它的子模块(子调用)以及调用到当前函数的所以父模块(祖先模块)
雪    币: 12771
活跃值: (3668)
能力值: ( LV7,RANK:100 )
在线值:
发帖
回帖
粉丝
LOCKLOSE 2 2005-8-15 04:33
5
0
不错.比较喜欢~这个不支持不行!
雪    币: 2883
活跃值: (3432)
能力值: (RANK:215 )
在线值:
发帖
回帖
粉丝
china 5 2005-8-15 08:35
6
0
雪    币: 603
活跃值: (617)
能力值: ( LV12,RANK:660 )
在线值:
发帖
回帖
粉丝
prince 16 2005-8-15 09:30
7
0
我晕,怎么也的写上中文介绍吧~
雪    币: 108
活跃值: (42)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
闪电狼 2005-8-15 09:37
8
0
最初由 henryouly 发布
可能我英文不行吧


明知不行 干吗不写中文?
雪    币: 270
活跃值: (312)
能力值: ( LV9,RANK:330 )
在线值:
发帖
回帖
粉丝
henryouly 8 2005-8-15 11:33
9
0
哈,本来发在exetools,懒得翻译回来了,我想基本上用过IDA的都明白Xrefs To和Xrefs From吧
雪    币: 270
活跃值: (312)
能力值: ( LV9,RANK:330 )
在线值:
发帖
回帖
粉丝
henryouly 8 2005-8-15 11:43
10
0
最初由 china 发布
附件:wingraph32.rar

多谢
雪    币: 270
活跃值: (312)
能力值: ( LV9,RANK:330 )
在线值:
发帖
回帖
粉丝
henryouly 8 2005-8-15 16:23
11
0
发现OllyGraph原有算法设计有漏洞,出现的两个bug在当前的架构下难以直接修复,于是把function flowchart部分重写,改用另一种更高效的算法实现。目前所有核心代码已全部重写

[停止下载,请下载楼下最新版本]

修正的bug不会描述,直接看图吧:

雪    币: 83395
活跃值: (198475)
能力值: (RANK:10 )
在线值:
发帖
回帖
粉丝
linhanshi 2005-8-15 16:36
12
0
辛苦了。
雪    币: 214
活跃值: (15)
能力值: ( LV4,RANK:50 )
在线值:
发帖
回帖
粉丝
ljy3282393 1 2005-8-15 18:47
13
0
最初由 prince 发布
我晕,怎么也的写上中文介绍吧~
雪    币: 124
活跃值: (70)
能力值: ( LV4,RANK:50 )
在线值:
发帖
回帖
粉丝
jskew 1 2005-8-15 19:09
14
0
最初由 henryouly 发布
可能我英文不行吧

就是IDA的另外两个功能,也就是OllyGraph作者所说还没做的功能,从当前函数开始查看它的子模块(子调用)以及调用到当前函数的所以父模块(祖先模块)


如果我用过ida的,应该也知道这个功能,不是你的英文不好

不过很多时候都是没那条线(机器码前面的),就不能使用这个功能了

难道这个插件只能做到这样了吗?

004211AD  \.  C3            RETN
004211AE  /$  56            PUSH ESI
004211AF  |.  8B7424 08     MOV ESI,[ESP+8]
004211B3  |.  56            PUSH ESI
004211B4  |.  E8 23000000   CALL 004211DC                            ;  004211DC
004211B9  |.  85C0          TEST EAX,EAX
004211BB  |.  59            POP ECX
004211BC  |.  74 05         JE SHORT 004211C3                        ;  004211C3
004211BE  |.  83C8 FF       OR EAX,FFFFFFFF
004211C1  |.  5E            POP ESI
004211C2  |.  C3            RETN
004211C3  |>  F646 0D 40    TEST BYTE PTR [ESI+D],40
004211C7  |.  74 0F         JE SHORT 004211D8                        ;  004211D8
004211C9  |.  FF76 10       PUSH DWORD PTR [ESI+10]
004211CC  |.  E8 D74D0000   CALL 00425FA8                            ;  00425FA8
004211D1  |.  F7D8          NEG EAX
004211D3  |.  59            POP ECX
004211D4  |.  5E            POP ESI
004211D5  |.  1BC0          SBB EAX,EAX
004211D7  |.  C3            RETN
004211D8  |>  33C0          XOR EAX,EAX
004211DA  |.  5E            POP ESI
004211DB  \.  C3            RETN
004211DC  /$  53            PUSH EBX
雪    币: 270
活跃值: (312)
能力值: ( LV9,RANK:330 )
在线值:
发帖
回帖
粉丝
henryouly 8 2005-8-15 22:21
15
0
目前插件是直接用OD的代码分析结果,增加自己的分析功能也不是不可行,但是可能会造成结果不准确以及分析时间较长。(OD也判断不出的proc自然有它特殊的地方)

我会考虑在后继版本中增加deep anaylse选项,用自己的分析方法实现。
雪    币: 65
活跃值: (66)
能力值: ( LV7,RANK:100 )
在线值:
发帖
回帖
粉丝
goodcode 2 2005-8-16 00:02
16
0
我的od是汉化版 为什么路径设置不了呢
雪    币: 65
活跃值: (66)
能力值: ( LV7,RANK:100 )
在线值:
发帖
回帖
粉丝
goodcode 2 2005-8-16 00:21
17
0
谢谢 非常好用
不过不是知道这是不是bug
菜单generate xrefs to graph 路径设置对它无效
雪    币: 270
活跃值: (312)
能力值: ( LV9,RANK:330 )
在线值:
发帖
回帖
粉丝
henryouly 8 2005-8-16 11:28
18
0
0.5 (2005-8-16)
* BUGFIX: Xrefs To Graph, unable to find the path of wingraph32
* BUGFIX: Xrefs to Graph, the start tag is not generated correctly.
* FUNC: To display the name of user-define label instead of function address(dark green)
* IMPL: code refactory

雪    币: 203
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
Viruss 2005-8-16 14:15
19
0
报告楼主~一用你的OD插件,OD就异常了
雪    币: 12771
活跃值: (3668)
能力值: ( LV7,RANK:100 )
在线值:
发帖
回帖
粉丝
LOCKLOSE 2 2005-8-16 15:40
20
0
多谢~好东西,希望继续开发~
雪    币: 270
活跃值: (312)
能力值: ( LV9,RANK:330 )
在线值:
发帖
回帖
粉丝
henryouly 8 2005-8-16 18:24
21
0
最初由 Viruss 发布
报告楼主~一用你的OD插件,OD就异常了

不是吧
0.5版本吗?会不会因为插件太多冲突了?
雪    币: 270
活跃值: (312)
能力值: ( LV9,RANK:330 )
在线值:
发帖
回帖
粉丝
henryouly 8 2005-8-16 18:49
22
0
功能已经做好了,不过最近发布速度好像快了点,先稳定一下其他bug再一起发布。
雪    币: 12771
活跃值: (3668)
能力值: ( LV7,RANK:100 )
在线值:
发帖
回帖
粉丝
LOCKLOSE 2 2005-8-16 21:31
23
0
何时发布?我可等不急了~
雪    币: 221
活跃值: (70)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
getiteasy 2005-8-16 22:17
24
0
好东西啊!
雪    币: 207
活跃值: (40)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
yatou 2005-8-17 22:05
25
0
这个一定要顶!
游客
登录 | 注册 方可回帖
返回