首页
社区
课程
招聘
[旧帖] 有没有跟踪跳转的工具阿 0.00雪花
发表于: 2011-1-19 09:31 8543

[旧帖] 有没有跟踪跳转的工具阿 0.00雪花

2011-1-19 09:31
8543
请问,有没有谁知道,有没有自动跟踪跳转的工具阿? 比如运行一个软件,记录下所有有jnz/jb/je等跳转的地址,并记录是否发生了跳转. 要是有就好了. 本来想自己编一个,考虑到跳转太多,不知道断点设多了行不行?

[注意]传递专业知识、拓宽行业人脉——看雪讲师团队等你加入!

收藏
免费 0
支持
分享
最新回复 (17)
雪    币: 101
活跃值: (157)
能力值: ( LV4,RANK:50 )
在线值:
发帖
回帖
粉丝
2
可以写个插件以单步模式运行然后记录下是否是跳转语句并判断标志位看是否跳转吧...
要不就用RUN跟踪然后把所有跳转提取出来..不过这样麻烦点..
2011-1-19 09:38
0
雪    币: 504
活跃值: (10)
能力值: ( LV3,RANK:30 )
在线值:
发帖
回帖
粉丝
3
不實際的,一個項目可能多達上萬跳轉,你認為有需要這樣做嗎
2011-1-19 10:03
0
雪    币: 2368
活跃值: (81)
能力值: (RANK:300 )
在线值:
发帖
回帖
粉丝
4
之前有写过过这样的OD插件,当时也是这样的想法。记录可疑的跳转。但是效果不是很好,OD在run的时候根本不会记录(仅限于我),而且正如楼上说的,跳转太多,你只要有判断就有分支有分支就有跳转。记录下来就没有意义的。
2011-1-19 13:05
0
雪    币: 138
活跃值: (12)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
5
为啥没必要?
我运行2次,一次插正版狗,一次不插。这种方法一比较就能快速找到关键点。然后再详细分析。
我也关心有无此功能的OD插件。记录的多少不关键,哪怕100M的LOG又怎样?
2011-1-19 13:23
0
雪    币: 180
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
6
老实说,其实我觉得非常有必要,比如生成一个软件正常运行的跳转记录,然后等试用期过了,再生成一个跳转记录,两下比较,就可以得到关键的跳转,这对于有试用期限制或者功能限制的软件来说,无疑是致命伤.本来我是想自己做的,考虑到跳转上万条,不知道系统会不会崩溃,所以没有做.
2011-1-19 13:55
0
雪    币: 504
活跃值: (10)
能力值: ( LV3,RANK:30 )
在线值:
发帖
回帖
粉丝
7
od已經有能力記錄你上次的斷點,如果你覺得可疑,你斷點,重啟od就知道兩次有什麽不同,不要每個跳轉都去斷,這樣你調試的資源就會耗盡了
2011-1-19 14:14
0
雪    币: 49
活跃值: (17)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
8
使用W32Dasm这个工具能找到跳转的位置上面显示的有内存地址,用16进制修改器可以对程序文件进行修改改到想要的跳转位置
2011-1-19 16:47
0
雪    币: 504
活跃值: (10)
能力值: ( LV3,RANK:30 )
在线值:
发帖
回帖
粉丝
9
樓上,如果這樣的話,IDA更方便
2011-1-19 20:20
0
雪    币: 2882
活跃值: (1279)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
yjd
10
可以搜索下od
Branch Logger 插件,不过我也不怎么会用。
2011-1-19 20:47
0
雪    币: 2882
活跃值: (1279)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
yjd
11
上次有人说用run跟踪记录对比文件,但是od的run跟踪存出来的实在是不好对比。
2011-1-19 20:49
0
雪    币: 29
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
12
IDA图形视图 清晰显示跳转
2011-2-3 16:05
0
雪    币: 30
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
13
od
按下F8自动跳的吧?
2011-2-5 04:03
0
雪    币: 31
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
14
不太实际,还是好好学,好好连,工具只是一方面。
2011-2-5 09:35
0
雪    币: 1231
活跃值: (41)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
15
哦,我觉得你的需求有点像我的WindTrudging,手动分析固然精神可嘉,但是花几个小时来逆向一个小程序,多浪费时间啊!也许你会需要,下一步我就是做同一个程序的不同流程树了。
2011-2-5 10:10
0
雪    币: 1231
活跃值: (41)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
16
顺便一提,OD的RUN跟踪是有BUG的,没有办法回到程序领空,所以对DLL的跟踪是有限的,我的插件使用内存断点,解决了这个BUG。
2011-2-5 10:11
0
雪    币: 2411
活跃值: (1412)
能力值: ( LV4,RANK:50 )
在线值:
发帖
回帖
粉丝
17
Conditional Branch Logger (CBL) is a plugin which gives control and logging capabilities for conditional jumps over the full user address space of a process.

From the main OllyDbg plugin menu select Conditional Branch Logger -> Configuration.

This will open a dialog for managing Included (Logged) and Excluded address ranges, conditional branch type selection and project settings. Ranges can be entered manually or selected from one of the Conditional Branch Logger context menu options available in other OllyDbg windows.

Main CPU window (Alt+C): Add multiline selections as Included or Excluded ranges.
Executable modules (Alt+E): Add code section as an Included range. Set ranges by procedure for any module.
Memory map (Alt+M): Add any memory address region, including non-standard or memory mapped sections, as an Included range. Set ranges by procedure for any module section successfully analyzed.

The Set Ranges by Procedure option, available from the main menu or one of the context menus, will open a window from which individual functions can be added as Included or Excluded ranges for any module. The module will be automatically analyzed via the OllyDbg code analysis function if required.

Each time the main dialog is closed the CBL jump table window will be updated with the latest conditional jump breakpoint addresses. A context menu provides several options for further controlling the selected breakpoints both before and after analysis. When you are satisfied with the settings, run or single-step the target as usual. The results will be shown in the logfile and/or the CBL jump table window.
A button on the OllyDbg toolbar can be used to show the two Conditional Branch Logger custom windows if they have been hidden or closed.

A logfile can be specified from the main Configuration dialog in which all executed conditional branch instructions within the selected logging range and the result of whether the jump was taken or not are recorded.  If a logfile is not specified a default file named "conditional_branch_logger_default.log" in the OllyDbg main executable directory will be used. Such log files, from different runs of the same program, can then be compared using any good 'diffing' program to find changes in the code execution path as a result of changing inputs or conditions.

The majority of Conditional Branch Logger settings, including active breakpoints, are saved in the OllyDbg UDD project files and restored when the target is reopened. This means that you can log conditional branch instructions in system dlls such as ntdll.dll which occur even before the Entry Point of the target is reached.

The salient features are as follows:

* Ability to detect all conditional branches and log their behaviour during runtime without having to single step the whole process, which results in a dramatic improvement in performance when compared to run trace logging.

* Ability to choose specific conditional branch types to monitor and log.

* Ability to choose and optimize included ranges and excluded ranges to fine tune the logging.

* Ability to disable, delete and restore the logging status of the detected conditional branches.

* Log conditional branches from multiple modules.

* Ability to list all module procedures that OllyDbg has recognized, with their symbolic names if they exist, as a handy reference so that it is easier to include or exclude ranges.

* A text mode log file that could serve to compare two similar runs to detect divergent paths taken with respect to input.

* A runtime log window that updates the status of conditional branches live with context menus to edit, delete and disable the entries on the fly.

* Context menus in Executable modules window to mass add modules after auto analyzing them or add specific modules to be included in the logging.

* Context menus in Memory map window to add any module section, including non-standard or memory mapped regions, to be included in the logging.

* Context menus in the main Disassmebly window to add odd ranges to be included or excluded from the logging.

* Other features include saving the entire database of conditional branches to the OllyDbg UDD file and restored back when restarting the project.

We hope this plugin might prove useful when monitoring execution flow path.

Any comments can be directed to the OllyDbg forums at
http://www.woodmann.com

This plugin is available at
http://www.woodmann.com/ollystuph/Conditional_Branch_Logger_v1.0.zip

Regards,
Blabberer, dELTA and Kayaker
上传的附件:
2011-2-8 01:28
0
雪    币: 51
活跃值: (25)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
18
我利用LBR做了一个,不过,就实际使用来说,并不是很好用,原因应该受限于PC机的内在和运算能力,如果放小型机,应该能秒破除VM外的所有EXE
2011-2-8 10:01
0
游客
登录 | 注册 方可回帖
返回
//