注意事项1
在编写dll部分时,为了方便执行dll,我写了一个程序快速执行dll
HMODULE dllname = LoadLibraryA("dll.dll");
if (!dllname) {
printf("dllname don't exitsts!\n");
return 0;
}
ReflectiveLoaderFunc myfuc = (ReflectiveLoaderFunc)GetProcAddress(dllname, "ReflectiveLoader");
myfuc();
然而这样的程序在反射式dll处理重定位表时会出大问题:
• 通过 LoadLibrary
加载的DLL已被系统修改(重定位+导入表处理),.reloc
节可能被丢弃或擦写。