用C语言查找结构中的元素

Kar*_*uru 0 c programming-languages structure reverse-engineering

是否可以确定库中结构(C语言)中的元素(名称和数据类型)?如果是的话,怎么用C语言呢?如果C语言不支持它,是否可以通过其他技巧获取结构元素或者是否有任何工具?

mgi*_*uca 5

您的意思是在编程时查找,还是在运行时动态查找?

对于前者,当然.只需找到您所包含的.h文件,您将在那里找到包含所有字段的结构定义.

对于后者,不,这是不可能的.C将结构编译为机器代码,使所有这些信息都丢失.例如,如果你有一个结构{int x, float y, int z},并且你有一些代码说明

a = mystruct.y
Run Code Online (Sandbox Code Playgroud)

在机器代码中,所有剩下的就像找到指针一样mystruct,向它添加4(int的大小),并从那里读取4个字节,然后对它进行一些浮点操作.这些结构字段的名称和类型都不可访问,因此,无法在运行时找到它们.