首页
社区
课程
招聘
[求助]钩子程序退出后导致被挂钩的程序崩溃
发表于: 2012-9-7 11:13 6313

[求助]钩子程序退出后导致被挂钩的程序崩溃

2012-9-7 11:13
6313
我做了一个简单钩子程序,进行API Hook,目的是替换qqmusic.exe的DirectSoundCreate8。
当钩子程序运行的时候,qqmusic.exe运行正常,但是当钩子程序退出后,qqmusic.exe运行一会就出现崩溃了。

我在qqmusic.exe被挂钩的时候,将 DirectSoundCreate8 的函数地址替换成我自己写的
fakeDirectSoundCreate8,并把原始地址保存成 origDirectSoundCreate8。
当钩子程序退出后,会触发qqmusic.exe将钩子dll卸载,这时我将  DirectSoundCreate8 的函数地址还原成origDirectSoundCreate8。

请问,是什么原因导致钩子程序退出后,被挂钩的程序运行崩溃的呢?应该如何解决这个问题?

thx in advance.

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

收藏
免费 0
支持
分享
最新回复 (3)
雪    币: 213
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
2
用WINDBG抓个DUMP看看..
2012-9-7 11:47
0
雪    币: 211
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
3
qqmusic.exe crash时的错误提示

异常类型: EXCEPTION_ACCESS_VIOLATION
异常地址: 0x5FE81B18
异常码:0xC0000005
异常原因: 对 0x5FE81B18 地址进行 Read 操作

以下是我进行 EAT hook 替换的地址
orig是原来函数的地址,fake是我写的替换函数的地址

orig:[0x60ac1f6f], fake[0x5fe813bb]
vtbl:60A933F0, addr:60A9341C, orig:[0x60a936cd], fake[0x5fe810e1]
vtbl:60A933F0, addr:60A93428, orig:[0x60acbf5a], fake[0x5fe819bf]
vtbl:60A933F0, addr:60A9343C, orig:[0x60a9378d], fake[0x5fe81b4a]

==============
另外有堆栈信息,和上面不是一次收集的

堆栈信息:
-----------------------------------
0x5FCF1B27 Error:0x0000007E <unknown module>: [0,178716240,0,1796326193]
0x05330000[71741] Program Files (x86)\Tencent\QQMusic\QQMediaPlayer.dll: DllGetClassObject[88228768,0,65552,0]
0x05330000[71840] Program Files (x86)\Tencent\QQMusic\QQMediaPlayer.dll: DllGetClassObject[65552,0,184974624,4608]
0x05330000[3D769] Program Files (x86)\Tencent\QQMusic\QQMediaPlayer.dll: [7142120,184974624,4608,116]
0x05330000[1CCBB] Program Files (x86)\Tencent\QQMusic\QQMediaPlayer.dll: [99471736,144570008,87351876,144570008]
0x05330000[1DB19] Program Files (x86)\Tencent\QQMusic\QQMediaPlayer.dll: [0,1986934391,99471736,178716628]
0x72DD0000[2A47] Windows\WinSxS\x86_microsoft.vc80.crt_1fc8b3b9a1e18e3b_8.0.50727.6195_none_d09154e044272b9a\MSVCR80.dll: endthreadex[99471736,2093709558,0,0]
0x77400000[39F42] Windows\SysWOW64\ntdll.dll: RtlInitializeExceptionChain[1927096801,99471736,0,0]
0x77400000[39F15] Windows\SysWOW64\ntdll.dll: RtlInitializeExceptionChain[1927096801,99471736,0,0]
2012-9-7 11:55
0
雪    币: 290
活跃值: (127)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
4
DLL启动的线程没关?
2012-9-7 12:00
0
游客
登录 | 注册 方可回帖
返回
//