我知道这类数据类型与不透明数据类型的观点背道而驰,但是为了逆向工程的目的,人们如何去研究不透明的数据类型呢?
发布于 2018-10-09 06:38:23
除非您已经有了源代码,否则在不了解特定系统上的底层表示的情况下,不可能“黑入”不透明类型。黑客攻击将涉及跟踪运行时对不透明指针的每次访问,并查看其去向,然后从那里开始猜测。
相反,你可以用谷歌( Google )来做例子,比如Github的glibc源代码。在stdio.h中,有一个条件类型胡枝子,它在内部头中指向__fpos_t或__fpos64_t:
typedef struct _G_fpos_t
{
__off_t __pos;
__mbstate_t __state;
} __fpos_t;typedef struct _G_fpos64_t
{
__off64_t __pos;
__mbstate_t __state;
} __fpos64_t;不是很令人兴奋,但您可以从那里继续跟踪这些不同的类型,看看它们到底是什么。整数和枚举很有可能。
发布于 2018-10-09 05:59:48
在VC++中,它被定义为
typedef __int64 fpos_t;这反过来又是
typedef long long fpos_t;如果您想知道它在程序集代码中的外观,那么只需编写一个示例程序,以调试模式运行它,并在调试时打开Disassembly Window以查看后面的代码。
https://stackoverflow.com/questions/52713957
复制相似问题