高效自动的打包二进制文件插桩技术
1. 相关技术对比
在二进制文件处理领域,有多种不同的技术被应用,下面对几种常见技术进行对比:
| 技术名称 | 特点 | 局限性 |
| ---- | ---- | ---- |
| PIN | 采用与Dynamo类似的动态二进制仿真和插桩方法,完全在运行时执行插桩 | 未提及 |
| HDTrans | 轻量级IA32 - IA32二进制翻译系统,结合简单有效的翻译技术和代码缓存优化技术 | 未提及 |
| OmniUnpack | 在页面状态跟踪方面与Uncover类似,专注于病毒检测,依赖第三方病毒扫描引擎确定解包结束 | 成功与否依赖病毒扫描引擎 |
| BIRD | 通用二进制分析和插桩基础设施,结合静态和动态反汇编,适用于Windows/X86二进制文件 | 对于打包二进制文件,静态反汇编器只能揭示解包器代码,无法为运行时原始代码反汇编提供足够信息 |
2. Uncover的设计与实现
Uncover由静态组件和动态组件组成,其软件架构如下:
graph LR
classDef process fill:#E5F6FF,stroke:#73A6FF,stroke-width:2px;
A[输入二进制文件]:::process --> B{是否打包?}:::process
B -- 未打包 --> C[静态反汇编并插桩]:::process
B -- 已打包 --> D[不反汇编]:::process
C --> E[追加信息