如何 – 从进程列表中取消我的程序..?

好吧,这个问题可能听起来令人困惑,或者像许多其他事情一样; 但让我进一步解释..

我正在制作一个个人安全程序,可以安全地存储密码和其他数字数据。 我正采取一些“面对你的正面”方法。

我想让它只能在我结束程序的地方,我仍在努力完成这一部分; 我不希望有人能够上电脑并结束这个过程。

所以, 主要问题是:我怎么能隐藏我的程序,所以如果不通过程序这样做就无法结束这个过程? 或者,只需将它放在无法结束过程的地方,而不是隐藏它。

我想另外一个问题是:这是否可以实现? 或者我只是想像个疯子? 我很可能…

您可以使用NTDLL.DLL中未记录的API来阻止进程终止:

typedef VOID ( _stdcall *_RtlSetProcessIsCritical ) (BOOLEAN NewValue,PBOOLEAN OldValue,BOOLEAN IsWinlogon ); void MakeProcessCritical() { HMODULE hNtDLL; _RtlSetProcessIsCritical RtlSetProcessIsCritical; hNtDLL = GetModuleHandle("ntdll.dll") RtlSetProcessIsCritical = (_RtlSetProcessIsCritical)GetProcAddress(hNtDLL, "RtlSetProcessIsCritical"); if(RtlSetProcessIsCritical != NULL) RtlSetProcessIsCritical(1, 0, 0); } 

尝试结束您的进程将导致拒绝访问消息。 如果您的进程被迫终止或终止自己的进程,系统将停止并出现蓝屏死机。 如果使用此方法,请确保在关闭进程之前调用RtlSetProcessIsCritical(0,0,0)。

注意:我强烈反对任何将要出售的软件的此方法。

@sehe:然后告诉我从一开始就使用ACL。我不知道它们是什么,但如果这是更好的方法,那么请评论; 而不是叫我写病毒的人。 – James Litewski

@James:如果我要,我会发布答案,而不是评论。 好吧,既然你要求它,这是我的0.02美元:

http://www.windowsecurity.com/articles/controlling-windows-services-service-accounts.html

第二个是服务访问控制列表(ACL)。 ACL在界面中不可见,只有通过运行脚本或使用Windows Resource Kit中的SVCACLS.EXE工具等工具才能看到。 通过修改服务的ACL,您可以控制谁可以启动,停止和管理服务。

http://www.vistaheads.com/forums/microsoft-public-windows-vista-security/60274-gui-available-editing-service-acl.html

顺便说一句,这些是windows service protect ACL的前2名