Functrace:使用DynamoRIO追踪函数调用
secist
- 关注
0
1
2
3
4
5
6
7
8
9
0
1
2
3
4
5
6
7
8
9
0
1
2
3
4
5
6
7
8
9
收藏一下~
可以收录到专辑噢~
Functrace:使用DynamoRIO追踪函数调用
Functrace是一款使用DynamoRIO(http://dynamorio.org/)通过动态检测分析二进制文件的工具。
特性(基于DynamoRIO)
反汇编所有执行的代码
反汇编一个特定的函数(如果是地址则进行转储)
获取特定函数的参数(如果是地址则进行转储)
获取特定函数的返回值(如果这是一个地址则进行转储)
监控应用信号
生成报告文件
ghidra(https://ghidra-sre.org/)coverage脚本(基于functrace报告文件)
安装
$ wget https://github.com/DynamoRIO/dynamorio/releases/download/release_7_0_0_rc1/DynamoRIO-Linux-7.0.0-RC1.tar.gz
$ tar xvzf DynamoRIO-Linux-7.0.0-RC1.tar.gz
或
$ wget https://github.com/DynamoRIO/dynamorio/releases/download/cronbuild-7.91.18047/DynamoRIO-x86_64-Linux-7.91.18047-0.tar.gz
$ tar xvzf DynamoRIO-x86_64-Linux-7.91.18047-0.tar.gz
你也可以直接克隆和编译DynamoRIO
$ git clone https://github.com/invictus1306/functrace
$ mkdir -p functrace/build
$ cd functrace/build
$ cmake .. -DDynamoRIO_DIR=/full_DR_path/cmake/
$ make -j4
DEMO
使用
$ drrun -c libfunctrace.so -report_file report -- target_program [args]
选项
支持以下 [functrace](https://github.com/invictus1306/functrace)可选项:
-disassembly -> disassemble all the functions
-disas_func function_name -> disassemble only the function function_name
-wrap_function function_name -> wrap the function function_name
-wrap_function_args num_args -> number of arguments of the wrapped function
-cbr -> remove the bb from the cache (in case of conditional jump)
-report_file file_name -> report file name (required)
-verbose -> verbose
使用示例
选项 -verbose
$ drrun -c libfunctrace.so -report_file report -verbose -- target_program [args]
选项 -disassemby
$ drrun -c libfunctrace.so -report_file report -disassembly -- target_program [args]
选项 -disas_func
$ drrun -c libfunctrace.so -report_file report -disas_func name_function -- target_program [args]
选项 -wrap_function 和 -wrap_function_args
$ drrun -c libfunctrace.so -report_file report -wrap_function name_function -wrap_function_args num_args -- target_program [args]
选项 -cbr
$ drrun -c libfunctrace.so -report_file report -cbr -- target_program [args]
CVE-2018-4013 - 漏洞分析
LIVE555 RTSP 服务器库上的漏洞。详情请在此处查看。
工作环境
以上测试环境为 Ubuntu 16.04.5 LTS 64 bit
待添加功能
Ghidra插件
可视化设置界面
存储并比较不同的覆盖能力分析
从ghidra运行DR directy
为functrace添加更多功能
支持Android
*参考来源:GitHub,FB小编secist编译,转载请注明来自FreeBuf.COM
免责声明
1.一般免责声明:本文所提供的技术信息仅供参考,不构成任何专业建议。读者应根据自身情况谨慎使用且应遵守《中华人民共和国网络安全法》,作者及发布平台不对因使用本文信息而导致的任何直接或间接责任或损失负责。
2. 适用性声明:文中技术内容可能不适用于所有情况或系统,在实际应用前请充分测试和评估。若因使用不当造成的任何问题,相关方不承担责任。
3. 更新声明:技术发展迅速,文章内容可能存在滞后性。读者需自行判断信息的时效性,因依据过时内容产生的后果,作者及发布平台不承担责任。
本文为 secist 独立观点,未经授权禁止转载。
如需授权、对文章有疑问或需删除稿件,请联系 FreeBuf 客服小蜜蜂(微信:freebee1024)
如需授权、对文章有疑问或需删除稿件,请联系 FreeBuf 客服小蜜蜂(微信:freebee1024)
被以下专辑收录,发现更多精彩内容
+ 收入我的专辑
+ 加入我的收藏
相关推荐
ATTCK-PenTester-Book:根据ATT&CK知识体系编制的长达400页的渗透手册
2020-02-10
Sniffle: 蓝牙5和4.x LE嗅探器
2019-11-23
Docem:向docx odt pptx等文件中嵌入XXE或XSS Payload
2019-11-11
文章目录