不是一个十分好的问题,对不起。

予有需要时将文件从浏览器打开以被警告的程序(即ShellExecute的(A / W)被调用)。

不幸的是,微软删除了COM接口(IShellExecuteHook),它允许你勾在Vista这些事件和起来,恐怕是因为旧的代码,可能导致崩溃,由于变化。有一个变通方法来重新启用此功能,但它不再工作。

我做了一些研究,它看起来像赶调用的唯一方式ShellExecute的是重新将呼叫路由到SHELL32.DLL。此刻,我看着注入我自己的DLL到explorer进程,然后在我的DLL复制到一些地址分配IAT条目的ShellExecute,最后修改IAT条目的ShellExecute指向我的功能,它会通知一个文件被打开,并跳转到原来的ShellExecute函数的程序,其地址我们先前储存。

我在这里最关心的是防病毒软件。他们会关心我正在注入的探险家?他们会关心我是修改IAT?

的另一个关注是,这是否是安全的;是否有可能(或很有可能发生的)对Explorer的安全权限来不允许注射用CreateRemoteThread?如果是这样,有没有更好的办法做到这一点注射?

有没有更好的办法,一般要做到这一点?

编辑:任何人谁在将来遇到此,Explorer.exe的没有IAT的shell32.dll中;它有一个头,但thunk是垃圾满值的,所以也没有办法(据我可以告诉)来检索任何导入函数的入口。 结果,看起来像代码隧道是勾此的唯一方式。

有帮助吗?

解决方案

最优秀的杀毒启发式应导入表补丁拿起作为一个木马红旗。

有关madcodehook在线文档对各种代码注入技术,其优点/缺点一些扩展条款,以及API提供了一些选项来指定“安全”挂钩: http://www.madshi.net/madCodeHookDescription.htm

其他提示

在绕行库:

http://research.microsoft.com/en-us/projects/弯路/

从微软研究院允许的功能的任意钩。你可能会给予一个镜头。

在API钩子的一些更多的资源:

易于钩: http://www.codeplex.com/easyhook

Deviare: http://www.nektra.com/products/ deviare-API钩子窗口/

这是有趣的讯息: http://www.codeproject.com/KB/system /hooksys.aspx

在做API挂钩是为了评估非常重要,其中环境中,您需要运行。 不是所有的库支持例如86/64。

的Detours只支持在许可(所许)版本64。 容易钩支持x86和x64。

Windows资源管理器在Windows Vista和Windows 7甚至不调用ShellExecuteA或ShellExecuteW。

没有点麻烦。洛尔: - )

和,如果我可以增加,我已通过用两个32位和64位内嵌钩子钩住两个功能测试。

对不起。洛尔: - )

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top