我正在从gdb-python中提取可执行的C结构布局。
我设法获取所有字段,偏移量,类型和大小。
仍然,当尝试重新生成该结构的代码时,我没有任何迹象表明它是否已标记为GCC的attribute((__packed__))
。
是否可以从可执行文件中获取此信息? (最好使用gdb-python,但其他任何方式也可以)
答案 0 :(得分:1)
有什么方法可以从可执行文件中获取此信息吗?
否,但是您应该可以通过简单的启发式推断出这一点:
sizeof(struct foo)
大于其成员字段大小的总和,则不打包该结构。sizeof(struct foo)
等于其成员字段大小的总和,则该结构将被 打包,或其成员自然对齐且没有孔,和包装无关紧要。