隐藏正在运行的程序的所有跟踪

时间:2015-01-16 03:10:20

标签: c# windows winapi

所以这个问题很有意思,我想。在我失去任何人的注意力之前,或者他们开始​​用指责将他们的手指推到我的脸上:不,我没有制造或试图制造病毒。我实际上对游戏有一个非常好的主意。这个游戏有点像一个令人毛骨悚然的意大利面(http://en.wikipedia.org/wiki/Creepypasta),因为它将模仿“闹鬼游戏”的理想。这款游戏一经推出,将在最终“崩溃”回桌面之前播放几秒钟。正是在这个时候,我想隐藏它存在的所有痕迹(它仍然在后台运行),以便我可以继续游戏的第2阶段。在这个阶段,我将随机控制一个控制台窗口,或以任意/随机的间隔播放令人毛骨悚然的声音效果。游戏将随机打开,好像它也有自己的想法,但每次发生时游戏都会有所不同。

我想完全隐藏任务管理器中的游戏。所以这个窗口:enter image description here

无论用户选择哪个标签,都不会显示该程序。我希望游戏能够变成鬼魂。我计划使用的编程语言是C#,对于图形库,OpenTK(这与这个问题无关,但我想确保尽可能多地放置信息)。

有人有什么想法吗?哦,我还应该提一下,我对.NET framework / api非常流利,我可以手工构建任何Windows窗体应用程序(不使用编辑器)。

更新

我只想到了隐藏它的有趣替代方案。答案:让程序变得更聪明。将程序发送到桌面,然后监听任务管理器的打开。如果它打开,我的程序立即关闭任务管理器,游戏响应一些超级令人毛骨悚然的东西,“但我以为你想跟我玩?你为什么要杀我?”在控制台中。听起来太酷了。洛尔。

1 个答案:

答案 0 :(得分:1)

我不是专家,但我认为大多数处理流程隐藏的技术都使用CreateRemoteThread http://msdn.microsoft.com/en-us/library/windows/desktop/ms682437(v=vs.85).aspx

要做到这一点非常困难,但有关于它的maaany博客,例如:
http://resources.infosecinstitute.com/using-createremotethread-for-dll-injection-on-windows/

这可以通过选择一些已经运行的受害者进程来工作,比如说svchost.exe并将你的线程添加到此中。

同样在谈到svchost时,你也可以非常合法地注册服务并由这个Windows进程托管,你的客户可以通过调用列表命令来看到正在运行的游戏:

 tasklist /svc /fi "imagename eq svchost.exe"

或:
http://www.howtogeek.com/80082/svchost-viewer-shows-exactly-what-each-svchost-exe-instance-is-doing/

这比直接显示为任务更隐蔽,同时比CreateRemoteThread对用户更轻柔。此外,更容易出现崩溃,而且反病毒通常会挂钩CreateRemoteThread来阻止对它的调用。