Kar*_*uru 0 c programming-languages structure reverse-engineering
是否可以确定库中结构(C语言)中的元素(名称和数据类型)?如果是的话,怎么用C语言呢?如果C语言不支持它,是否可以通过其他技巧获取结构元素或者是否有任何工具?
您的意思是在编程时查找,还是在运行时动态查找?
对于前者,当然.只需找到您所包含的.h文件,您将在那里找到包含所有字段的结构定义.
对于后者,不,这是不可能的.C将结构编译为机器代码,使所有这些信息都丢失.例如,如果你有一个结构{int x, float y, int z}
,并且你有一些代码说明
a = mystruct.y
Run Code Online (Sandbox Code Playgroud)
在机器代码中,所有剩下的就像找到指针一样mystruct
,向它添加4(int的大小),并从那里读取4个字节,然后对它进行一些浮点操作.这些结构字段的名称和类型都不可访问,因此,无法在运行时找到它们.