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, 二进制分析, 云安全监控, 云安全运维, 云资产清单, 内存分析, 嵌入式, 开源, 数据提取, 无后门, 未初始化变量, 格式化输出, 类型解析, 结构体解析, 网络安全审计, 脚本, 调试信息解析, 软件分析, 逆向工具, 逆向工程, 静态分析