工具

Kam1n0 汇编代码克隆搜索平台

McGill 大学数据挖掘与安全实验室开发的服务端平台,可把大量已反汇编的二进制建立索引、存入可共享的仓库,并在其中搜索克隆的汇编函数。平台提供多种应用:在同一指令集家族内进行子图克隆搜索(Asm-Clone),借助符号执行与具体执行在 VEX IR 上进行跨架构语义搜索(Sym1n0),面向编译优化与混淆的 Asm2Vec 表示学习,以及基于 Asm2Vec 的可执行文件分类。IDA Pro 插件把函数发送到服务端,并以控制流图、文本差异和克隆分组视图展示结果;README 中的准确率与查询耗时数据出自作者自己的论文。

目标
二进制
类别
二进制对比工具
关联
基础工具
来源复核于

使用条件与局限

  • 审阅时最新稳定版本为 2.2.0,发布于 2020-11-15,提供服务端和 IDA Pro 插件的 Windows 安装程序及 Linux 压缩包;2023-02-27 的 nightly-action 预发布版只附带 Windows 构建。所审阅的 master2.x 提交日期相同,是默认分支的最新提交;README 称 2.0.0 之前版本的仓库和配置文件已不再支持。
  • 服务端需要 64 位 Java 11 运行环境(README 要求 Oracle 版本);若要反汇编上传的二进制,还需在 kam1n0.properties 中配置装有 IDAPython 的 IDA Pro。随附配置把 JVM 最大堆设为 12 GB,网页界面使用 8571 端口。插件需要高于 6.7 版、装有 IDAPython 的 IDA Pro,以及其安装程序附带的 CEF Python wheel 包。源码中还有一个 README 未说明的 Ghidra 反汇编后端,本次未加检查。
  • 需由使用者提供要建立索引和查询的二进制。仓库提交了由开源代码构建的测试与示例二进制:多种架构和优化级别的 zlib、libpng 构建,一个 Chromium DLL,以及 PuTTY 和 zlib 的 IDA 数据库。Windows 安装程序源码目录提交了 Microsoft .NET Framework 4.0 与 Visual C++ x64 可再发行组件安装程序以及 CEF Python wheel 包;服务端资源目录提交了 JavaFX SDK 11.0.2 的 DLL、预编译的 LibVEX 库(VEXIRBB.dll),以及含 z3 jar 的本地 Maven 仓库。
  • Maven 依靠这些预编译的 LibVEX 与 z3 二进制构建各 Java 11 模块;README 称 LibVEX 来自 angr 的分支,z3 则以子模块引入。Maven 测试通过 chromedriver 驱动 Chrome,README 称全程约需三小时;CI 只构建 Windows 发行包和 WiX 安装程序。准确率与耗时数据来自 README 以及作者发表于 KDD 2016 和 IEEE S&P 2019 的论文;本次审阅未对任何二进制建立索引或进行搜索。
  • 采用 Apache-2.0(LICENSE.txt),版权归 McGill 大学及研究人员所有。随附的运行库、可再发行组件安装程序、wheel 包和测试二进制适用各自的许可证,IDA Pro 是需另行授权的商业软件。

关于此条目

说明已依据一手来源复核;这不代表已运行验证、经过安全审计或确认兼容。

报告条目过时 建议修正翻译

一手来源

  1. README.md GitHub · McGill-DMaS/Kam1n0-Community · 修订 1c3c309
  2. documentation/server/server.md GitHub · McGill-DMaS/Kam1n0-Community · 修订 1c3c309
  3. documentation/ida-pro-plugin/ida-pro-plugin.md GitHub · McGill-DMaS/Kam1n0-Community · 修订 1c3c309
  4. kam1n0/kam1n0-resources/bin/kam1n0.properties GitHub · McGill-DMaS/Kam1n0-Community · 修订 1c3c309
  5. kam1n0/kam1n0-commons/src/main/java/ca/mcgill/sis/dmas/kam1n0/framework/disassembly/DisassemblyFactory.java GitHub · McGill-DMaS/Kam1n0-Community · 修订 1c3c309
  6. kam1n0-builds/README.md GitHub · McGill-DMaS/Kam1n0-Community · 修订 1c3c309
  7. .gitmodules GitHub · McGill-DMaS/Kam1n0-Community · 修订 1c3c309
  8. .github/workflows/msbuild.yml GitHub · McGill-DMaS/Kam1n0-Community · 修订 1c3c309
  9. kam1n0/kam1n0-resources/bin-exclude-from-distr/test-cases GitHub · McGill-DMaS/Kam1n0-Community · 修订 1c3c309
  10. kam1n0-builds/windows/installer-src-32-64/libs-server GitHub · McGill-DMaS/Kam1n0-Community · 修订 1c3c309
  11. LICENSE.txt GitHub · McGill-DMaS/Kam1n0-Community · 修订 1c3c309
  12. https://github.com/McGill-DMaS/Kam1n0-Community/releases/tag/2.2.0
  13. https://github.com/McGill-DMaS/Kam1n0-Community/releases/tag/nightly-action

同分区更多条目:原生二进制

原生二进制分区全部 129 项资源