之前私信过您,今天又用了大佬了修改版,发现,我用winmm.dll做劫持时。
[C++] 纯文本查看 复制代码 BOOL WINAPI Load()
{
TCHAR tzPath[MAX_PATH];
TCHAR tzTemp[MAX_PATH * 2];
//
// 这里是否从系统目录或当前目录加载原始DLL
//
//GetModuleFileName(NULL,tzPath,MAX_PATH); //获取本目录下的
//PathRemoveFileSpec(tzPath);
GetSystemDirectory(tzPath, MAX_PATH); //默认获取系统目录的
lstrcat(tzPath, TEXT("\\"));
g_OldModule = LoadLibrary(tzPath);
if (g_OldModule == NULL)
{
wsprintf(tzTemp, TEXT("无法找到模块 %s,程序无法正常运行"), tzPath);
MessageBox(NULL, tzTemp, TEXT("AheadLibEx"), MB_ICONSTOP);
}
return (g_OldModule != NULL);
}
很明显:lstrcat(tzPath, TEXT("\\"));这一句不对吧,应该是lstrcat(tzPath, TEXT("\\winmm.dll"));
如果我是生成version.dll
那么这句应该是lstrcat(tzPath, TEXT("\\version.dll"));
就是智能判断要生成哪个名称的dll,代码自动生成时,就自动加上。或是在lstrcat(tzPath, TEXT("\\"));下面加lstrcat(tzPath, TEXT("xxx.dll"));
具体是哪个DLL,就把xxx.dll改成哪个DLL。大佬故意没有写,让代码编写者自己写,还是忘了?又或是软件BUG?搞不明白了。
希望大佬能加上。
|