首页
社区
课程
招聘
[原创]线程初始化过程 PK 加载DLL过程(详细)
2014-3-20 11:51 24987

[原创]线程初始化过程 PK 加载DLL过程(详细)

2014-3-20 11:51
24987
收藏
点赞1
打赏
分享
最新回复 (41)
雪    币: 1
活跃值: (11)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
宝宝的xql 2014-3-24 15:26
26
0
"但是代码太风骚了,可以做手脚↓↓↓"

我觉得LZ也很风骚...
雪    币: 3
活跃值: (52)
能力值: ( LV3,RANK:30 )
在线值:
发帖
回帖
粉丝
kickwindbg 2014-3-25 11:28
27
0
你玩的那个exe呢,能share下看看吗,Drop Split
雪    币: 3
活跃值: (52)
能力值: ( LV3,RANK:30 )
在线值:
发帖
回帖
粉丝
kickwindbg 2014-3-25 11:29
28
0
你玩的那个exe呢 ,能share下看看吗
雪    币: 74
活跃值: (518)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
wodexinren 2014-3-25 22:58
29
0
膜拜学习
雪    币: 655
活跃值: (454)
能力值: ( LV9,RANK:210 )
在线值:
发帖
回帖
粉丝
organic 3 2014-3-26 15:54
30
0
createthread不可用?Dll中创建窗口就得用这个
雪    币: 90
活跃值: (80)
能力值: ( LV3,RANK:20 )
在线值:
发帖
回帖
粉丝
hulucc 2014-3-26 15:57
31
0
硬要用也能用起来,会遇到些奇怪的问题,所以不理解为什么
雪    币: 655
活跃值: (454)
能力值: ( LV9,RANK:210 )
在线值:
发帖
回帖
粉丝
organic 3 2014-3-26 18:05
32
0
网上标准的代码,不创建线程如何建窗口,我都当模板用了,没见出过问题
雪    币: 281
活跃值: (28)
能力值: ( LV4,RANK:50 )
在线值:
发帖
回帖
粉丝
aiwuxian 1 2014-3-26 18:22
33
0
可以用,我说的是dllmain不返回的使用情况  
雪    币: 149
活跃值: (1998)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
saloyun 2014-3-26 22:46
34
0
还是不理解为什么大部分情况下,在dllmain里面LoadLibrary是没问题的,只有很少的时候会出问题。
雪    币: 149
活跃值: (1998)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
saloyun 2014-3-26 23:00
35
0
楼主能帮我解释一下,有时在DllMain里面LoadLibrary卡死,到底是什么原因导致的,可不可以规避掉??
雪    币: 219
活跃值: (738)
能力值: (RANK:290 )
在线值:
发帖
回帖
粉丝
viphack 4 2014-3-28 00:31
36
0
TDL3
雪    币: 281
活跃值: (28)
能力值: ( LV4,RANK:50 )
在线值:
发帖
回帖
粉丝
aiwuxian 1 2014-3-28 00:38
37
0
被发现了 tdss
雪    币: 51
活跃值: (48)
能力值: ( LV3,RANK:20 )
在线值:
发帖
回帖
粉丝
gudujsk 2014-3-30 21:23
38
0
mark下,风骚的飘过~~~~
雪    币: 77
活跃值: (48)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
cqzj70 2014-3-31 16:24
39
0
mark
雪    币: 185
活跃值: (81)
能力值: ( LV4,RANK:50 )
在线值:
发帖
回帖
粉丝
irp 1 2014-4-13 17:47
40
0
进入DllMain已经得到LdrLoaderLock了,所以表面上LoadLibrary是不会有问题的,因为LoadLibrary可以得到这个锁。但是被加载的库可能会引起其他的线程竞争这个锁,会引起死锁。DllMain里面调用任何API都要了解这个API的行为,否则都是危险的。有个例子,比如当前线程在COM STA (SINGLE THREAD APARTMENT), DllMain里面创建一个CoCreateInstance一个MTA的COM, COM DLL会被另外一个线程加载,也进入LoadLibrary,在MTA线程获得LdrLoaderLock之前,当前STA线程的CoCreateInstance不会返回,所以死锁了。

这里有篇非常详细的文档:
http://msdn.microsoft.com/en-us/library/windows/desktop/dn633971%28v=vs.85%29.aspx
雪    币: 256
活跃值: (26)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
Hoogle 2014-6-30 18:07
41
0
搞定了。。。
雪    币: 41
活跃值: (24)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
FindCall 2015-3-3 07:55
42
0
mark 回头慢慢看
游客
登录 | 注册 方可回帖
返回