首页
社区
课程
招聘
[求助]加载dll除了LoadLibrary还有其他方法?
发表于: 2013-5-16 19:40 7231

[求助]加载dll除了LoadLibrary还有其他方法?

2013-5-16 19:40
7231
我尝试hook 游戏的CEGUI模块,也就是CEGUIBase.dll.
具体流程是:创建游戏进程->暂停掉(CREATE_SUSPENDED)->远程注入myDll->恢复主线程
其中myDLL具体干的就是hook LoadLibraryA 和 LoadLibraryW

int WINAPI DllMain( HINSTANCE hDllHandle, DWORD dwReason, LPVOID lpreserved )
{
	switch(dwReason)
	{
	case DLL_PROCESS_ATTACH:
		OutputDebugString("attached.");
		CreateThread(NULL,0,(LPTHREAD_START_ROUTINE)threadHook,NULL,NULL,NULL);
		break;
	case DLL_PROCESS_DETACH:
		OutputDebugString("detached..");
		break;
	case DLL_THREAD_ATTACH:
	case DLL_THREAD_DETACH:
		break;
	}

	return TRUE;
}


hook后只是输出下加载的dll名字
HMODULE WINAPI newLoadLibrary(LPCTSTR lpFileName)
{

	OutputDebugString(lpFileName);
	return oloadLibrary(lpFileName);
}


结果dbgView能看到大部分加载的dll,但就是没有 CEGUIBase.dll。。奇怪,我试下其他sample demo 也看不到CEGUIBase.dll的加载时机。。
但程序明明加载了这个dll,请问它是怎样加载的,什么时候加载的,够郁闷的

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

收藏
免费 0
支持
分享
最新回复 (10)
雪    币: 183
活跃值: (1223)
能力值: ( LV3,RANK:30 )
在线值:
发帖
回帖
粉丝
2
试下createfile的断点呢
2013-5-16 19:48
0
雪    币: 8835
活跃值: (2404)
能力值: ( LV12,RANK:760 )
在线值:
发帖
回帖
粉丝
3
基础知识:导入表的DLL加载时间比你想象的早~~
2013-5-16 20:52
0
雪    币: 220
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
4
看了一楼的建议,把CreateFileW hook掉,还是没发现CEGUIBase.dll。。


但奇怪的是,我CreateProcess并且暂停,查看了下进程,CEGUIBase.dll还没加载呢。。
2013-5-16 21:10
0
雪    币: 1042
活跃值: (500)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
5
静态链接的DLL好像不会经过API? 印象中是的。
2013-5-16 21:44
0
雪    币: 8
活跃值: (33)
能力值: ( LV3,RANK:20 )
在线值:
发帖
回帖
粉丝
6
V神 回答的字字珠玑

程序导入表在程序主线程跑起来之前就加载完了
2013-5-16 22:28
0
雪    币: 53
活跃值: (528)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
7
LdrLoadDll
2013-5-20 12:56
0
雪    币: 261
活跃值: (547)
能力值: ( LV4,RANK:50 )
在线值:
发帖
回帖
粉丝
8
初始化列表加载顺序啦。。_LDR
2013-5-24 00:23
0
雪    币: 101
活跃值: (43)
能力值: ( LV4,RANK:50 )
在线值:
发帖
回帖
粉丝
9
loadlibraryex
LdrLoadDll
甚至可以createfile/createfilemapping读到内存里手动展开dll环境
2013-5-24 08:06
0
雪    币: 155
活跃值: (20)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
10
解决你的问题的简单方法:扔掉你那见鬼的mydll.dll,直接在进程创建前父进程通过VirtualAlloc/WriteProcessMemory hook NtMapViewOfSection(包括shell code)

这种技术甚至可以拦截ntdll/kernel32/user32的加载
2013-5-24 11:47
0
雪    币: 220
活跃值: (117)
能力值: ( LV4,RANK:50 )
在线值:
发帖
回帖
粉丝
11
膜拜蛇叔

刚看了下 加载的时候 ,倒入表的东西就一起加载进去了.
那时候主线程都还没启来
2013-6-2 12:53
0
游客
登录 | 注册 方可回帖
返回
//