首页
社区
课程
招聘
[原创]ret-sync插件:windbg/ollydbg+ida逆向调试神器
发表于: 2019-7-15 23:04 36724

[原创]ret-sync插件:windbg/ollydbg+ida逆向调试神器

2019-7-15 23:04
36724

1.首先在IDA中加载待调试的二进制,保存(Ctrl+W)生成idb文件。本文用Crackmes.cf中Level1的#ParadoxX做示例,加载AC1D.Materie.exe并保存,最终生成AC1D.Materie.idb,如图:

ida有不少主流调试器的扩展插件,如windbg/gdb等,可以在静态分析的基础上动态调试二进制文件。可是众多调试器扩展中没有兼顾ollydbg,难免觉得是一项缺憾。

    最近在github上发现一个插件:ret-sync,不仅弥补了ida对ollydbg支持的空白,还额外支持x64dbg/lldb等调试器:

1.虽然作者建议使用vs2017生成插件,但由于vs2017的bug,建议换用其他低版本编译器。笔者发现vs2013亦能生成插件。

2.编译生成的windbg扩展,需要区分x86/x64版本。x86的dll放到C:\Program Files (x86)\Windows Kits\10\Debuggers\x86\winext目录下;相应的,x64的dll放到C:\Program Files (x86)\Windows Kits\10\Debuggers\x64\winext目录下。编译生成的ollydbg1扩展,放到ollydbg1菜单栏Options-Appearance-"UDD path"所指定的路径:

1.虽然作者建议使用vs2017生成插件,但由于vs2017的bug,建议换用其他低版本编译器。笔者发现vs2013亦能生成插件。

2.编译生成的windbg扩展,需要区分x86/x64版本。x86的dll放到C:\Program Files (x86)\Windows Kits\10\Debuggers\x86\winext目录下;相应的,x64的dll放到C:\Program Files (x86)\Windows Kits\10\Debuggers\x64\winext目录下。编译生成的ollydbg1扩展,放到ollydbg1菜单栏Options-Appearance-"UDD path"所指定的路径:

3.笔者使用的是IDA Pro 7.0 。由于IDA7.0内置了python2.7且支持x64位系统,因此,需要额外安装python2.7 x86-64版本,否则遇到诸如<总结IDA遇到的python问题>一文中提到的各种奇葩问题。

4.将ext_ida目录下的所有文件拷贝到IDA的plugins目录中:

3.笔者使用的是IDA Pro 7.0 。由于IDA7.0内置了python2.7且支持x64位系统,因此,需要额外安装python2.7 x86-64版本,否则遇到诸如<总结IDA遇到的python问题>一文中提到的各种奇葩问题。

4.将ext_ida目录下的所有文件拷贝到IDA的plugins目录中:

使用插件

1.首先在IDA中加载待调试的二进制,保存(Ctrl+W)生成idb文件。本文用Crackmes.cf中Level1的#ParadoxX做示例,加载AC1D.Materie.exe并保存,最终生成AC1D.Materie.idb,如图:


2.IDA中启动rer-sync插件,Edit-Plugins-"ret sync":

此时会弹出ret sync插件的窗口,如果前面的环境搭建正确,IDA的Output窗口会输出:


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

收藏
免费 8
支持
分享
最新回复 (64)
雪    币: 235
活跃值: (127)
能力值: ( LV3,RANK:30 )
在线值:
发帖
回帖
粉丝
2
感谢分享!
最后于 2019-7-15 23:15 被Sampgirl编辑 ,原因:
2019-7-15 23:15
0
雪    币: 59
活跃值: (1501)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
3
这个不错,赞一个!
2019-7-15 23:30
0
雪    币: 1266
活跃值: (1307)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
4
有没有编译好的方便我等伸手党
2019-7-15 23:32
0
雪    币: 6124
活跃值: (4656)
能力值: ( LV6,RANK:80 )
在线值:
发帖
回帖
粉丝
5
这个插件的成因其实是因为,IDA自带的动态调试太慢了。
2019-7-16 02:25
0
雪    币: 9142
活跃值: (1630)
能力值: ( LV2,RANK:15 )
在线值:
发帖
回帖
粉丝
6
必须支持一下的插件,感谢分享
2019-7-16 08:09
0
雪    币: 2075
活跃值: (2536)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
7
有点复杂
2019-7-16 08:40
0
雪    币: 3148
活跃值: (244)
能力值: ( LV4,RANK:50 )
在线值:
发帖
回帖
粉丝
8
ida导出个map文件让od加载一下,那个函数名什么的就都和ida里一样了
2019-7-16 09:38
0
雪    币: 1266
活跃值: (1307)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
9
只在win7 x64 + vs2012环境下编了一个x32dbg的版本,我自己能用
上传的附件:
2019-7-16 10:37
0
雪    币: 1790
活跃值: (3786)
能力值: ( LV6,RANK:90 )
在线值:
发帖
回帖
粉丝
10
我之前看好像不支持IDA7.0,现在可以支持了吗?
2019-7-16 11:33
0
雪    币: 2325
活跃值: (4898)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
11
OD不能附加?
2019-7-16 12:35
0
雪    币: 1451
活跃值: (3891)
能力值: ( LV3,RANK:30 )
在线值:
发帖
回帖
粉丝
12
od1/2编译版本,vs2013版本,其他没编译成功
最后于 2019-7-17 00:26 被方向感编辑 ,原因:
上传的附件:
2019-7-17 00:25
0
雪    币: 265
活跃值: (74)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
13
这个插件可真是方便啊,同时开着调试更清晰了
2019-7-17 03:42
0
雪    币: 1451
活跃值: (3891)
能力值: ( LV3,RANK:30 )
在线值:
发帖
回帖
粉丝
14
谁能提供一个x64dbg版的编译好的插件
2019-7-18 23:52
0
雪    币: 206
活跃值: (303)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
15
这个插件确实好用.学习了.感谢大神分享!
2019-7-20 01:04
0
雪    币: 4939
活跃值: (2360)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
16
mark
2019-7-20 08:25
0
雪    币: 1235
活跃值: (1335)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
17
win10+vs2017  x64dbg  ret-sync  32位 64位 

上传的附件:
2019-7-20 16:42
1
雪    币: 5291
活跃值: (4768)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
18
labeless 比这个好用吧?
2019-7-20 23:33
0
雪    币: 802
活跃值: (4433)
能力值: ( LV12,RANK:260 )
在线值:
发帖
回帖
粉丝
19
wx_时光_477781 labeless 比这个好用吧?
我试试
2019-7-25 20:27
0
雪    币: 802
活跃值: (4433)
能力值: ( LV12,RANK:260 )
在线值:
发帖
回帖
粉丝
20
拍拖 我之前看好像不支持IDA7.0,现在可以支持了吗?
可以啊 
6.x要自己装python模块
2019-7-25 20:27
0
雪    币: 1564
活跃值: (3572)
能力值: ( LV13,RANK:420 )
在线值:
发帖
回帖
粉丝
21
我用OD和x64dbg测试,ida里面好像就只有个同步到当前行的功能.
2019-7-25 23:17
0
雪    币: 1451
活跃值: (3891)
能力值: ( LV3,RANK:30 )
在线值:
发帖
回帖
粉丝
22
在线用vs2017编译好的所有版本下载连接为:
https://dev.azure.com/bootlegdev/ret-sync-release/_build
2019-7-26 23:01
1
雪    币: 16418
活跃值: (1665)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
23
来晚了,确实不错,明天白天做个测试录像。
2019-8-15 22:54
0
雪    币: 16418
活跃值: (1665)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
24
[sync] form create

Note: importing 'sip' module into <module '__main__' (built-in)>

Note: importing 'QtWidgets' module into <module '__main__' (built-in)>

[sync] default idb name: CRACKME.EXE

[*] sync enabled

[*] init_broker

[*] cmdline: "C:\Python27\python.exe" -u "C:\Program Files\IDA 7.2\plugins\retsync\broker.py" --idb "CRACKME.EXE"

[sync] name CRACKME.EXE

[sync] module base 0x400000

[sync] hexrays not available

[*] broker new state: Starting

[*] broker new state: Running

[*] broker started

Shortcut F2 is used for two actions:

@IDC:py_hotkeycb_0000021F2B091480

BreakpointToggle

Shortcut for "BreakpointToggle" will be disabled.

Shortcut F2 is used for two actions:

@IDC:py_hotkeycb_0000021F2B091480

hexview:EditOrApplyChanges

Shortcut for "hexview:EditOrApplyChanges" will be disabled.

Shortcut Ctrl+F2 is used for two actions:

@IDC:py_hotkeycb_0000021F2B5B1B88

ProcessExit

Shortcut for "ProcessExit" will be disabled.

Shortcut Ctrl+F1 is used for two actions:

@IDC:py_hotkeycb_0000021F2B5B1C18

ExternalHelp

Shortcut for "ExternalHelp" will be disabled.

Shortcut Alt+F2 is used for two actions:

@IDC:py_hotkeycb_0000021F2B5B1C60

ManualInstruction

Shortcut for "ManualInstruction" will be disabled.

Shortcut F11 is used for two actions:

@IDC:py_hotkeycb_0000021F2B5B1D38

FullScreen

Shortcut for "FullScreen" will be disabled.

Shortcut Ctrl+F1 is used for two actions:

@IDC:py_hotkeycb_0000021F2B5B1D80

@IDC:py_hotkeycb_0000021F2B5B1C18

"@IDC:py_hotkeycb_0000021F2B5B1C18" will be deleted.

[*] << broker << dispatcher not found, trying to run it

[*] << broker << dispatcher now runs with pid: 1444

[*] << broker << connected to dispatcher

[*] << broker << listening on port 64883

[sync] restarting broker

[*] << broker << received kill notice

[*] broker new state: Not running

[*] broker finished

[*] sync disabled


[*] sync enabled

[*] init_broker

[*] cmdline: "C:\Python27\python.exe" -u "C:\Program Files\IDA 7.2\plugins\retsync\broker.py" --idb "CRACKME.EXE"

[sync] name CRACKME.EXE

[sync] module base 0x400000

[sync] hexrays not available

[*] broker new state: Starting

[*] broker new state: Running

[*] broker started

Shortcut Ctrl+F1 is used for two actions:

@IDC:py_hotkeycb_0000021F2B5C3288

@IDC:py_hotkeycb_0000021F2B5C3120

"@IDC:py_hotkeycb_0000021F2B5C3120" will be deleted.

[*] << broker << dispatcher not found, trying to run it

[*] << broker << dispatcher now runs with pid: 5140

[*] << broker << connected to dispatcher

[*] << broker << listening on port 64888

Command "JumpAsk" failed

Command "JumpAsk" failed

Command "JumpAsk" failed

[*] << broker << dispatcher connection error, quitting

[*] broker new state: Not running

[*] broker finished

[sync] idb is disabled

为什么 这个信息呢? .idb文件放哪里? 是给OD用的吗?

最后于 2019-8-16 10:14 被killbr编辑 ,原因:
2019-8-16 06:54
0
雪    币: 16418
活跃值: (1665)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
25
是这个吧 https://github.com/bootleg/ret-sync
2019-8-16 06:57
0
游客
登录 | 注册 方可回帖
返回
//