之前私信过您,今天又用了大佬了修改版,发现,我用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?搞不明白了。 
 
希望大佬能加上。 
 |