2011-01-25 69 views
0

我的意图是能够成功加载挂钩Windows API的.dll文件。我已经广泛地研究并尝试过任何可以在运行Windows 7的64位计算机上加载我的.dll文件的方法,但我没有成功。我尝试的两种解决方案包括将.dll的路径加载到注册表项中:如何在Windows 7上加载API?

电脑/ HKEY_LOCAL_MACHINE \ SOFTWARE \微软\ WindowsNT的\ CURRENTVERSION \的Windows \ AppInit_DLLs

电脑\ HKEY_LOCAL_MACHINE \ SOFTWARE \ Wow6432Node \微软\ WindowsNT的\ CURRENTVERSION \的Windows \ AppInit_DLLs

请不要让我误解,有许多在线资源解释如何l oad API到注册表,但他们都没有为我工作。我很抱歉如果这个问题的答案很明显,我已经尽力了。非常感谢时间和帮助!

回答

1

不要使用AppInit_DLLs机制,因为它是非常危险的,可能导致其他应用程序崩溃和装载机锁死锁(看看有什么伟大的Raymond Chen有就这个问题说)。如果你绝对肯定必须使用这种机制,那么你只能在 kernel32.dll中调用函数。根本没有运行时调用

更好的选择是寻找到使用detours

+0

Mandrill,非常感谢您的警告!我绝对不会再考虑这种方法了,我会查阅你的陈述,陈述雷蒙德不得不说的话。 – user515751 2011-01-25 15:55:15