首页
社区
课程
招聘
[求助]LoadLibrary失败
发表于: 2012-9-14 12:05 5291

[求助]LoadLibrary失败

2012-9-14 12:05
5291
使用CreateProcess创建一个挂起进程,然后注入自己的代码,使用LoadLibrary加载dll,结果失败.
这个方法参照的是网上的帖子http://blog.csdn.net/fun0526/article/details/5785210.
DLL是MFC 动态dll,我用OD加载它,可以成功.然后自己写个mfc对话框直接用LoadLibrary加载,提示Mod not find.奇怪了,这个路径绝对没问题,名字和路径都换过,还是不行(比如"C:\\1.dll")
自己有点想不通,还请高手指点

附dll编译选项:
/nologo /MD /W3 /GX /Zd /O2 /D "WIN32" /D "NDEBUG" /D "_WINDOWS" /D "_WINDLL" /D "_AFXDLL" /D "_MBCS" /D "_USRDLL" /Fr"Release/" /Fo"Release/" /Fd"Release/" /FD /c

[培训]内核驱动高级班,冲击BAT一流互联网大厂工作,每周日13:00-18:00直播授课

收藏
免费 0
支持
分享
最新回复 (3)
雪    币: 126
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
2
使用下面的LoadLibraryEx可以成功
HMODULE hmod = LoadLibraryEx("C:\\MyDll.dll", NULL, DONT_RESOLVE_DLL_REFERENCES )
看了下MSDN:
DONT_RESOLVE_DLL_REFERENCES  If this value is used, and the executable module is a DLL, the system does not call DllMain for process and thread initialization and termination. Also, the system does not load additional executable modules that are referenced by the specified module.
If this value is not used, and the executable module is a DLL, the system calls DllMain for process and thread initialization and termination. The system loads additional executable modules that are referenced by the specified module.
也就是说不会执行dll入口函数,LoadLibrary会在哪个环节出错呢?
边思考边等高手...
2012-9-14 13:45
0
雪    币: 126
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
3
找到原因:
见http://blog.csdn.net/ymt/article/details/4706935
感谢该博主
在此演了把自问自答,呵呵,结贴 结贴
2012-9-14 17:02
0
雪    币: 126
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
4
顺便补充下我的解决方法,不是帖子里面的方法,更简单,但前提是所有自己的dll要在一个目录下:
LoadLibraryEx("C:\\MyDll.dll", NULL, LOAD_WITH_ALTERED_SEARCH_PATH);
2012-9-14 17:28
0
游客
登录 | 注册 方可回帖
返回
//