Usercorn 开源项目教程

Usercorn 开源项目教程

usercorndynamic binary analysis via platform emulation项目地址:https://gitcode.com/gh_mirrors/us/usercorn

项目介绍

Usercorn 是一个分析和模拟器框架,其基础类似于 qemu-user。它能够在不同的主机内核上运行任意二进制文件,这与 qemu-user 不同。Usercorn 在每条指令上记录完整的系统状态到一个可序列化的紧凑格式,支持回溯和重新执行。它非常适合用于调试和动态分析。Usercorn 提供了一个架构中立的、基于 Lua 的强大脚本语言和调试器,易于扩展和使用,可以构建自己的工具。Usercorn 可以用于模拟 16 位 DOS、32 位和 64 位 ARM/MIPS/x86/SPARC 二进制文件,支持 Linux、Darwin、BSD、DECREE 甚至 Redux 等操作系统。目前,x86_64 Linux 和 DECREE 是最受支持的客户系统。

项目快速启动

环境准备

Usercorn 依赖于 Go 1.6 或更新版本,以及最新不稳定版本的 Capstone、Unicorn 和 Keystone。可以通过以下命令安装这些依赖:

make deps  # 需要 cmake

构建 Usercorn

更新 Go 包并构建 Usercorn:

make

运行示例

以下是一些运行 Usercorn 的示例命令:

usercorn run bins/x86_64 linux elf
usercorn run bins/x86 darwin macho
usercorn run bins/x86_64 darwin macho
usercorn run bins/x86 linux cgc

应用案例和最佳实践

调试顽固二进制文件

Usercorn 可以单步执行程序,即使 GDB 拒绝调试的二进制文件也能处理。例如,对于一个在启动时退出的二进制文件,Usercorn 可以单步执行进入程序。

调试不同架构和操作系统的二进制文件

无需 MIPS 盒子或 qemu-user,甚至不需要 Linux。Usercorn 可以模拟不同架构和操作系统的二进制文件。

编写工具

Usercorn 可以用于编写模糊测试器、静态分析器、重新编译器、内存和寄存器分析器等。例如,可以选择性地从二进制文件中调用函数,Usercorn 将映射二进制文件并模拟内核。

典型生态项目

Capstone

Capstone 是一个轻量级、多平台的反汇编框架,支持多种架构。Usercorn 使用 Capstone 进行反汇编。

Unicorn

Unicorn 是一个基于 QEMU 的多平台多架构 CPU 模拟框架。Usercorn 使用 Unicorn 进行 CPU 模拟。

Keystone

Keystone 是一个多架构汇编框架,支持多种架构的汇编和反汇编。Usercorn 使用 Keystone 进行汇编操作。

通过这些生态项目,Usercorn 能够提供强大的模拟和分析能力,适用于各种复杂的二进制文件分析任务。

usercorndynamic binary analysis via platform emulation项目地址:https://gitcode.com/gh_mirrors/us/usercorn

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

毕习沙Eudora

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值