freeBuf
主站

分类

漏洞 工具 极客 Web安全 系统安全 网络安全 无线安全 设备/客户端安全 数据安全 安全管理 企业安全 工控安全

特色

头条 人物志 活动 视频 观点 招聘 报告 资讯 区块链安全 标准与合规 容器安全 公开课

官方公众号企业安全新浪微博

FreeBuf.COM网络安全行业门户,每日发布专业的安全资讯、技术剖析。

FreeBuf+小程序

FreeBuf+小程序

Kam1n0:一款功能强大的汇编代码管理和分析平台
2022-09-26 20:46:18
所属地 广西

关于Kam1n0

Kam1n0是一款功能强大且易于扩展的汇编代码管理和分析平台,该工具允许用户将一个大型二进制文件集合索引到不同的存储库中,然后它会给广大研究人员提供各种不同的分析服务,例如克隆搜索和分类等等。该工具引入了应用程序的实现概念,并支持对汇编代码库的多租户访问和管理。考虑到逆向工程任务的多功能性,Kam1n0的服务器目前提供了三种不同类型的克隆搜索工具:Asm-Clone、Sym1n0和Asm2Vec。

其中,用户可以创建多个应用程序实例,应用程序实例可以在特定的用户组之间共享,应用程序存储库的读写访问和开关状态可以由应用程序所有者控制,而Kam1n0的服务器可以使用多个共享资源池同时为应用程序提供服务。

Asm-Clone

Asm-Clone应用程序试图解决汇编函数的高效子图搜索问题(即图同构问题)(平均查询时间<1.3秒,平均索引时间<30毫秒,2.3M函数)。给定一个目标函数(如下图所示左侧的函数),它可以在存储库中的其他函数(如图所示右侧的函数)中标识克隆的子图:

Sym1n0

Sym1n0支持通过区分模糊测试和约束求解进行语义克隆搜索,而这是一种高效、可扩展的动态静态混合方法(平均查询时间<1s,平均索引时间<100ms,1.5M函数)。给定一个目标函数(如下图所示左侧的函数),它可以在存储库中的其他函数(如图所示右侧的函数)中标识克隆的子图,并且支持抽象语法图的可视化:

Asm2Vec

Asm2Vec利用了表征学习方法,它可以理解汇编代码的词汇语义关系。例如,xmm*寄存器在语义上与向量操作(如addps)相关,以及memcpy类似于strcpy等。下图显示了从libgmp中的gmpz_tdiv_r_2exp的同一源代码编译的不同汇编函数。从左到右,汇编函数使用GCC O0选项、GCC O3选项、O-LLVM混淆器控制流图、平坦化选项和LLVM模糊器伪控制流图选项进行编译,Asm2Vec可以静态地将它们标识为克隆:

可执行程序分类

在此应用程序中,用户定义了一组基于功能相关性的软件类,并提供了属于每个类的二进制文件。然后,系统自动将功能分组为集群,集群中的功能通过克隆关系直接或间接连接。保留对分类有区别的簇,并作为其类的签名。给定一个目标二进制文件,系统会显示它属于每个软件类的程度:

平台概览

下图显示了Kam1n0的主要UI组件和功能:

工具安装

广大研究人员可以使用下列命令将该项目源码克隆至本地:

git clone https://github.com/McGill-DMaS/Kam1n0-Community.git

或直接访问该项目的【Releases】页面下载Kam1n0。

Kam1n0的当前版本由两个安装程序组成:核心服务器和IDA Pro插件。

Kam1n0服务器安装

Kam1n0的核心引擎使用纯Java开发,并需要下列依赖组件:

1、最新版本11.x JRE/JDK x64发行版;

2、最新版本IDA Pro,并安装好idapython插件;

Kam1n0 IDA Pro插件安装

Kam1n0 IDA Pro插件基于Python开发,主要使用下列依赖组件:

IDA Pro > v6.7,且安装好idapython插件

自定义开发

使用下列命令克隆最新稳定版分支:

git clone --recursive -b master2.x --single-branch https://github.com/McGill-DMaS/Kam1n0-Community

导入项目

在IntelliJ中,将/kam1n0/kam1n0/以Maven项目导入,接下来使用下列命令构建项目:

cd /kam1n0/kam1n0

mvn -DskipTests clean package

mvn -DskipTests package

接下来,可以使用下列命令进行测试:

cd /kam1n0/kam1n0

mvn -DskipTests clean package # you can skip this one if you already built the package

mvn -DskipTests package       # you can skip this one if you already built the package

mvn -DforkMode=never test

许可证协议

本项目的开发与发布遵循Apache-2.0开源许可证协议。

项目地址

Kam1n0:【GitHub传送门

参考资料

http://stevending.net/

http://milesqli.github.io/

http://dmas.lab.mcgill.ca/fung/

http://dmas.lab.mcgill.ca/

https://hex-rays.com/contests/2015/

https://drive.google.com/file/d/0BzRSjM7kjy-rZWUtRnFXR0ZpSjg/view?usp=sharing

http://www.oracle.com/technetwork/java/javase/downloads/index.html

https://github.com/idapython/src/

# 汇编 # 代码分析 # 汇编反汇编
本文为 独立观点,未经允许不得转载,授权请联系FreeBuf客服小蜜蜂,微信:freebee2022
被以下专辑收录,发现更多精彩内容
+ 收入我的专辑
+ 加入我的收藏
相关推荐
  • 0 文章数
  • 0 关注者
文章目录