下面是一个简单的代码来伪造的进程名和CMDLINE在Linux上:有没有办法可以查看Linux上的真实进程cmdline?
#include
#include
#include
#include
#define NewName "bash"
#define ProcNameMaxLen 16
int main(int argc, char **argv){
int oldlen = strlen(*argv);
char procname[ProcNameMaxLen];
memset(*argv, 0, oldlen);
memccpy(*argv, NewName, 0, oldlen); //modify cmdline
memccpy(procname, NewName, 0, ProcNameMaxLen);
prctl(PR_SET_NAME, procname); //modify procname
sleep(60);
return 0;
}
运行此代码后,我无法用PS查看真实姓名,
但有些事可以找到在/ proc/XXX/exe和/ proc/xxx/environ,但非常麻烦。
有没有一种好的方法可以查看所有进程的真实信息?
我认为这是一个很大的安全问题,因为我通常在我的服务器上通过ps检查进程。
方式1:lsof的-d TXT
等待更多的答案...
2012-03-12
showns