Android 逆向使用 Python 代码解析 ELF 文件 ( PyCharm 中进行断点调试 | ELFFile 实例对象分析 )
Posted 韩曙亮
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Android 逆向使用 Python 代码解析 ELF 文件 ( 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 文件的一些标志 ,
以上是关于Android 逆向使用 Python 代码解析 ELF 文件 ( PyCharm 中进行断点调试 | ELFFile 实例对象分析 )的主要内容,如果未能解决你的问题,请参考以下文章
Android 逆向使用 Python 解析 ELF 文件 ( Capstone 反汇编 ELF 文件中的机器码数据 | 完整代码示例 ) ★★★
Android 逆向使用 Python 解析 ELF 文件 ( Capstone 反汇编框架 | PyCharm 中导入 Capstone 反汇编框架 )
Android 逆向使用 Python 解析 ELF 文件 ( Capstone 反汇编 ELF 文件中的机器码数据 | 创建反汇编解析器实例对象 | 设置汇编解析器显示细节 )(代码片段
Android 逆向逆向修改游戏应用 ( APK 解析工具 | 解包 -> 分析 -> 重打包 -> 签名 流程 )
Android 逆向使用 Python 解析 ELF 文件 ( Capstone 反汇编 ELF 文件中的机器码数据 | 反汇编二进制机器码 | 打印反汇编数据 )
Android 逆向arm 汇编 ( 使用 IDA 解析 arm 架构的动态库文件 | 分析 malloc 函数的 arm 汇编语言 )