0

所以我用这种语法加载函数:

typedef void* (*unknownf)(
#ifdef __cplusplus
...
#endif
);
unknown funci=(unknownf*)GetProcAddress(dll, "SomeFunction");`

和这个数据

typedef void* (*unknownd);
conversiontype *some=(unknownd*)GetProcAddress(dll,"SomeData");

如何检查地址是否包含数据或函数?还能有什么?

编辑:请有一些编程方式如何检查它?

4

2 回答 2

0

查看指针指向的前几个字节。如果你看到这样的东西:

55 89 e5

(在 x86 上)或:

55 48 89 e5

(在 x86-64 上)

那么它可能是一个函数。

于 2013-03-18T21:21:16.443 回答
0

我找到了一种方法来检查 DLL 的 IMAGE_DOS_HEADER 中的 .data .edata .rdata 和 .reloc 部分,然后我尝试确定哪个部分是名称。

于 2013-04-27T20:52:19.403 回答