# Kam1n0 汇编代码克隆搜索平台

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

- 类型：工具
- 目标：二进制
- 类别：二进制对比工具
- 关联：基础工具
- 来源复核于：2026-10-20
- 收录于：2026-11-02
- 原始资源：<https://github.com/McGill-DMaS/Kam1n0-Community>
- 一手来源：<https://github.com/McGill-DMaS/Kam1n0-Community/blob/1c3c309acc8f5e50c6617f858aa3b5b84c121b26/README.md>
- 目录页面：<https://awesomerea.org/zh/resources/kam1n0/>
- 记录 JSON：<https://awesomerea.org/resources/kam1n0/record.json>
- 英文版：[English](https://awesomerea.org/resources/kam1n0/index.md)

## 使用条件与局限

- 审阅时最新稳定版本为 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. <https://github.com/McGill-DMaS/Kam1n0-Community/blob/1c3c309acc8f5e50c6617f858aa3b5b84c121b26/README.md>
2. <https://github.com/McGill-DMaS/Kam1n0-Community/blob/1c3c309acc8f5e50c6617f858aa3b5b84c121b26/documentation/server/server.md>
3. <https://github.com/McGill-DMaS/Kam1n0-Community/blob/1c3c309acc8f5e50c6617f858aa3b5b84c121b26/documentation/ida-pro-plugin/ida-pro-plugin.md>
4. <https://github.com/McGill-DMaS/Kam1n0-Community/blob/1c3c309acc8f5e50c6617f858aa3b5b84c121b26/kam1n0/kam1n0-resources/bin/kam1n0.properties>
5. <https://github.com/McGill-DMaS/Kam1n0-Community/blob/1c3c309acc8f5e50c6617f858aa3b5b84c121b26/kam1n0/kam1n0-commons/src/main/java/ca/mcgill/sis/dmas/kam1n0/framework/disassembly/DisassemblyFactory.java>
6. <https://github.com/McGill-DMaS/Kam1n0-Community/blob/1c3c309acc8f5e50c6617f858aa3b5b84c121b26/kam1n0-builds/README.md>
7. <https://github.com/McGill-DMaS/Kam1n0-Community/blob/1c3c309acc8f5e50c6617f858aa3b5b84c121b26/.gitmodules>
8. <https://github.com/McGill-DMaS/Kam1n0-Community/blob/1c3c309acc8f5e50c6617f858aa3b5b84c121b26/.github/workflows/msbuild.yml>
9. <https://github.com/McGill-DMaS/Kam1n0-Community/tree/1c3c309acc8f5e50c6617f858aa3b5b84c121b26/kam1n0/kam1n0-resources/bin-exclude-from-distr/test-cases>
10. <https://github.com/McGill-DMaS/Kam1n0-Community/tree/1c3c309acc8f5e50c6617f858aa3b5b84c121b26/kam1n0-builds/windows/installer-src-32-64/libs-server>
11. <https://github.com/McGill-DMaS/Kam1n0-Community/blob/1c3c309acc8f5e50c6617f858aa3b5b84c121b26/LICENSE.txt>
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>

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

- [iblessing iOS 应用与 Mach-O 分析工具集](https://awesomerea.org/zh/resources/iblessing/index.md) · 工具
- [SiMBA 线性 MBA 表达式化简工具](https://awesomerea.org/zh/resources/simba-mba-simplifier/index.md) · 工具
- [GTIRB 二进制中间表示](https://awesomerea.org/zh/resources/gtirb/index.md) · 工具
- [Quokka 二进制导出工具](https://awesomerea.org/zh/resources/quokka-binary-exporter/index.md) · 工具
- [knife 静态逆向工程工具包](https://awesomerea.org/zh/resources/knife/index.md) · 工具
- [BARF 二进制分析与逆向工程框架](https://awesomerea.org/zh/resources/barf/index.md) · 工具

## 关于此条目

说明已依据一手来源复核。
原创说明采用 MIT 许可；外部项目、论文与素材保留各自的权利和许可。
