首页
社区
课程
招聘
[求助]TMD加壳DLL,LoadLibrary失败的问题。
发表于: 2019-1-20 19:59 7295

[求助]TMD加壳DLL,LoadLibrary失败的问题。

2019-1-20 19:59
7295
偶然发现经过TMD加过壳的DLL加载多次会出错,最后测试得出最多重复加载五十多次dllmain就会返回FALSE,GetLastError()错误编号1114,或者8.
写了个HelloWorld.dll,多余的什么代码都没写,就一个dllmain,有人知道是为什么吗?不加TMD壳重复加载多少个都没问题。

HelloWorld.dll 代码
#include <Windows.h>

BOOL WINAPI DllMain(HMODULE hModule, DWORD ul_reason_for_call, void* lpReserved)
{
	switch (ul_reason_for_call)
	{
	case DLL_PROCESS_ATTACH:
		break;

	case DLL_THREAD_ATTACH:
	case DLL_THREAD_DETACH:
	case DLL_PROCESS_DETACH:
		break;
	}

	return TRUE;
}

test.exe 代码
void main(void)
{
	int i;
	char file_name[MAX_PATH];

	for (i = 0; i < 70; i++)
	{
		sprintf_s(file_name, sizeof(file_name), "HelloWorldv%d.dll", i);
		CopyFileA("HelloWorldv.dll", file_name, FALSE);

		HMODULE hModule = LoadLibraryA(file_name);
		printf("[%d]%s, hModule:0x%08X, error:%d\n", i, file_name, hModule, GetLastError());
		if (hModule == NULL)
		{
			break;
		}

		Sleep(100);
	}
}



[注意]传递专业知识、拓宽行业人脉——看雪讲师团队等你加入!

最后于 2019-1-20 21:35 被月光阴影编辑 ,原因:
收藏
免费 0
支持
分享
最新回复 (5)
雪    币: 2345
活跃值: (3064)
能力值: ( LV3,RANK:20 )
在线值:
发帖
回帖
粉丝
2
C:\Users\administrator>net helpmsg 1114
动态链接库(DLL)初始化例程失败。
C:\Users\administrator>net helpmsg 8
内存资源不足,无法处理此命令。
2019-1-20 21:12
1
雪    币: 111
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
3
bjtwokeight C:\Users\administrator>net helpmsg 1114 动态链接库(DLL)初始化例程失败。 C:\Users\administrator>net helpms ...
不加TMD壳重复加载多少个都没问题。
2019-1-20 21:35
1
雪    币: 6132
活跃值: (2599)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
4
我也有 个TMD的dll直接第一次加载就会失败,getlasterr返回2,你敢信,不知道为什么
2019-1-21 08:08
1
雪    币: 111
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
5
wuzhouzcx 我也有 个TMD的dll直接第一次加载就会失败,getlasterr返回2,你敢信,不知道为什么
你这个可能真的就是路径写错了。
2019-1-21 16:22
1
雪    币: 6132
活跃值: (2599)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
6
月光阴影 你这个可能真的就是路径写错了。
真不是 第二天又好了 不知道为什么
2019-1-22 08:02
0
游客
登录 | 注册 方可回帖
返回
//