逆向工程中不得不说的优秀开源引擎框架: Capstone, Keystone, Unicorn, Qemu 以及 QiLing 等工具

本文主要是介绍逆向工程中不得不说的优秀开源引擎框架: Capstone, Keystone, Unicorn, Qemu 以及 QiLing 等工具,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

最近在研究一些用于进行逆向工程的框架:Chain of Fundamental Engines for Reverse Engineering: Capstone, Keystone, Unicorn, Qemu, Qiling。这些工具在某些场合中能够很好的帮助我们进行逆向工作。

汇编与反汇编

Capstone

新加坡南洋理工大学团队在 Blackhat USA 2014 上发布的一个反汇编引擎

  • Capstone 反汇编引擎 官网
  • 项目主页:https://github.com/aquynh/capstone
  • 多平台 Windows、* nix
  • 多架构,例如 Arm、Mips 和 x86
  • 支持 C/Python 接口

Keystone

新加坡南洋理工大学团队在 Blackhat USA 2016 上发布的一个汇编框架

  • Capstone 汇编框架 官网
  • 项目主页:https://github.com/keystone-engine/keystone
  • 多平台:Windows、* nix
  • 多架构,例如 Arm、Mips 和 x86
  • 支持 C/Python 接口

二进制模拟执行

QEMU

QEMU是一套由Fabrice Bellard所编写的模拟处理器的自由软件,一个通用的系统空间和用户空间仿真器和虚拟机

  • QEMU 虚拟机 官网
  • 项目主页:https://github.com/qemu/qemu
  • 多平台:Windows、* nix
  • 多架构,例如 Arm、Mips 和 x86
  • 支持 C/Python 接口

Unicorn

新加坡南洋理工大学团队在 Blackhat USA 2015 上发布的轻量级多平台,多体系结构的CPU仿真器框架

  • Unicorn 引擎 CPU仿真框架 官网
  • 项目主页:https://github.com/unicorn-engine/unicorn
  • 多平台:Windows、* nix
  • 多架构,例如 Arm、Mips 和 x86
  • 支持 C/Python 接口
  • 基于 QEMU

    QEMU 提供了一个完整的仿真环境,既可以模拟硬件外设、整个系统,也可以模拟单个二进制程序。而 Unicorn 专注于 CPU 指令的仿真。

QiLing

京东团队在 Defcon 2019 上发布的高级二进制仿真框架

  • Capstone 二进制仿真框架 官网
  • 项目主页:https://github.com/qilingframework/qiling
  • 多平台:Windows、* nix
  • 多架构,例如 Arm、Mips 和 x86
  • 基于 Unicorn

    Qiling 被设计为更高级别的框架,它利用 Unicorn 来模拟 CPU 指令,除此之外,还具有高级分析功能:执行动态检测,甚至可以在运行时热修补代码

总结

上述用于二进制逆向的开源工具,都提供了详细的使用方法,并且有团队一直在维护,对于研究二进制病毒、恶意样本分析大有裨益。例如,

  • 修改固件、二进制,增加或者修改其中的指令,可以使用 Capstone/Keystone 进行汇编指令与二进制的转换
  • 跨平台仿真一些架构的二进制可执行文件, 可以使用 QEMU
  • 二进制指令片段的模拟,可以使用 Unicorn、QiLing

笔者使用过其中的几个,且有想法去集成其中的一些功能,编写一个可视化工具。在这里只是进行简单的介绍,如果感兴趣,还是要实际操作一下。这些工具的官网都给出了使用教程,用起来还是比较简单的。

当然,如果是正常的渗透测试,漏洞挖掘,CTF,这些工具可能用到的场合还是比较受限,因为我们更常用的工具是 IDA、Ghidra、pwntools,他们具有更好的集成性和扩展性,这些工具大家可能更为熟悉,不再赘述。

这篇关于逆向工程中不得不说的优秀开源引擎框架: Capstone, Keystone, Unicorn, Qemu 以及 QiLing 等工具的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/634314

相关文章

基于Python开发PDF转PNG的可视化工具

《基于Python开发PDF转PNG的可视化工具》在数字文档处理领域,PDF到图像格式的转换是常见需求,本文介绍如何利用Python的PyMuPDF库和Tkinter框架开发一个带图形界面的PDF转P... 目录一、引言二、功能特性三、技术架构1. 技术栈组成2. 系统架构javascript设计3.效果图

MyBatis-Plus中静态工具Db的多种用法及实例分析

《MyBatis-Plus中静态工具Db的多种用法及实例分析》本文将详细讲解MyBatis-Plus中静态工具Db的各种用法,并结合具体案例进行演示和说明,具有很好的参考价值,希望对大家有所帮助,如有... 目录MyBATis-Plus中静态工具Db的多种用法及实例案例背景使用静态工具Db进行数据库操作插入

Python结合Flask框架构建一个简易的远程控制系统

《Python结合Flask框架构建一个简易的远程控制系统》这篇文章主要为大家详细介绍了如何使用Python与Flask框架构建一个简易的远程控制系统,能够远程执行操作命令(如关机、重启、锁屏等),还... 目录1.概述2.功能使用系统命令执行实时屏幕监控3. BUG修复过程1. Authorization

MySQL常见的存储引擎和区别说明

《MySQL常见的存储引擎和区别说明》MySQL支持多种存储引擎,如InnoDB、MyISAM、MEMORY、Archive、CSV和Blackhole,每种引擎有其特点和适用场景,选择存储引擎时需根... 目录mysql常见的存储引擎和区别说明1. InnoDB2. MyISAM3. MEMORY4. A

Redis客户端工具之RedisInsight的下载方式

《Redis客户端工具之RedisInsight的下载方式》RedisInsight是Redis官方提供的图形化客户端工具,下载步骤包括访问Redis官网、选择RedisInsight、下载链接、注册... 目录Redis客户端工具RedisInsight的下载一、点击进入Redis官网二、点击RedisI

无需邀请码!Manus复刻开源版OpenManus下载安装与体验

《无需邀请码!Manus复刻开源版OpenManus下载安装与体验》Manus的完美复刻开源版OpenManus安装与体验,无需邀请码,手把手教你如何在本地安装与配置Manus的开源版OpenManu... Manus是什么?Manus 是 Monica 团队推出的全球首款通用型 AI Agent。Man

基于Python实现一个PDF特殊字体提取工具

《基于Python实现一个PDF特殊字体提取工具》在PDF文档处理场景中,我们常常需要针对特定格式的文本内容进行提取分析,本文介绍的PDF特殊字体提取器是一款基于Python开发的桌面应用程序感兴趣的... 目录一、应用背景与功能概述二、技术架构与核心组件2.1 技术选型2.2 系统架构三、核心功能实现解析

使用Python开发一个图像标注与OCR识别工具

《使用Python开发一个图像标注与OCR识别工具》:本文主要介绍一个使用Python开发的工具,允许用户在图像上进行矩形标注,使用OCR对标注区域进行文本识别,并将结果保存为Excel文件,感兴... 目录项目简介1. 图像加载与显示2. 矩形标注3. OCR识别4. 标注的保存与加载5. 裁剪与重置图像

基于.NET编写工具类解决JSON乱码问题

《基于.NET编写工具类解决JSON乱码问题》在开发过程中,我们经常会遇到JSON数据处理的问题,尤其是在数据传输和解析过程中,很容易出现编码错误导致的乱码问题,下面我们就来编写一个.NET工具类来解... 目录问题背景核心原理工具类实现使用示例总结在开发过程中,我们经常会遇到jsON数据处理的问题,尤其是

SpringBoot集成图片验证码框架easy-captcha的详细过程

《SpringBoot集成图片验证码框架easy-captcha的详细过程》本文介绍了如何将Easy-Captcha框架集成到SpringBoot项目中,实现图片验证码功能,Easy-Captcha是... 目录SpringBoot集成图片验证码框架easy-captcha一、引言二、依赖三、代码1. Ea