如何 – 从进程列表中取消我的程序..?
好吧,这个问题可能听起来令人困惑,或者像许多其他事情一样; 但让我进一步解释..
我正在制作一个个人安全程序,可以安全地存储密码和其他数字数据。 我正采取一些“面对你的正面”方法。
我想让它只能在我结束程序的地方,我仍在努力完成这一部分; 我不希望有人能够上电脑并结束这个过程。
所以, 主要问题是:我怎么能隐藏我的程序,所以如果不通过程序这样做就无法结束这个过程? 或者,只需将它放在无法结束过程的地方,而不是隐藏它。
我想另外一个问题是:这是否可以实现? 或者我只是想像个疯子? 我很可能…
您可以使用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,您可以控制谁可以启动,停止和管理服务。
顺便说一句,这些是windows service protect ACL
的前2名