今天给大家介绍的是一款代码静态分析工具,该工具支持IDA,并且能够进行污点分析以及类型重构。
BinCAT是什么?
BinCAT是一款静态二进制代码分析工具包,它可以整合进IDA Pro,并能够给逆向工程师的代码分析活动提供有效的帮助。
功能介绍-值分析(寄存器+内存)
-污点分析
-类型重构
-前向以及后向分析
运行演示
感兴趣的同学可以点击下列视频了解BinCAT的运行演示:
基本分析功能:【视频地址】
使用数据污点:【视频地址】
详细使用教程:【传送门】
参考文档:【传送门】
支持的主机平台
-IDA插件:v6.9及其之后版本(BinCAT使用PyQt,而非PySide)
-分析器(本地或远程):Linux,Windows,macOS(未测试)
支持的CPU(目前)
-x86-32
-ARMv7
-ARMv8
工具安装
分析器
分析器可以在本地安装,或通过Web服务进行安装。
Windows平台下的程序代码中已包含分析器:【下载地址】
在Linux平台下,你可以使用Docker【下载地址】或手动进行安装【手册】。
IDA插件
仅支持IDA v6.9及更高版本
Windows平台下的安装步骤:-解压BinCAT
-在IDA中,点击“文件”->“脚本文件”(或按下ALT+F7)
-选择windows_install.py
-BinCAT将会安装在IDA的用户目录下
如果你想手动安装的话,请参考【安装手册】。
Linux平台下的安装
使用BinCAT
1. 使用组合键Ctrl+Shift+B或进入Edit -> Plugins -> BinCAT菜单
2. 在IDA界面中选择操作指令,然后按下Ctrl+Shift+A组合键,或进入BinCAT -> Analyze from here菜单。
工具配置
你可以通过Edit/BinCAT/Options菜单来进行全局配置。
默认配置和选项存储在$IDAUSR/idabincat/conf之中。
执行分析并观察结果
1. 通过组合键Ctrl + Shift + B加载BinCAT插件
2. 在IDA中打开get_key_x86可执行程序
3. 在IDA View-A试图中,按下g键进入地址0x93B
4. 使用组合键Ctrl + Shift + A开启分析窗口
5. 确保分析器的配置已设置为(new)
6. 检查Save configuration to IDB选项
7. 检查Remap binary选项
8. 点击Edit analyzer config按钮
9. 将下列内容复制到[state]区域的结尾,重写已存在的stack初始化(stack[0x1000*8192]...):
stack[0x1000*4099] = |00|?0xFF
stack[0x2004] = 5
stack[0x2008] = 0x200000
mem[0x200000] = 0x300100
mem[0x200004] = 0x300140
mem[0x200008] = 0x300180
mem[0x20000C] = 0x3001C0
mem[0x200010] = 0x300200
mem[0x300100] = |6c6f6c3300|
mem[0x300140] = |636f6d70616e7900|
mem[0x300180] = |64657000|
mem[0x3001C0] = |6c6f6c3100|
mem[0x300200] = |6c6f6c2100|
10.点击“Save”
11. 点击“Start”
12.选择结果代码的存储位置,该操作只需要首次分析时配置即可
13.给需要存储的配置文件命名
14.分析完成后,按下g键进入地址0x807,在BinCAT Registers视图中观察gsp寄存器的值(应该为0x1D50)。打开BinCAT Memory视图,观察buffer指针(char *)的内容。
更多内容
更多的使用方法请大家参考BinCAT提供的【入门教程】。
* 参考来源:bincat,FB小编Alpha_h4ck编译,转载请注明来自FreeBuf.COM