Tag: shell32

‘安全’DLL注入

抱歉,这不是一个非常好的问题。 我有一个程序需要在从资源管理器打开文件时发出警报(即调用ShellExecute(A / W))。 不幸的是,Microsoft删除了COM接口(IShellExecuteHook),它允许您在Vista中挂起这些事件,因为旧版代码可能会因更改而导致崩溃。 有一种解决方法可以重新启用此function,但它不再有效。 我做了一些研究,看起来捕获ShellExecute调用的唯一方法是将调用重新路由到shell32.dll。 目前,我正在考虑将自己的DLL注入到资源管理器进程中,然后将ShellExecute的IAT条目复制到我的DLL中的某些地址分配,最后修改ShellExecute的IAT条目以指向我的函数,该函数将通知打开文件并跳转到原始ShellExecute函数的程序,我们之前存储了它的地址。 我最关心的是防病毒。 他们会关心我注入探险家吗? 他们会关心我正在修改IAT吗? 另一个问题是这是否安全; 是否有可能(或者更可能)探险家的安全权限不允许通过CreateRemoteThread注入? 如果是这样,有没有更好的方法来进行这种注射? 有没有更好的方法来做到这一点? 编辑:对于将来遇到此问题的任何人,explorer.exe没有shell32.dll的IAT; 它有一个标题,但thunk充满了垃圾值,所以没有办法(据我所知)检索任何导入函数的条目。 看起来代码隧道是解决这个问题的唯一方法。