3389登录日志清除软件 's

admin 2017年4月10日04:42:48评论356 views字数 4358阅读14分31秒阅读模式
摘要

软件作者:pt007[at]vip.sina.com版权所有,转载请注明版权
信息来源:邪恶八进制信息安全团队(www.eviloctal.com)

软件作者:pt007[at]vip.sina.com版权所有,转载请注明版权
信息来源:邪恶八进制信息安全团队(www.eviloctal.com)

/*3389登录日志清除软件*/ #include <windows.h> #include <string.h> #include <stdio.h> #include <stdlib.h> void Usage(char *progname); void OpenKey(char *key); void DelKey(char *key,char *value); void QueryKey(char *key,char *value); void ValidateArgs(int argc, char **argv); int j=1;  int main(int argc, char** argv) {  //解析命令行输入: ValidateArgs(argc, argv);  return 0; }  //输出帮助的典型方法: void Usage (char *progname) { fprintf(stdout,"===============================================================================/n" "/t名称:3389登录日志清除软件/n" "/t作者:MSN:[email protected]/n" "/tQQ号:7491805/n" "/t声明:本软件由pt007原创,转载请注明出处,谢谢!/n" "/t举例:  clear3389 -h/n" "/t      /"clear3389 -h/" //帮助信息/n" "/t      /"clear3389 -a/" //显示本机3389所有登录记录/n" "/t      /"clear3389 -d MRU9/" //删除指定的3389登录记录/n" "===============================================================================/n"); exit(0); }  //解析命令行输入的典型方法: void ValidateArgs(int argc, char **argv) { //打开指定的注册表键: char *Key="Software//Microsoft//Terminal Server Client//Default"; char buff[100]={0}; int  i,i1,length; if(argc<2) { Usage(argv[0]); } for(i=1;i<argc;i++) { if ((argv[i][0] == '-') || (argv[i][0] == '/')) { switch (tolower(argv[i][1])) //转换成小写字母 { case 'd': //删除指定的3389登录记录 if (argc!=3) Usage(argv[0]); strcpy(buff,argv[2]); length = strlen(argv[2]); for (i1=0; i1<length; i1++) { buff[i1] = toupper(buff[i1]); } //printf("buff=%s/n",buff); QueryKey(Key,buff); exit(0); case 'h'://打印帮助 Usage(argv[0]); exit(0); case 'a': //显示本机3389所有登录记录 if (argc!=2) Usage(argv[0]); OpenKey(Key); exit(0); default: Usage(argv[0]); return; } }  } printf("继续.../n"); return; }  //下面是列出所有键值: void OpenKey(char *key) { HKEY hkey;//注册表键值的句柄 DWORD dwIndex=0,Index=0,lpcbname=1000,ret=0,Type=0,namesize=1500; char *T_name=(char *)malloc(1000); unsigned char *name=(unsigned char *)malloc(1500);//保存子键名的字符数组 int i=0;  //下面是字符数组清0: //ZeroMemory(Buffer,1000); //ZeroMemory(T_name,1000);  ret=RegOpenKeyEx(HKEY_CURRENT_USER, //根键名或已打开项的句柄 key,              //传递一个参数,欲打开的注册表项 0,                //未用,设为0即可 KEY_ALL_ACCESS,  //描述新键值安全性的访问掩码 //它们的组合描述了允许对这个项进行哪些操作 &hkey);          //装载上面打开项的句柄  //printf("ret=%x/n",ret);  if(ret!=ERROR_SUCCESS) { printf("RegOpenKeyEx error! %x/n",GetLastError()); return ; }  printf("/n(%d)本机的3389登录项目为:/n",j++); printf("key=HKEY_CURRENT_USER//%s/n",key); for(i=1;ret==ERROR_SUCCESS;i++,dwIndex++)//遍历子键中的每个值 { ret=RegEnumValue(hkey,dwIndex,T_name,&lpcbname, NULL,&Type,name,&namesize); //dwIndex:欲获取的子项的索引。第一个子项的索引编号为零 //T_name:用于装载指定索引处项名的一个缓冲区 //&lpcbname:指定一个变量,用于装载lpName缓冲区的实际长度(包括空字符)。 if(Type==REG_SZ) { printf("%d.数值名称:%s/n",i,T_name); printf("  数值键值:/"%s/"/n",name); printf("  数据类型:REG_SZ/n/n"); } if(Type==REG_DWORD) { printf("类型为REG_DWORD!/n"); } ZeroMemory(T_name,1000); lpcbname=1000;  ZeroMemory(name,1500); namesize=1500; }  RegCloseKey(hkey); //关闭注册键 free(T_name); free(name); }  //下面是查询指定的键值: void QueryKey(char *key,char *value) { HKEY hkey;//注册表键值的句柄 DWORD dwIndex=0,Index=0,lpcbname=1000,ret=0,Type=0,namesize=1500; char *T_name=(char *)malloc(1000); unsigned char *name=(unsigned char *)malloc(1500);//保存子键名的字符数组 int i=0,ret1=0;  //下面是字符数组清0: //ZeroMemory(Buffer,1000); //ZeroMemory(T_name,1000);  ret=RegOpenKeyEx(HKEY_CURRENT_USER, //根键名或已打开项的句柄 key,              //传递一个参数,欲打开的注册表项 0,                //未用,设为0即可 KEY_ALL_ACCESS,  //描述新键值安全性的访问掩码 //它们的组合描述了允许对这个项进行哪些操作 &hkey);          //装载上面打开项的句柄  //printf("ret=%x/n",ret);  if(ret!=ERROR_SUCCESS) { printf("RegOpenKeyEx error! %x/n",GetLastError()); return ; }  printf("/n(%d)本机的3389登录项目为:/n",j++); printf("key=HKEY_CURRENT_USER//%s/n",key); for(i=1;ret==ERROR_SUCCESS;i++,dwIndex++)//遍历子键中的每个值 { ret=RegEnumValue(hkey,dwIndex,T_name,&lpcbname, NULL,&Type,name,&namesize); //dwIndex:欲获取的子项的索引。第一个子项的索引编号为零 //T_name:用于装载指定索引处项名的一个缓冲区 //&lpcbname:指定一个变量,用于装载lpName缓冲区的实际长度(包括空字符)  if(stricmp(T_name,value)==0){ if(Type==REG_SZ) { printf("%d.数值名称:%s/n",i,T_name); printf("  数值键值:/"%s/"/n",name); printf("  数据类型:REG_SZ/n/n"); ret1=1; DelKey(key,value); } if(Type==REG_DWORD) { printf("类型为REG_DWORD!/n"); } } ZeroMemory(T_name,1000); lpcbname=1000;  ZeroMemory(name,1500); namesize=1500;  } if(!ret1) { printf("/n注意:数值名称%s不存在,请重新输入,注意大小写!/n",value); } RegCloseKey(hkey); //关闭注册键 free(T_name); free(name); }  //下面是删除指定的键值: void DelKey(char *key,char *value) { HKEY hkey; DWORD ret; ret=RegOpenKeyEx(HKEY_CURRENT_USER, //根键名或已打开项的句柄 key,              //传递一个参数,欲打开的注册表项 0,                //未用,设为0即可 KEY_ALL_ACCESS,  //描述新键值安全性的访问掩码 //它们的组合描述了允许对这个项进行哪些操作 &hkey);          //装载上面打开项的句柄 if(ret!=ERROR_SUCCESS) { printf("RegOpenKeyEx error! %x/n",GetLastError()); return ; }  ret=RegDeleteValue(hkey, value); if(ret!=ERROR_SUCCESS) { printf("RegDeleteValue %s error! %x/n",value,GetLastError()); return ; }  printf("RegDeleteValue %s success!/n",value); RegCloseKey(hkey);  }

下载:clear3389.rar

免责声明:文章中涉及的程序(方法)可能带有攻击性,仅供安全研究与教学之用,读者将其信息做其他用途,由读者承担全部法律及连带责任,本站不承担任何法律及连带责任;如有问题可邮件联系(建议使用企业邮箱或有效邮箱,避免邮件被拦截,联系方式见首页),望知悉。
  • 左青龙
  • 微信扫一扫
  • weinxin
  • 右白虎
  • 微信扫一扫
  • weinxin
admin
  • 本文由 发表于 2017年4月10日04:42:48
  • 转载请保留本文链接(CN-SEC中文网:感谢原作者辛苦付出):
                   3389登录日志清除软件 'shttps://cn-sec.com/archives/46483.html
                  免责声明:文章中涉及的程序(方法)可能带有攻击性,仅供安全研究与教学之用,读者将其信息做其他用途,由读者承担全部法律及连带责任,本站不承担任何法律及连带责任;如有问题可邮件联系(建议使用企业邮箱或有效邮箱,避免邮件被拦截,联系方式见首页),望知悉.

发表评论

匿名网友 填写信息