程序员社区

【Android 逆向】使用 Python 代码解析 ELF 文件 ( PyCharm 中进行断点调试 | ELFFile 实例对象分析 )

文章目录

  • 一、PyCharm 中进行断点调试
  • 二、ELFFile 实例对象分析

一、PyCharm 中进行断点调试


在上一篇博客 【Android 逆向】使用 Python 代码解析 ELF 文件 ( PyCharm 中创建 Python 程序 | 导入 ELFFile 库 | 解析 ELF 文件 ) 中 , 使用 Python 解析 ELF 文件 , 重点是了解 ELFFile 对象的结构 , 下面开始使用断点调试 , 查看具体的 ELFFile 对象细节 ;

解析 ELF 文件代码如下 :

# coding=utf-8
# 解析 elf 文件需要导入的依赖库
#   安装 pyelftools 库
from elftools.elf.elffile import ELFFile


def main():
    # 要解析的动态库路径
    elf_path = r'libwtcrypto.so'
    # 打开 elf 文件
    file = open(elf_path, 'rb')
    # 创建 ELFFile 对象 , 该对象是核心对象
    elf_file = ELFFile(file)

    # 打印 elf 文件头
    print(elf_file.header)
    # 打印 程序头入口 个数
    print(elf_file.num_segments())
    # 打印 节区头入口 个数
    print(elf_file.num_sections())

    # 遍历打印 程序头入口
    for segment in elf_file.iter_segments():
        print(segment.header)
        print(segment.header['p_align'])

    # 遍历打印 节区头入口
    for section in elf_file.iter_sections():
        print('name:', section.name)
        print('header', section.header)

    # 关闭文件
    file.close()
    pass


if __name__ == '__main__':
    main()

在创建 ELFFile 对象的后面一行加上断点 ;

在这里插入图片描述

右键点击 __main__ 函数左侧的 运行按钮 在这里插入图片描述 , 选择 " Debug ‘main’ " 选项 ;

在这里插入图片描述

程序运行后 , 会自动进入 Debug 面板 ;

在这里插入图片描述

二、ELFFile 实例对象分析


打开右侧的 elf_file 变量 , 即可查看 ELFFile 对象的内部字段值 ;

在这里插入图片描述

header 是文件头信息 ;

在这里插入图片描述

stream 是对应的文件 ;

在这里插入图片描述

structs 是 ELF 文件的一些标志 ,

在这里插入图片描述

赞(0) 打赏
未经允许不得转载:IDEA激活码 » 【Android 逆向】使用 Python 代码解析 ELF 文件 ( PyCharm 中进行断点调试 | ELFFile 实例对象分析 )

相关推荐

  • 暂无文章

一个分享Java & Python知识的社区