我写了一个方案,在用户迅速指挥时立即追踪和杀人(如果可能的话,可以进行管制)。 这样做是为了阻止用户控制我所没有的指挥。
我已撰写成文,在启动程序时,使用QueryFullProcessImageName检查其名称。 问题是,如果有人要重新命名指挥,那么我再也无法通过程序名称发现。 目前,我发现指挥力的方法是“弹.”,但显然并非安全。
下面是我对守则的内容。 我删除了所有对简便的错误检查。 让我知道,你是否需要更加清晰。 感谢!
TCHAR exeName[MAX_PATH];
DWORD exeNameSize = MAX_PATH;
//the pid comes into the function as a parameter
HANDLE handle = OpenProcess(PROCESS_QUERY_LIMITED_INFORMATION, 0, pid);
if (handle)
{
if (QueryFullProcessImageName(handle, 0, exeName, &exeNameSize))
{
tstring name = exeName;
/*
badProcs would contain the path identifiers such as
"\cmd.exe" or "\regedit.exe". This detection is
what I want to make better.
*/
for(int i=0; i < badProcs.size(); i++)
{
if(tstring::npos != name.find(badProcs.at(i)))
{
if(TerminateProcess(handle,0))
OutputDebugString(_T("Process should be dead
"));
}
}
}
CloseHandle(handle);
}
一些补充资料: 我撰写的理由是要控制其他桌面上的内容。 我想使之成为这样的话:当用户发射一个不同的台式台时(通过任何专利程序),我能够控制他们是否能够进入给系统带来最大安全漏洞的项目。 鉴于我只想控制其他台式的行动,我不想改变环境,因为担心目标台外的腐败数据。 腐败不是令人担心的吗?
I m only interested in controlling a proprietary desktop, not mucking with what users do in their own space. Essentially the separate desktop is for corporate work, and I want to be able to limit what people can do with company information, etc.