Uneld/ElfParser

GitHub: Uneld/ElfParser

基于 Python 和 pyelftools 的 ELF 文件 .bss 段分析工具,利用 DWARF 调试信息递归提取未初始化变量的地址、类型和大小。

Stars: 0 | Forks: 0

# 🇷🇺 俄语版本 ## 描述 `BssInspector` - 是一个用于分析 ELF 文件中 `.bss` 节的 Python 类,支持 DWARF 调试信息。该类允许提取有关未初始化变量的信息,包括它们的: - 地址 - 数据类型 - 大小 - 嵌套结构和数组 ## 主要功能 - 分析 ELF 文件 `.bss` 节中的变量 - 支持各种数据类型(基本类型、指针、数组、结构体) - 递归分析复合类型(struct/class) - 根据架构自动确定指针大小(32/64 位) - 格式化输出结果 ## 依赖要求 - Python 3.x - `pyelftools` 库 ## 安装依赖 ``` pip install pyelftools ``` ## 使用方法 ``` from ElfParser import BssInspector # 创建 ELF 文件的检查器 inspector = BssInspector("your_file.elf") # 收集 .bss section 中变量的信息 inspector.collect_bss_vars() # 输出结果 inspector.print_table() ``` ## 输出示例 ``` var: global_var {'address': 536871436, 'type': 'uint32_t', 'size': 4} var: struct_instance.member1 {'address': 536871440, 'type': 'int16_t', 'size': 2} var: struct_instance.member2 {'address': 536871442, 'type': 'pointer', 'size': 4} ``` # 🇬🇧 英语版本 ## 描述 `BssInspector` 是一个旨在分析带有 DWARF 调试信息支持的 ELF 文件 `.bss` 节的 Python 类。 它提取有关未初始化变量的详细信息,包括: - 地址 - 数据类型 - 大小 - 嵌套结构和数组 ## 主要功能 - 分析 ELF 文件 `.bss` 节中的变量 - 支持各种数据类型(基本类型、指针、数组、结构体) - 递归解析复合类型(struct / class) - 基于 ELF 架构自动检测指针大小(32/64 位) - 对收集到的数据进行格式化且易读的输出 ## 依赖要求 - Python 3.x - `pyelftools` 库 ## 安装依赖 ``` pip install pyelftools ``` ## 使用示例 ``` from ElfParser import BssInspector # 创建 ELF 文件的检查器 inspector = BssInspector("your_file.elf") # 收集 .bss section 中变量的信息 inspector.collect_bss_vars() # 输出格式化的结果 inspector.print_table() ``` ## 输出示例 ``` var: global_var {'address': 536871436, 'type': 'uint32_t', 'size': 4} var: struct_instance.member1 {'address': 536871440, 'type': 'int16_t', 'size': 2} var: struct_instance.member2 {'address': 536871442, 'type': 'pointer', 'size': 4} ```
标签:BssInspector, .bss段, C/C++, DWARF, ELF, JARM, pyelftools, Python, VPS部署, 事务性I/O, 二进制分析, 云安全监控, 云安全运维, 云资产清单, 内存分析, 嵌入式, 开源, 数据提取, 无后门, 未初始化变量, 格式化输出, 类型解析, 结构体解析, 网络安全审计, 脚本, 调试信息解析, 软件分析, 逆向工具, 逆向工程, 静态分析