您的位置:首页 > 其它

Fix a Bug For OllyGraph/OllyTraceGraph

2016-04-27 09:38 881 查看
我不知道是否有人跟我有同样的问题,OD的OllyGraph/OllyTraceGraph流程图插件不能使用。我参考此网站(https://bitbucket.org/mrexodia/ollytracegraph)提供的插件源码,修复了这个问题。用OD分别加载OD和IDA,结合插件源码分析,导致错误的原因是缺少命令行参数。作者发布的插件应该是能用的,不知道为什么会变成这样。修复方法:让插件启动函数ShellExecuteW上方的那个CALL,CALL向代码缝隙处(如06442084),添加下面的补丁代码,运行完后再跳往原来要去的地方,

06442084   $  60                    pushad
06442085   .  68 00010000           push 0x100
0644208A   .  8D9D A0F9FFFF         lea ebx,dword ptr ss:[ebp-0x660]
06442090   .  53                    push ebx
06442091   .  E8 96FFFFFF           call <jmp.&ollydbg.StrlenW>                    ;  获取原字串长度
06442096   .  83C4 08               add esp,0x8
06442099   .  8D3443                lea esi,dword ptr ds:[ebx+eax*2]
0644209C   .  8D7E 2E               lea edi,dword ptr ds:[esi+0x2E]
0644209F   .  C707 22000000         mov dword ptr ds:[edi],0x22                    ;  尾部加引号
064420A5   .  83EF 02               sub edi,0x2
064420A8   .  83EE 02               sub esi,0x2
064420AB   >  66:A5                 movs word ptr es:[edi],word ptr ds:[esi]       ;  倒着复制字串
064420AD   .  83EF 04               sub edi,0x4
064420B0   .  83EE 04               sub esi,0x4
064420B3   .  48                    dec eax
064420B4   .^ 75 F5                 jnz short OllyGrap.064420AB                    ;  上跳 原字串后移
064420B6   .  3BDF                  cmp ebx,edi
064420B8   .  73 40                 jnb short OllyGrap.064420FA
064420BA   .  E8 30000000           call OllyGrap.064420EF                         ;  下面的命令行参数入栈
064420BF   .  2D00 7200 6500 6D00 6>unicode "-remove "
064420CF   .  2D00 7400 6900 6D00 6>unicode "-timelim"
064420DF   .  6900 7400 2000 3100 3>unicode "it 10 """,0
064420EF   $  5E                    pop esi                                        ;  ollydbg.0040A1B0
064420F0   .  83C6 2C               add esi,0x2C
064420F3   .  B8 17000000           mov eax,0x17
064420F8   .^ EB B1                 jmp short OllyGrap.064420AB                    ;  上跳 添加命令行参数
064420FA   >  61                    popad
064420FB   .^ E9 30F1FFFF           jmp OllyGrap.06441230
即使在OD中函数已经被识别,插件图片中的函数指向仍然错误。毕竟不是原生支持。



相对于OllyGraph,OllyTraceGraph做了些美化。



相对于IDA,OD中流程图参考还是有优势的,特别是在程序加壳的时候。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: