-
-
[求助]求解导出表函数个数的问题
-
发表于:
2017-6-19 18:24
2651
-
导出表结构:
typedef struct _IMAGE_EXPORT_DIRECTORY {
DWORD Characteristics;
DWORD TimeDateStamp;
WORD MajorVersion;
WORD MinorVersion;
DWORD Name;
DWORD Base;
DWORD NumberOfFunctions;
DWORD NumberOfNames;
DWORD AddressOfFunctions; // RVA from base of image
DWORD AddressOfNames; // RVA from base of image
DWORD AddressOfNameOrdinals; // RVA from base of image
} IMAGE_EXPORT_DIRECTORY, *PIMAGE_EXPORT_DIRECTORY;
我想用for循环遍历得出AddressOfFunctions表中所有函数的地址,但发现不知道表里有多少个函数,请教论坛的各位大神有什么方法能得出真实的导出函数个数?
以下是我已经测试过的方法:(如有错误请大家多多指教)
1.AddressOfNameOrdinals
经过测试,NumberOfFunctions 的值是根据AddressOfNameOrdinals的最高序号减去最低序号+1得出,所以当自定义序号的时候NumberOfFunctions的值就不再可靠。
2.NumberOfNames
因为函数的名词可以隐藏,所以NumberOfNames也不能作为导出函数的个数参考。
3.全零结构
听QQ群里的朋友说,遍历时候遇到全零结构意味AddressOfFunctions表结束了,经过测试发现最后一个函数地址后面并没有全零结构,后面依然有数据。

[培训]科锐逆向工程师培训第53期2025年7月8日开班!