type
status
date
slug
summary
tags
category
icon
password
👉
在复现DownUnderCTF2024发现wp中作者使用的是capstone来解的那道题,觉得是个好用的方法现在来学一下
capstone官网
官方教程(python)
官方教程(C)
官方教程(Java)

基本样本

notion image
效果就是上图所示
上述效果图显示的的成员
成员名
描述
id
汇编指令的id
address
代码地址
mnemonic
汇编指令
op_str
操作对象字符串
size
汇编指令的大小
bytes
返回对应汇编指令的机器码
operands
操作对象(后面介绍)

更快更简单的基本信息API

从版本 2.1 开始,Python 绑定在 Cs 类中提供了这个新方法 disasm_lite()。与 disasm() 不同,disasm_lite() 仅返回 (address, size, mnemonic, op_str) 的元组。基准测试显示,这种轻量级 API 比同类 API 快 30%。
此示例来自官方文档
下面是 disasm_lite() 的示例
notion image

架构与模式

notion image
notion image
如果需要在运行时动态的更换其解析模式,可以使用如下写法
将额外模式与基本模式结合起来的方法是使用操作数 +
下面的示例仍然来自官方文档
notion image

更多与架构无关的反汇编指令数据

Capstone 不会生成反汇编指令的详细信息。如果我们想要隐式寄存器读/写或该指令所属的语义组等信息,我们需要显式打开此选项,如下面的示例代码所示。

operands尝试

下面的示例展示了如何提取 ARM64 代码的指令操作数的详细信息。
notion image
C/C++逆向学习(二)DownUnderCTF2024复现学习及思考
Loading...
5m10v3
5m10v3
目前主攻方向为Re
Announcement
🎉5m10v3のBlog已经上线啦🎉
-- 感谢各位师傅的支持 ---
👏欢迎师傅们前来交流👏