capstone简单使用

安装
pip install capstone
初始化

Cs(arch, mode)

CP = capstone.Cs(capstone.CS_ARCH_ARM, capstone.CS_MODE_THUMB)
反编译

返回CsInsn类型的generator
disasm(code, offset, count=0):

CsInsn 常用属性
id 指令ID
address 指令地址
size 指令大小
bytes 指令机器码
mnemonic 指令助记符
op_str 字符串形式的指令
...
其他的属性可以查看源码

使用

import capstone

THUMB_CODE = b"\x83\xb0" # sub    sp, #0xc
CP = capstone.Cs(capstone.CS_ARCH_ARM, capstone.CS_MODE_THUMB)
for i in CP.disasm(THUMB_CODE , 0, len(THUMB_CODE )):
      print("[code:address:0x%x]:%s %s" % (address, i.mnemonic, i.op_str))
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 1 多益网络面试 Q:博客项目里面如何验证账号密码的?有没有做什么安全措施 A: 在登录表单中填写用户名和密码后,...
    全村希望gone阅读 919评论 0 3
  • 记录一下看了Java开发必会的反编译知识后关于Java的编译、反编译、字节码、源代码、机器码的note,目录如下,...
    chenfh5阅读 1,000评论 0 0
  • 本文由HeapDump性能社区首席讲师鸠摩(马智)授权整理发布 第17章-x86-64寄存器[https://ww...
    HeapDump性能社区阅读 642评论 0 2
  • 1、简述编译型和解释型语言编译型:运行前先由编译器将高级语言代码编译为对应机器的cpu汇编指令集,再由汇编器汇编为...
    Zzmi阅读 1,018评论 0 0
  • 〇、前言 本文共108张图,流量党请慎重! 历时1个半月,我把自己学习Python基础知识的框架详细梳理了一遍。 ...
    Raxxie阅读 19,105评论 17 410