windows - metro 应用程序 DLL 注入(inject)背后的真相,Nektra vs Komodia

标签 windows microsoft-metro dll-injection

Komodia说:

DLL injection is not possible with Modern UI on Windows 8,It is possible to inject DLLs into Metro apps, BUT, you will not be able to redirect Winsock traffic to localhost.

换句话说,Windows Metro 应用程序在沙盒环境中工作,无法进行 DLL 注入(inject)。

让我们看看是什么Nektra说:

We realized we needed to sign our DLL with a cross-certificate, like those used to sign kernel-mode drivers. We already had a method for injecting a DLL in WinRT applications: copy the DLL file inside the System32 folder and voilá!

如您所见,Komodia 和 Nektra 说了一个相互矛盾的信息,我的问题是在 Windows 8 下 DLL 注入(inject)背后的真正原因是什么,我可以像 Nektra 所说的那样像往常一样(NT,win9x)将我的代码注入(inject)到 metro 应用程序中吗?

最佳答案

我是 Nektra 文章的作者。当我们想要向 Windows 8 附带的有限 Metro Mail 应用程序添加更多功能时,我们开始了这项研究。

虽然这个过程与桌面应用程序不完全相同,因为通常 metro 应用程序是挂起的,但我们 Hook 了第一个 DCOM 服务。

当 DCOM 服务启动 Metro Mail 应用程序时,此时我们使用众所周知的方法 CreateRemoteThread/LoadLibrary 调用注入(inject) dll。

在最初的测试中,我们尝试注入(inject)一个位于同一文件夹中的 dll,我们的测试位于同一文件夹中,并发现,如果 dll 位于 system32 中,则它可以正常加载。

稍后我们会做进一步的研究,看看如果 dll 不在 system32 文件夹中,为什么没有加载。

关于 hooking winsock,我们没有测试,但我认为它应该是可能的,因为至少在台式机上,在 metro 后面有众所周知的 dll(kernel32、user32 等),我们在没有的情况下 hook 了一些 api问题。

关于windows - metro 应用程序 DLL 注入(inject)背后的真相,Nektra vs Komodia,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16269624/

相关文章:

windows - 警告 : [minor] The ExtractEmbedded option may find more tags in the movie data

c++ - 读取数据 RS232 无需轮询

windows-8 - Windows 8 Metro 应用离线下载

javascript - Windows 8 Metro 设置弹出窗口似乎无法在 Javascript 中使用?

c# - 使用C#和EasyHook在DX11游戏(CryEngine)中绘制叠加图

c# - DLL 注入(inject)不断失败并出现不一致的错误

windows - Windows命令行中的mget命令 FTP客户端不下载文件

windows - 各种操作系统中存储的上下文菜单信息在哪里?

user-controls - 依赖属性 - 成员无法识别或无法访问

c++ - 如何劫持DLL来锁定Windows中的所有目录来验证