HMODULE GetModuleHandleA(
[in, optional] LPCSTR lpModuleName
);
获取指定模块的句柄
FARPROC GetProcAddress(
[in] HMODULE hModule,
[in] LPCSTR lpProcName
);
从指定的动态链接库 (DLL) 检索导出函数 (也称为过程) 或变量。
例如:我想导出NtSetInformationFile
函数
sub_1400016B3(const CHAR *a1)
{
HMODULE ModuleHandleA; // rax
ModuleHandleA = GetModuleHandleA("ntdll");
return GetProcAddress(ModuleHandleA, a1);
}
int main
{
v17 = sub_1400016B3("NtSetInformationFile");
v14 = v17(hObject, 参数1, 参数2, 参数3, 参数4);
}
其中NtSetInformationFile
函数
//把文件挂上删除队列
ntAux = pfNtSetInformationFile(hTargetFile, &stIOStatus, &stFileInfo, sizeof(stFileInfo), FILE_INFORMATION_CLASS::FileDispositionInformation);