社区
进程/线程/DLL
帖子详情
如何判断一个进程是不是系统进程?(不通过文件名)
yangsiwei
2004-07-27 10:13:02
进程ID都知道的.
...全文
362
7
打赏
收藏
如何判断一个进程是不是系统进程?(不通过文件名)
进程ID都知道的.
复制链接
扫一扫
分享
转发到动态
举报
写回复
配置赞助广告
用AI写文章
7 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
DentistryDoctor
2004-07-31
打赏
举报
回复
...
if(OpenProcessToken(hProcess,TOKEN_ALL_ACCESS,&hToken))
...
系统进程使用OpenProcessToken一般会失败。
也可以判断进程的父(祖先)进程的进程ID,系统进程一般是由(或者间接的)System Idle Process创建的,此进程的ID为0
NowCan
2004-07-31
打赏
举报
回复
这个说法不完全,System Idle Process的直接子进程是System进程,其ID为4(XP)或8(2000)。System的直接子进程才是他说的那些系统进程。更重要的是,系统进程如何定义?
tabris17
2004-07-31
打赏
举报
回复
引用:
======================================================================
系统进程一般是由(或者间接的)System Idle Process创建的,此进程的ID为0
======================================================================
那来的这种说法?
kvw3000
2004-07-30
打赏
举报
回复
今天有点累了,你看看先,不清楚明天继续
BOOL GetImageName(char* szImageName)
{
BOOL bResult;
DWORD dwTotal;
HANDLE hProcessSnap;
PROCESSENTRY32 ProcessEntry32;
dwTotal = 0;
bResult = TRUE;
hProcessSnap = NULL;
DebugPrivilege(TRUE);
hProcessSnap = CreateToolhelp32Snapshot(TH32CS_SNAPPROCESS,0);
if(hProcessSnap == INVALID_HANDLE_VALUE)
{
printf("CreateToolhelp32Snapshot for Process Error: %d\n",GetLastError());
bResult = FALSE;
}
ProcessEntry32.dwSize = sizeof(PROCESSENTRY32);
if(Process32First(hProcessSnap,&ProcessEntry32))
{
do
{
if(ProcessEntry32.th32ProcessID == 0)
{
continue;
}
else
{
strcpy(szImageName, ProcessEntry32.szExeFile); /***get the image name of process*/
}
}
while(Process32Next(hProcessSnap,&ProcessEntry32));
}
else
{
sprintf(szTempBuf, "ProcessEntry32First Error: %d",GetLastError());
AfxMessageBox(szTempBuf);
bResult = FALSE;
}
CloseHandle(hProcessSnap);
DebugPrivilege(FALSE);
return bResult;
}
BOOL DebugPrivilege(BOOL bEnable)
{
BOOL bResult = TRUE;
HANDLE hToken;
TOKEN_PRIVILEGES TokenPrivileges;
if(OpenProcessToken(GetCurrentProcess(),TOKEN_QUERY | TOKEN_ADJUST_PRIVILEGES,&hToken) == 0)
{
printf("OpenProcessToken Error: %d\n",GetLastError());
bResult = FALSE;
}
TokenPrivileges.PrivilegeCount = 1;
TokenPrivileges.Privileges[0].Attributes = bEnable ? SE_PRIVILEGE_ENABLED : 0;
LookupPrivilegeValue(NULL,SE_DEBUG_NAME,&TokenPrivileges.Privileges[0].Luid);
AdjustTokenPrivileges(hToken,FALSE,&TokenPrivileges,sizeof(TOKEN_PRIVILEGES),NULL,NULL);
if(GetLastError() != ERROR_SUCCESS)
{
bResult = FALSE;
}
CloseHandle(hToken);
return bResult;
}
yelling
2004-07-27
打赏
举报
回复
也不一定,你可以查一下你用的操作系统的进程说明,网上很多的,还有专门的书
yhqs540
2004-07-27
打赏
举报
回复
得到安全结构,SYSTEM创建的就是
syy64
2004-07-27
打赏
举报
回复
关注;
呀 信 誉 值比较低呀。
计算机操作
系统
实验之模拟
进程
管理(C语言)
利用C语言模拟实现操作
系统
中的
进程
管理
PsGetProcessImageFileName获取
进程
图像
文件名
结果不完整的问题
然而,有时候我们可能会遇到PsGetProcessImageFileName获取结果不完整的问题,即返回的
文件名
不完整或不正确。希望这篇文章对你有帮助!然而,根据微软官方文档的说明,PsGetProcessImageFileName函数仅返回
文件名
的一部分,而不是完整的路径。为了解决PsGetProcessImageFileName获取结果不完整的问题,我们可以使用其他的方法来获取完整的图像文件路径和
文件名
。这样,我们就可以使用上述示例代码来获取
进程
的完整图像文件路径和
文件名
,而不仅仅是
文件名
的一部分。
操作
系统
—
进程
控制实验
文章目录1.关于实验前环境准备2.关于可能用到的命令3.关于makefile4.关于实验说明5.关于实验指导的程序6.关于独立实验Q(跪求大佬解答)? 1.关于实验前环境准备 要准备好C语言的编译环境,安装方法为sudo apt-get install gcc 相信大家编译环境都已经准备好了,这里因为已经安装好了,就不重复安装了,有问题百度上面也有详细的解决方案~ 2.关于可能用到的命令 sudo 表示 “superuser do”,它允许已验证的用户以其他用户的身份来运行命令。 用法: sudo
操作
系统
层面来看
文件名
是不是
文件的一部分
问题答案
文件名
是不是
文件的元数据?Linux:❌ 否(存在父目录中)Windows NTFS:✅ 是(存在 MFT 中)
文件名
是否与元数据有关?✅强相关—— 它是连接用户可见名称与
系统
内部文件身份(inode/MFT)的桥梁修改
文件名
会改文件元数据吗?❌不会改文件自身的元数据(inode 不变),但会改父目录的元数据能否没有
文件名
?✅ 可以!
Windows使用
进程
监视器查看
进程
读写的
文件名
进程
监视器(Process Monitor)是用于Windows的高级监视工具,用于显示实时文件
系统
、注册表和
进程
/线程活动。
进程
监视器包括强大的监视和筛选功能,包括: 为操作输入和输出参数捕获的更多数据 使用非破坏性筛选器可以设置筛选器而不丢失数据 捕获每个操作的线程堆栈使得在许多情况下能够识别操作的根本原因 可靠捕获
进程
详细信息,包括映像路径、命令行、用户和会话 ID 任何事件属性的可配置和可移动列 可以为任何数据字段设置筛选器,包括未配置为列的字段 高级日志记录体系结构可扩展到数千万
进程/线程/DLL
15,465
社区成员
49,169
社区内容
发帖
与我相关
我的任务
进程/线程/DLL
VC/MFC 进程/线程/DLL
复制链接
扫一扫
分享
社区描述
VC/MFC 进程/线程/DLL
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章