1. 背景
qiling framework基于python开发,是一个github开源的,可模拟多种架构和平台的二进制仿真框架,同时提供跨架构的调试能力,多种层次的hook方法,该工具由Unicorn enginee驱动,具备能力有:
- 模拟多平台:Windows,MacOS,Linux,Android,BSD,UEFI,DOS,MBR,以太坊虚拟机
- 仿真多架构:8086、X86、X86_64、ARM、ARM64、MIPS、RISCV、PowerPC 在隔离环境中模拟 和 沙盒代码,提供完全可配置的沙盒 提供深度内存、寄存器、操作系统级别和文件系统级别 API 细粒度显示:
- 允许设置多种级别的钩子( instruction / basic-block / memory-access / exception / syscall / IO 等等);
- 支持跨架构和平台调试功能,具有反向调试功能的内置调试器 允许动态修补运行中的程序代码,包括已加载的库;
qiling framework github仓:https://github.com/qilingframework/qiling
2. 代码框架
通常“原生应用”在一个“特定的操作系统环境”上运行,主要分为三层,应用层 + os + CPU,os提供syscall接口