您当前的位置: 首页 >  Python

韩曙亮

暂无认证

  • 1浏览

    0关注

    1068博文

    0收益

  • 0浏览

    0点赞

    0打赏

    0留言

私信
关注
热门博文

【Android 逆向】使用 Python 解析 ELF 文件 ( Capstone 反汇编 ELF 文件中的机器码数据 | 创建反汇编解析器实例对象 | 设置汇编解析器显示细节 )

韩曙亮 发布时间:2021-10-28 20:34:39 ,浏览量:1

文章目录
  • 一、创建 Capstone 反汇编解析器实例对象
  • 二、设置 Cs 汇编解析器显示细节

一、创建 Capstone 反汇编解析器实例对象

使用 Capstone 反汇编框架 ,

首先创建 Capstone 反汇编解析器对象 , 即 Cs 类实例对象 ;

构造函数原型如下 :

class Cs(object):
    def __init__(self, arch, mode):

创建 Capstone 实例对象代码 : 下面代码创建的是 x86 架构的 32 位模式的 Cs 对象 , 也就意味着反汇编的 ELF 文件是 32 位 x86 CPU 架构的动态库 ;

Cs(CS_ARCH_X86, CS_MODE_32)

第一个参数是 CPU 架构 , 第二个参数是 CPU 位数模式 ;

CPU 架构选择 : 有如下可选项 ; 99% 的情况下使用的是 CS_ARCH_ARM , CS_ARCH_ARM64 , CS_ARCH_X86 这三种情况 ; 其中 Android 逆向中 , CS_ARCH_ARM 和 CS_ARCH_ARM64 用的最多 ;

# architectures
CS_ARCH_ARM = 0
CS_ARCH_ARM64 = 1
CS_ARCH_MIPS = 2
CS_ARCH_X86 = 3
CS_ARCH_PPC = 4
CS_ARCH_SPARC = 5
CS_ARCH_SYSZ = 6
CS_ARCH_XCORE = 7
CS_ARCH_M68K = 8
CS_ARCH_TMS320C64X = 9
CS_ARCH_M680X = 10
CS_ARCH_EVM = 11
CS_ARCH_MAX = 12
CS_ARCH_ALL = 0xFFFF

CPU 位数模式 : 每种 CPU 架构都分 32 位 , 64 位 模式 ;

# disasm mode
CS_MODE_LITTLE_ENDIAN = 0      # little-endian mode (default mode)
CS_MODE_ARM = 0                # ARM mode
CS_MODE_16 = (1             
关注
打赏
1663594092
查看更多评论
0.5571s