[root@dabu.info ~]#su dabu #切换到dabu这个账号 [dabu@dabu.info ~]$cd ~ #切换到dabu的home目录 [dabu@dabu.info ~]$ touch pwhide.c #创建 pwhide.c文件 [dabu@dabu.info ~]$ls
#include <stdio.h>
#include <unistd.h> /* unix类系统定义符号常量的头文件*/
#include <string.h> /* 字符数组的函数定义的头文件*/
#include <sys/types.h> /* Unix/Linux系统的基本系统数据类型的头文件*/
int main(int argc, char *argv[]) /*形参argc指命令行中参数的个数(包括执行文件本身)。形参argv是一个纸箱字符串的指针数组*/
{
int i = 0;
pid_t mypid = getpid(); /*获得该程序运行时候的pid*/
if (argc == 1) /*如果argc参数个数等于1,按要求,应该argc要为2才行*/
return 1; /*异常退出*/
printf("argc = %d and arguments are:\n", argc); /*打印argc参数个数*/
for (i ; i < argc ; i++) /*打印i序号,以及对应的argv数组指针元素*/
printf("%d = %s\n" ,i, argv[i]); /*打印i序号,以及对应的argv数组指针元素*/
printf("Replacing first argument with x:es... Now open another terminal and run: ps p %d\n", (int)mypid); /*打印该字符串和该程序是的pid*/
fflush(stdout); //*清空缓冲区,并打印其内容*/
memset(argv[1], 'x', strlen(argv[1])); /*注意,这里是本文的重点和关键点。(原文http://www.dabu.info/?p=5150)就是利用memset(void *s, int c, size_t n)函数用x来覆盖密码的每个字符*。你也可以将x替换为 a ,然后重新编译运行,再ps看看有什么不同/
getc(stdin); /* 等待并获取键盘输入,其实这里主要的作用是保持该c程序在 运行状态,这样才能通过ps 查看pid来观察密码是否被隐藏 。所以在这个函数运行后,不能再有任何的键盘操作 */
return 0; /* 正常退出 */
#include <stdio.h>
#include <unistd.h> /* unix类系统定义符号常量的头文件*/
#include <string.h> /* 字符数组的函数定义的头文件*/
#include <sys/types.h> /* Unix/Linux系统的基本系统数据类型的头文件*/
int main(int argc, char *argv[]) /*形参argc指命令行中参数的个数(包括执行文件本身)。形参argv是一个纸箱字符串的指针数组*/
{
int i = 0;
pid_t mypid = getpid(); /*获得该程序运行时候的pid*/
if (argc == 1) /*如果argc参数个数等于1,按要求,应该argc要为2才行*/
return 1; /*异常退出*/
printf("argc = %d and arguments are:\n", argc); /*打印argc参数个数*/
for (i ; i < argc ; i++) /*打印i序号,以及对应的argv数组指针元素*/
printf("%d = %s\n" ,i, argv[i]); /*打印i序号,以及对应的argv数组指针元素*/
printf("Replacing first argument with x:es... Now open another terminal and run: ps p %d\n", (int)mypid); /*打印该字符串和该程序是的pid*/
fflush(stdout); //*清空缓冲区,并打印其内容*/
memset(argv[1], 'x', strlen(argv[1])); /*注意,这里是本文的重点和关键点。(原文http://www.dabu.info/?p=5150)就是利用memset(void *s, int c, size_t n)函数用x来覆盖密码的每个字符*。你也可以将x替换为 a ,然后重新编译运行,再ps看看有什么不同/
getc(stdin); /* 等待并获取键盘输入,其实这里主要的作用是保持该c程序在 运行状态,这样才能通过ps 查看pid来观察密码是否被隐藏 。所以在这个函数运行后,不能再有任何的键盘操作 */
return 0; /* 正常退出 */
}
[dabu@dabu.info ~]$ gcc -o hide pwhide.c #编译后的文件叫 hide [dabu@dabu.info ~]$ ls
[dabu@dabu.info ~]$ ./hide dabu.info //dabu.info作为参数(其实就是密码) 进行测试 显示: argc = 2 and arguments are: 0 = ./hide 1 = dabu.info Replacing first argument with x:es... Now open another terminal and run: ps p 15585
[root@dabu.info ~]#ps p 15585 #就是运行 ./hide dabu.info后,得到的该程序的pid 显示: PID TTY STAT TIME COMMAND 15585 pts/0 S+ 0:00 ./hide xxxxxxxxx //dabu.info 共有9个字符,所以这里就显示9个x
机械节能产品生产企业官网模板...
大气智能家居家具装修装饰类企业通用网站模板...
礼品公司网站模板
宽屏简约大气婚纱摄影影楼模板...
蓝白WAP手机综合医院类整站源码(独立后台)...苏ICP备2024110244号-2 苏公网安备32050702011978号 增值电信业务经营许可证编号:苏B2-20251499 | Copyright 2018 - 2025 源码网商城 (www.ymwmall.com) 版权所有