所以我用这种语法加载函数:
typedef void* (*unknownf)(
#ifdef __cplusplus
...
#endif
);
unknown funci=(unknownf*)GetProcAddress(dll, "SomeFunction");`
以及此
的数据typedef void* (*unknownd);
conversiontype *some=(unknownd*)GetProcAddress(dll,"SomeData");
如何检查地址是否包含数据或功能?还有什么可以吗?
编辑:请问有一些程序化的方法来检查吗?
答案 0 :(得分:0)
查看指针指向的前几个字节。如果你看到这样的话:
55 89 e5
(在x86上)或:
55 48 89 e5
(在x86-64上)
然后它可能是一个功能。
答案 1 :(得分:0)
我找到了一种方法来检查DLL的IMAGE_DOS_HEADER以获取.data .edata .rdata和.reloc部分,然后我尝试确定哪个部分是名称。