找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索
查看: 6282|回复: 1
打印 上一主题 下一主题
收起左侧

C语言练习作品(加锁程序1.0)

[复制链接]
跳转到指定楼层
楼主
ID:71922 发表于 2015-1-11 01:08 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
本帖最后由 liuyuxi 于 2015-1-11 01:13 编辑

增加了隐私隐藏功能~~~
修正了  清除加锁配置后 程序会变成未注册的BUG~~
软件界面:

源代码:

  1. ==========================================================================

  2. #include<stdio.h>/*加载包含基本输入输出函数头文件*/
  3. #include<stdlib.h>/*加载标准函数库头文件*/
  4. #include<string.h>
  5. #include<windows.h>

  6. int i=3,a=0,d=0;/*声明全局变量*/
  7. int h=5;/*设定功能选择*/
  8. int y=4;
  9. /*原型函数声明*/
  10. int xieru();
  11. int yanzhen();
  12. int zhu();
  13. int tishi();
  14. int yizhuce();
  15. int jiamiweizhuce();
  16. int jiamiyizhuce();
  17. int jiemiweizhuce();
  18. int jiemiyizhuce();
  19. int u();
  20. int autoo();
  21. int dell();
  22. int yc();
  23. /************************作者声明*****************************/
  24. int xs()
  25. {
  26.           printf("\n********************************************************************");
  27.        printf("\n   此程序为C语言编写,编译器为:DEV-C++ 4.9.9.2 多国语言版");
  28.    printf("\n\n   愿结交对C语言深感兴趣并研究过C语言的朋友\n   若有任何建议或愿共同探讨请联系QQ:1007566569\n   加密方面,采用垃圾算法,纯属做练习,各位不必当真。\n");
  29.   
  30.    printf("\n********************************************************************\n");
  31.   
  32.    printf("\n作品名称:加锁程序(版本:2.0)\n\n作品目的:增加对条件指令、循环指令的了解并熟悉自定义函数、调用函数的方法、文件            处理指令,以及DOS命令\n\n作品功能:a:实现注册验证及对数字进行加密、解密功能\n          b:了解加入开机启动项的方法和利用文件处理知识..实现移动设备对电脑进行加          锁功能~~~~还加了个隐私隐藏功能呢!\n\n作品改进:利用软件爆破原理改进了程序输入正确序列号重启后仍需再次输入序列号的缺陷          根据木马自释放原理,增加了U盘加锁功能(O(∩_∩)O可以当恶作剧玩哦!)\n\n作品缺陷:程序判断用户的选择只能用数字否则出错(尝试用过char类型),只能加密\n          9位数字否则不能正确解密(或许与类型溢出有关),以上原因尚不明确!\n");
  33.       printf("\n********************************************************************\n");
  34.     return 0;
  35.     }
  36. int aac()
  37. {
  38.      printf("\n\n   O(∩_∩)O哈哈~,请选择所需要的功能:\n\n 【1】:加密(目前只支持9位任意数字)\n\n 【2】:解密(只对本程序加密的密文有效)\n\n 【3】: 用可移动磁盘(如U盘)加锁计算机(需注册用户)\n\n 【4】: 隐私隐藏功能(能把任何文件格式隐藏到任何文件里(需注册用户))\n\n 【5】:注册\n\n 【0】:退出\n\n  ");
  39.     return 0;
  40.     }
  41. int aac1()
  42.     {
  43.         system("cls");
  44.          printf("\n\n   O(∩_∩)O哈哈~,不能乱选哦,请再次认真选择所需要的功能:\n\n 【1】:加密(目前只支持9位任意数字)\n\n 【2】:解密(只对本程序加密的密文有效)\n\n 【3】: 用可移动磁盘(如U盘)加锁计算机(需注册用户)\n\n 【4】: 隐私隐藏功能(能把任何文件格式隐藏到任何文件里(需注册用户))\n\n 【5】:注册\n\n 【0】:退出\n\n  ");
  45.         return 0;
  46.         }
  47. int aas()
  48. {
  49.     printf("\n\n   O(∩_∩)O哈哈~,请选择所需要的功能:\n\n 【1】:加密(目前只支持9位任意数字)\n\n 【2】:解密(只对本程序加密的密文有效)\n\n 【3】: 用可移动磁盘(如U盘)加锁计算机\n\n 【4】: 隐私隐藏功能(能把任何文件格式隐藏到任何文件里)\n\n 【0】:退出\n\n  ");
  50.     return 0;
  51.     }
  52.     int aas1()
  53.     {
  54.         system("cls");
  55.         printf("\n\n   O(∩_∩)O哈哈~,不能乱选哦,请再次认真选择所需要的功能:\n\n 【1】:加密(目前只支持9位任意数字)\n\n 【2】:解密(只对本程序加密的密文有效)\n\n 【3】: 用可移动磁盘(如U盘)加锁计算机\n\n 【4】: 隐私隐藏功能(能把任何文件格式隐藏到任何文件里)\n\n 【0】:退出\n\n  ");
  56.     return 0;
  57.         }
  58. /************************作者声明*****************************/
  59. int main()/*声明主函数,每个C程序必须具备的*/
  60. {
  61.     system("COLOR 0a");
  62.     system("title 欢迎使用由【笨笨♂猪】设计的程序~~");
  63. printf("\n\t                    聊聊\n\n\t   ↖(^ω^)↗哈哈,一个月嘞,在惠州实践了\n\t22天,╮(╯▽╰)╭~~当普工简直是堕落,本\n\t来满满的自信和积极的上进心,在那不过几天,\n\t就差点全被侵蚀掉了..真恐怖!还好那些管理\n\t员蛮不错,就是有些员工超猥琐的!也有些员\n\t工很黄很暴力⊙﹏⊙b汗..更离谱的是居然调\n\t戏女学生..吖的,超想买块豆腐砸死他们!! \n\t(#‵′)靠~..\n\t  笨笨猪,谢谢你!谢谢你在我最失落时给我\n\t动力,给我信心!让我的C再次突破!我们是最\n\t棒的↖(^ω^)↗!呵呵~本次灵感来自软件爆破\n\t原理,利用此原理可以改进重启程序后需要再\n\t次输入序列号的缺陷。还有个缺陷是只能加解\n\t密9位数字,我觉得应该是产生溢出了吧,郁闷~~\n\t这次加上了比较实用的功能=》用U盘给电脑加锁..\n\t以及文件隐藏~~~\n\n\n\n");
  64. system("pause");/*程序挂起*/
  65. system("cls");
  66. yanzhen();
  67. }
  68. /***************************************主调代码*******************************************/
  69. int zhu()/*自定义zhu函数*/
  70.     {
  71.     int a,i=3;/*声明整数变量a、i,并把赋值3给i*/
  72. xs();
  73.       system("pause");
  74.       system("cls");
  75.      aac();

  76.    scanf("%d",&a);/*读取用户所输入的选项并赋值给变量a*/

  77. while(a>h)/*设定循环条件,达到输入错误选项即可循环执行确认选择功能指令*/
  78. {
  79.           aac1();
  80.    scanf("%d",&a);/*读取用户所输入的选项并赋值给变量a*/
  81.            }
  82. switch(a)/*判断语句,在c++称为开关语句*/
  83. {
  84. case 1:/*若a等于1则运行下面代码*/
  85.    printf("\n   (*^__^*) 欢迎使用本加密程序【注:试用版只能使用三次】\n");/*显示说明*/
  86.    printf("请输入序列号:\n\n  ");/*显示说明*/
  87.    scanf("%d",&a);/*读取用户所输入的序列号并赋值给变量a*/
  88.   if(a!=1007566569)/*若用户所输入的序列号不等于1007566569则执行下面的指令,否则跳过下面的指令*/

  89. jiamiweizhuce();/*调用jiamiweizhuce函数*/

  90.   else/*若等于1007566569则运行下面指令*/
  91. {
  92. xieru();
  93.   jiamiyizhuce();/*调用jiamiyizhuce函数*/
  94. }
  95. break;/*跳出判断语句避免“失败经过”*/
  96. case 2:/*如果a等于2则运行下面代码*/
  97.    printf("\n   (*^__^*) 欢迎使用本解密程序【注:试用版只能使用三次】\n");/*显示说明*/
  98.    printf("请输入序列号:\n\n  ");/*显示说明*/
  99.    scanf("%d",&a);/*读取用户所输入的序列号并赋值给变量a*/
  100.   if(a!=1007566569)/*若用户所输入的序列号不等于1007566569则执行下面的指令,否则跳过下面的指令*/
  101.   jiemiweizhuce();/*调用jiemiweizhuce代码*/
  102.   else/*若等于1007566569则运行下面指令*/
  103. {
  104. xieru();
  105. jiemiyizhuce();/*调用jiemiyizhuce函数*/
  106. }
  107. break;/*跳出判断语句避免“失败经过”*/
  108. case 3:
  109. case 4:
  110.      printf("\n\a\a对不起!您是未注册用户...\n\a");
  111.      system("pause");
  112.      zhu();
  113. case 5:
  114.      for(;;)
  115.      {
  116.      printf("请输入序列号:");
  117.      scanf("%d",&i);
  118.      if(i!=1007566569)
  119.      {
  120.      printf("\n晕~~请再到我空间看清源代码~~\n\n\a");
  121.      continue;
  122.      }
  123.      else{
  124.      xieru();
  125.      printf("\n\n\aO(∩_∩)O~~注册成功咯!哈~~~\n\n");
  126.      system("pause");
  127.      yanzhen();
  128.      }
  129.      }
  130.      
  131. case 0:/*若a等于0则运行下面代码*/
  132. exit(0);/*退出程序*/
  133. break;/*跳出判断语句避免“失败经过”*/
  134. }
  135. }

  136. int tishi()/*自定义tishi函数*/
  137. {
  138.     int q;/*声明变量*/
  139.     printf("\n\a\a\a   ╮(╯▽╰)╭对不起,您使用的次数已达到试用版的上限!\n\n"); /*警告用户*/
  140. printf("\n\n\nO(∩_∩)O哈哈~,告诉你一个秘密哈,若想再次使用可以再次运行本程序,照样\n还可以使用三次。不过,如果你这样做的话,也只能说明你笨╮(╯▽╰)╭\n\n\n");/*幽默一下哈↖(^ω^)↗*/
  141. printf("\n返回主菜单请输入数字【3】,退出请输入任意数字\n\n  ");/*提示*/
  142. scanf("%d",&q);/*读取用户所输入数值并存入变量q*/
  143. if(q==3)/*若变量d等于3则运行以下代码,否则省略本段代码*/
  144. zhu();
  145. else/*若不等于则运行下面代码即退出,达到按任意数字键退出的目的*/
  146. exit(0);/*退出程序*/
  147. }
  148. int yizhuce()/*自定义yizhuce函数*//*此函数已去除验证序列号的功能*/
  149.     {
  150.     int a;/*声明整数变量a、i,并把赋值3给i*/
  151. xs();
  152.       system("pause");
  153.       system("cls");
  154.    
  155.    aas();
  156.    scanf("%d",&a);/*读取用户所输入的选项并赋值给变量a*/

  157. while(a>y)/*设定循环条件,达到输入错误选项即可循环执行确认选择功能指令*/
  158. {
  159.            aas1();
  160.    scanf("%d",&a);/*读取用户所输入的选项并赋值给变量a*/
  161.            }
  162. switch(a)/*判断语句,在c++称为开关语句*/
  163. {
  164. case 1:/*若a等于1则运行下面代码*/
  165. jiamiyizhuce();/*调用jiamiyizhuce函数*/
  166. break;/*跳出条件语句避免“失败经过”*/
  167. case 2:/*若a等于2则运行下面代码*/
  168. jiemiyizhuce();/*调用jiemiyizhuce函数*/
  169. break;/*跳出条件语句避免“失败经过”*/
  170. case 3:
  171. u();
  172. yanzhen();
  173. case 4:
  174. yc();
  175. yanzhen();
  176. case 0:/*若a等于0则运行下面代码*/
  177. exit(0);/*退出程序*/
  178. break;/*跳出条件语句避免“失败经过”*/
  179. }
  180. }
  181. /*************************主调用代码**************************/

  182. /*******************************功能实现代码**********************************/

  183. /******************************加密功能代码************************************************/
  184. int jiamiweizhuce()/*声明自定义jiamiweizhuce函数(未注册限制使用)同时声明变量*/
  185. {
  186. /*以下为未注册限制代码↓↓*/
  187.     while(i!=0)/*循环语句,设定条件为3次,由声明变量时确定,达到三次后跳出循环停止运行算法*/
  188.    {
  189.     printf("\n请输入一组需加密的数字【未注册】\n\n  ");/*显示说明*/
  190.     scanf("%d",&a);/*读取用户所输入的数值并赋值给变量a*/
  191.     a=a+100000;/*进行加密算法↓↓*/
  192.     a=a+100009;
  193.     a=a+100052;
  194.     a=a+100878;
  195.     a=a+108546;
  196.     a=a+113545;
  197.     a=a+314123;/*进行加密算法↑↑*/
  198.     i--;/*运行算法一次则i减1,达到三次后满足循环条件即运行3次算法,则i=3-3=0*/
  199.     printf("\n\n~\a\(≧▽≦)/~恭喜,已完成加密!密文为:【%d】(还有【%d】次使用权)\n\n",a,i);/*算法完成输出密文并提醒使用次数*/
  200.     printf("\n返回主菜单请输入数字【3】,继续加密请输入任意数字\n\n  ");/*提示*/
  201.     scanf("%d",&d);/*读取用户所输入的数值并存入变量d*/
  202.     if(d==3)/*若变量d等于3则强制跳出循环*/
  203.     break;/*强制跳出循环*/
  204. }
  205. if(d==3)/*若变量d等于3则运行以下代码,否则省略本段代码*/
  206. zhu();
  207. tishi();
  208. }
  209. int jiamiyizhuce()/*声明自定义jiamiyizhuce函数(已注册无限制使用)*/
  210. {
  211.      /*以下为已注册无限制代码↓↓*/
  212.     for(;;)/*循环语句,不设定条件,可无限次运行算法指令*/
  213.    {
  214.     printf("\n请输入一组需加密的数字【已注册,可无限使用】\n\n  ");/*显示说明*/
  215.     scanf("%d",&a);/*读取用户所输入的数值并赋值给变量a*/
  216.     a=a+100000;/*进行加密算法↓↓*/
  217.     a=a+100009;
  218.     a=a+100052;
  219.     a=a+100878;
  220.     a=a+108546;
  221.     a=a+113545;
  222.     a=a+314123;/*进行加密算法↑↑*/
  223.     printf("\n\n\a~\(≧▽≦)/~恭喜,已完成加密!密文为:【%d】\n\n",a);/*算法完成,输出密文*/
  224.     printf("\n返回主菜单请输入数字【3】,继续加密请输入任意数字\n\n  ");/*提示*/
  225.     scanf("%d",&d);/*读取用户所输入的数值并存入变量d*/
  226.     if(d==3)/*若变量d等于3则强制跳出循环*/
  227.     break; /*强制跳出循环*/
  228. }
  229. if(d==3)/*若变量d等于3则运行以下代码,否则省略本段代码*/
  230. yizhuce();
  231. }
  232. /******************************加密功能代码************************************************/

  233. /******************************解密功能代码************************************************/
  234.     int jiemiweizhuce()/*声明解密未注册(限制使用)函数*/
  235. {
  236.       /*以下为未注册限制代码↓↓*/
  237.     while(i!=0)/*循环语句,设定条件为3次,达到三次后跳出循环语句即i等于3*/
  238.    {
  239.     printf("\n请输入一组需解密的数字【未注册】\n\n  ");/*显示说明*/
  240.     scanf("%d",&a);/*读取用户所输入的数值并赋值给变量a*/
  241.     a=a-100000;/*逆行执行加密算法↓↓*/
  242.     a=a-100009;
  243.     a=a-100052;
  244.     a=a-100878;
  245.     a=a-108546;
  246.     a=a-113545;
  247.     a=a-314123;/*逆行执行加密算法↑↑*/
  248.     i--;/*运行算法一次则i加1,达到三次后满足循环条件*/
  249.     printf("\n\a   ~\(≧▽≦)/~恭喜,已完成解密!密码为:【%d】(还有【%d】次使用权)\n\n",a,i);/*算法完成输出真实密码*/
  250.        printf("\n返回主菜单请输入数字【3】,继续解密请输入任意数字\n\n  ");/*提示*/
  251.     scanf("%d",&d);/*读取用户所输入的数值并存入变量d*/
  252.     if(d==3)/*若变量d等于3则强制跳出循环*/
  253.     break;/*强制跳出循环*/
  254. }
  255. if(d==3)/*若变量d等于3则运行以下代码,否则省略本段代码*/
  256. zhu();
  257. tishi();
  258. }
  259.     int jiemiyizhuce()/*声明解密已注册(解除限制)函数*/
  260.     {
  261.              /*以下为已注册无限制代码↓↓*/
  262.     for(;;)/*循环语句,不设定条件*/
  263.    {
  264.     printf("\n请输入一组需解密的数字【已注册,可无限使用】\n\n  ");/*显示说明*/
  265.     scanf("%d",&a);/*读取用户所输入的数值并赋值给变量a*/
  266.     a=a-100000;/*逆行执行加密算法↓↓*/
  267.     a=a-100009;
  268.     a=a-100052;
  269.     a=a-100878;
  270.     a=a-108546;
  271.     a=a-113545;
  272.     a=a-314123;/*逆行执行加密算法↑↑*/
  273.     printf("\n\n\a   ~\(≧▽≦)/~恭喜,已完成解密!密码为:【%d】\n\n",a);/*算法完成输出真实密码*/
  274.     printf("\n返回主菜单请输入数字【3】,继续解密请输入任意数字\n\n  ");/*提示*/
  275.     scanf("%d",&d);/*读取用户所输入的数值并存入变量d*/
  276.     if(d==3)/*若变量d等于3则强制跳出循环*/
  277.     break; /*强制跳出循环*/
  278. }
  279. if(d==3)/*若变量d等于3则运行以下代码,否则省略本段代码*/
  280. yizhuce();
  281.     }
  282. /******************************解密功能代码************************************************/

  283. /******************************U盘加锁代码************************************************/
  284. int u()
  285. {
  286.     system("cls");
  287.     FILE *p;
  288.     char pan[2]={0},password[50]={0},pd[]={"if not exist "},fu[]={":\\"},exi[]={" shutdown.exe -s -t "},ok[50],k[100],j[60];
  289.     printf("\n\n\t【1】为计算机加锁\n\n\t【2】清除加锁功能\n\n\t【3】返回\n\n\t");
  290.     scanf("%d",&i);
  291.     if(i==1)
  292.     {
  293. system("cls");
  294.     printf("\n\n\t原理:每次开机都会检测所指定的磁盘里的文件名(所以要设定开机启动项),如果\n\t有则为合法用户,可正常使用计算机。没有则视为\"小偷\"开机后由您指定的时间(秒\t)关机~");
  295.     printf("所指定的文件名可以自定,程序会在该可移动磁盘中创建一个由你指定的文         件名的文件\n");
  296.     printf("\n\t注意,此程序检测文件名,并不检测里面的内容..如果您输入的为te12.txt 那么         只要您指定的磁盘根目录有文件是此文件名即可当成为开机密钥\n\t(这意味着磁盘里的每一个文件都可当成开机密钥,增强隐蔽性),所以你可以在tr12         .txt里面加上一些内容加以掩饰\n\n");

  297.     printf("\n\t请确定是否已插入可移动磁盘~~~~\n");
  298.     system("pause");
  299.     text:
  300.     printf("\n\n请输入可移动磁盘盘符(输入字母即可,如输入g):");
  301.     scanf("%s",pan);
  302.     printf("\n\n请设定程序需检测认证可移动磁盘根目录上的文件名(也可以自定文件名):");
  303.     scanf("%s",password);
  304. /****************检测是否有该文件存在*******************/
  305.     strcpy(ok,pan);
  306.     strcat(ok,fu);
  307.     strcat(ok,password);
  308.    if((p=fopen(ok,"r"))==NULL)
  309. {
  310. printf("\n\n╮(╯_╰)╭检测可移动磁盘无您指定的文件名,程序将自动创建此文件\n");
  311. p=fopen(ok,"w");
  312. if((p=fopen(ok,"r"))==NULL)
  313. {
  314. printf("\n\n╮(╯_╰)╭无法写入..请确定可移动磁盘是否被设为写保护或接口接触不良..\n\n");
  315. printf("\n\n重新配置请输入1,返回输入0,任意输入则退出");
  316. scanf("%d",&i);
  317. if(i==1)
  318. goto text;
  319. else if(i==0)
  320. return 0;
  321. else
  322. exit(0);
  323. }
  324. else
  325. printf("\n\n\\(^o^)/~文件创建成功...");

  326. }
  327. /*检测是否有该文件存在*/
  328.     printf("\n\n请设定无此密码文件时登陆系统后关机时间(秒)(建议输入0,即开机后立即关机):");
  329.     scanf("%s",j);
  330.     strcpy(k,pd);
  331.     strcat(k,pan);
  332.     strcat(k,fu);
  333.     strcat(k,password);
  334.     strcat(k,exi);
  335.     strcat(k,j);
  336. if((p=fopen("C:\\WINDOWS\\love.bat","w"))==NULL)
  337. {
  338. printf("\n\n\a对不起,可能因为系统盘被写保护,无法写入配置文件....\n");
  339. system("pause");
  340. }
  341. else
  342. {
  343. fprintf(p,k);
  344. fclose(p);
  345. system("attrib +s +r +h +a %systemroot%\\love.bat");
  346. printf("\n\n即将设为开机启动项..安全防护软件可能会提示请按同意..\n");
  347. system("pause");
  348. autoo();
  349. printf("\n\n已设置完成..重启后立即生效~\n");
  350. }

  351. system("pause");
  352. system("cls");
  353. return 0;
  354. }
  355. else if(i==2)
  356. dell();
  357. else if(i==3)
  358. yanzhen();
  359. else
  360. exit(0);
  361. }


  362.      

  363. /******************************U盘加锁代码************************************************/

  364. /***************************隐私隐藏功能***********************/
  365. int yc()
  366. {
  367.     system("cls");
  368.     printf("\n\n  由于我对DOS命令不太熟悉..所以操作会有点繁.请按提示操作吧~(*^__^*) 嘻嘻……\n");
  369.     system("pause");
  370.     a:
  371.     printf("\n【1】先把要隐藏的文件压缩为RAR格式(最好就加个密码)并改名为“隐藏掉”\n");
  372.     system("pause");
  373.     printf("\n【2】然后把掩饰要隐藏文件的文件改名为“掩饰它”(建议图片格式!)\n");
  374.     system("pause");
  375.     printf("\n【3】再把这两个放到D盘根目录。即直接丢进D盘,不要放在D盘的任何文件夹里!!\n");
  376.     system("pause");
  377.     printf("\n【4】你确定做好以上的步骤了吗?返回输入1,继续输入0\n");
  378.     scanf("%d",&i);
  379.     if(i==1)
  380.     goto a;
  381.     else
  382.     {
  383.     system("copy /b d:掩饰它.????+d:要隐藏的.rar d:成功隐藏.????");
  384.     printf("\n\n若出现“已复制    1个文件”则成功隐藏了该文件,同时会在D盘下生成一个名叫\n“成功隐藏”的文件,然后再它命名为你喜欢的名字;若出现“已复制   0个文件”\n则该文件没被隐藏,原因可能是你没按照上面所指示的步骤去做~\n请输入1返回;\输入2返回主菜单~~;输入0退出\n");
  385.     scanf("%d",&i);
  386.     if(i==1)
  387.     goto a;
  388.     else if(i==2)
  389.     yanzhen();
  390.     else
  391.     exit(0);
  392.      }
  393.     }
  394. /***************************隐私隐藏功能***********************/
  395.    
  396. /*******************************功能实现代码**********************************/

  397. /***************************注册信息保存代码************************/
  398. int xieru()
  399. {
  400. FILE *fptr;
  401. char name[20]={"\\(^o^)/~,成功咯~"};
  402. if((fptr=fopen("C:\\WINDOWS\\system32\\爱梦想.love","w"))==NULL)
  403. {
  404. printf("\n\t晕啊~注册信息保存失败..是不是装了什么磁盘保护软件呢?或者中病毒?\n");
  405. system("pause");
  406. }
  407. else
  408. {
  409. fprintf(fptr,name);
  410. fclose(fptr);
  411. system("attrib +s +r +h +a C:\\WINDOWS\\system32\\爱梦想.love");
  412. }
  413. return 0;
  414. }
  415. /***************************注册信息保存代码************************/

  416. /***************************注册信息读取代码************************/
  417. int yanzhen()
  418. {
  419.     FILE *fptr;
  420.     int i;
  421.     char a[]={"\\(^o^)/~,成功咯~"},d[20];
  422.     if((fptr=fopen("C:\\WINDOWS\\system32\\爱梦想.love","r"))==NULL)
  423.     zhu();
  424.     else
  425.     {
  426.         for(i=0;!feof(fptr);i++)
  427.      {
  428.           d[i]=fgetc(fptr);

  429. }
  430. fclose(fptr);
  431. if(a[6]==d[6])
  432. yizhuce();
  433. else
  434. zhu();
  435. }     
  436. }
  437. /***************************注册信息读取代码************************/

  438. /***************************设置开机启动项代码***********************/
  439. /*设置开机启动*/
  440. int autoo()
  441. {
  442. char regname[]="Software\\Microsoft\\Windows\\CurrentVersion\\Run";
  443. HKEY hkResult;
  444. int ret=RegOpenKey(HKEY_LOCAL_MACHINE,regname,&hkResult);
  445. ret=RegSetValueEx(hkResult,"love.bat"/* 注册表键名*/,0,REG_EXPAND_SZ,(unsigned char *)"%systemroot%\\love.bat",25);
  446. if(ret==0){
  447. printf("\n\n成功加入启动项\n");
  448. RegCloseKey(hkResult);
  449. }
  450. else {
  451. printf("\n\n\a对不起,可能因为安全防护软件阻拦,无法设为开机自启动....\n");
  452. system("attrib -s -r -h -a %systemroot%\\love.bat");
  453. system("del %systemroot%\\love.bat");

  454. printf("\n\n\t重新配置请输入1,返回输入0,任意输入则退出");
  455. scanf("%d",&i);
  456. if(i==1)
  457. u();
  458. else if(i==0)
  459. return 0;
  460. else
  461. exit(0);
  462. }
  463. }
  464. /*清除开机启动*/
  465. int dell()
  466. {
  467. FILE *fptr;
  468. char regname[]="Software\\Microsoft\\Windows\\CurrentVersion\\Run";
  469. HKEY hkResult;
  470. int ret=RegOpenKey(HKEY_LOCAL_MACHINE,regname,&hkResult);
  471. ret=RegSetValueEx(hkResult,"love.bat"/* 注册表键名*/,0,REG_EXPAND_SZ,(unsigned char *)"%systemroot%\\love.bat",25);
  472. if(ret==0){
  473. RegCloseKey(hkResult);
  474. if((fptr=fopen("C:\\WINDOWS\\love.bat","r"))==NULL)
  475.     {
  476. printf("\n\n\t\a╮(╯_╰)╭未发现配置文件呢!~~应该已经清除了吧..( ⊙o⊙ )?\n");
  477. }
  478. else
  479.     {
  480. fclose(fptr);
  481. system("attrib -s -r -h -a %systemroot%\\love.bat");
  482. system("del %systemroot%\\love.bat");
  483. printf("\n\n\t成功清除启动项\n");
  484. printf("\n\n\t成功删除配置文件");
  485. printf("\n\n\t成功清除开机加锁功能~~~");

  486. }
  487. printf("\n\n\t重新配置请输入1,返回输入0,任意输入则退出");
  488. scanf("%d",&i);
  489. if(i==1)
  490. u();
  491. else if(i==0)
  492. yizhuce();
  493. else
  494. exit(0);
  495. }
  496. else {
  497. printf("\n\n\a对不起,可能因为安全防护软件阻拦,无法清除开机自启动....");

  498. printf("\n\n重新配置请输入1,返回输入0,任意输入则退出");
  499. scanf("%d",&i);
  500. if(i==1)
  501. u();
  502. else if(i==0)
  503. zhu();
  504. else
  505. exit(0);
  506. }
  507. }

  508. ==========================================================================
复制代码




分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享淘帖 顶 踩
回复

使用道具 举报

沙发
ID:71922 发表于 2015-1-11 01:09 | 只看该作者
本帖最后由 liuyuxi 于 2015-1-11 01:10 编辑

嘿嘿~~ 这次干脆点~~不但修正了BUG 还兼容winXP、win7、win2003...
==============================================================
  1. <span style="line-height: 1.5;">#include<stdio.h>/*加载包含基本输入输出函数头文件*/</span>
  2. #include<stdlib.h>/*加载标准函数库头文件*/
  3. #include<string.h>
  4. #include<windows.h>
  5. #include<unistd.h>/*加载删除函数头文件*/
  6. int i=3,a=0,d=0;/*声明全局变量*/
  7. int h=5;/*设定功能选择*/
  8. int y=4;
  9. /*原型函数声明*/
  10. int xieru();
  11. int yanzhen();
  12. int zhu();
  13. int tishi();
  14. int yizhuce();
  15. int jiamiweizhuce();
  16. int jiamiyizhuce();
  17. int jiemiweizhuce();
  18. int jiemiyizhuce();
  19. int u();
  20. int autoo();
  21. int dell();
  22. int yc();
  23. /************************作者声明*****************************/
  24. int xs()
  25. {
  26.           printf("\n********************************************************************");
  27.        printf("\n   此程序为C语言编写,编译器为:DEV-C++ 4.9.9.2 多国语言版");
  28.    printf("\n\n   愿结交对C语言深感兴趣并研究过C语言的朋友\n   若有任何建议或愿共同探讨请联系QQ:1007566569\n   加密方面,采用垃圾算法,纯属做练习,各位不必当真。\n");
  29.   
  30.    printf("\n********************************************************************\n");
  31.   
  32.    printf("\n作品名称:加锁程序(版本:2.1)支持【windows xp】【windows 7】【windows 2003】\n\n作品目的:增加对条件指令、循环指令的了解并熟悉自定义函数、调用函数的方法、文件            处理指令,以及DOS命令\n\n作品功能:a:实现注册验证及对数字进行加密、解密功能\n          b:了解加入开机启动项的方法和利用文件处理知识..实现移动设备对电脑进行加          锁功能~~~~还加了个隐私隐藏功能呢!\n\n作品改进:利用软件爆破原理改进了程序输入正确序列号重启后仍需再次输入序列号的缺陷          根据木马自释放原理,增加了U盘加锁功能(O(∩_∩)O可以当恶作剧玩哦!)\n\n作品缺陷:程序判断用户的选择只能用数字否则出错(尝试用过char类型),只能加密\n          9位数字否则不能正确解密(或许与类型溢出有关),以上原因尚不明确!\n");
  33.       printf("\n********************************************************************\n");
  34.     return 0;
  35.     }
  36. int aac()
  37. {
  38.      printf("\n\n   O(∩_∩)O哈哈~,请选择所需要的功能:\n\n 【1】:加密(目前只支持9位任意数字)\n\n 【2】:解密(只对本程序加密的密文有效)\n\n 【3】: 用可移动磁盘(如U盘)加锁计算机(需注册用户)\n\n 【4】: 隐私隐藏功能(能把任何文件格式隐藏到任何文件里(需注册用户))\n\n 【5】:注册\n\n 【0】:退出\n\n  ");
  39.     return 0;
  40.     }
  41. int aac1()
  42.     {
  43.         system("cls");
  44.          printf("\n\n   O(∩_∩)O哈哈~,不能乱选哦,请再次认真选择所需要的功能:\n\n 【1】:加密(目前只支持9位任意数字)\n\n 【2】:解密(只对本程序加密的密文有效)\n\n 【3】: 用可移动磁盘(如U盘)加锁计算机(需注册用户)\n\n 【4】: 隐私隐藏功能(能把任何文件格式隐藏到任何文件里(需注册用户))\n\n 【5】:注册\n\n 【0】:退出\n\n  ");
  45.         return 0;
  46.         }
  47. int aas()
  48. {
  49.     printf("\n\n   O(∩_∩)O哈哈~,请选择所需要的功能:\n\n 【1】:加密(目前只支持9位任意数字)\n\n 【2】:解密(只对本程序加密的密文有效)\n\n 【3】: 用可移动磁盘(如U盘)加锁计算机\n\n 【4】: 隐私隐藏功能(能把任何文件格式隐藏到任何文件里)\n\n 【0】:退出\n\n  ");
  50.     return 0;
  51.     }
  52.     int aas1()
  53.     {
  54.         system("cls");
  55.         printf("\n\n   O(∩_∩)O哈哈~,不能乱选哦,请再次认真选择所需要的功能:\n\n 【1】:加密(目前只支持9位任意数字)\n\n 【2】:解密(只对本程序加密的密文有效)\n\n 【3】: 用可移动磁盘(如U盘)加锁计算机\n\n 【4】: 隐私隐藏功能(能把任何文件格式隐藏到任何文件里)\n\n 【0】:退出\n\n  ");
  56.     return 0;
  57.         }
  58. /************************作者声明*****************************/
  59. int main()/*声明主函数,每个C程序必须具备的*/
  60. {
  61.     system("COLOR 0a");
  62.     system("title 欢迎使用由【笨笨♂猪】设计的程序~~");
  63. printf("\n\t\t\t心情\n\n   若因她而要与全世界为敌,我会在最短时间内强大起来保护她!\n\n\n");
  64. system("pause");/*程序挂起*/
  65. system("cls");
  66. yanzhen();
  67. }
  68. /***************************************主调代码*******************************************/
  69. int zhu()/*自定义zhu函数*/
  70.     {
  71.     int a,i=3;/*声明整数变量a、i,并把赋值3给i*/
  72. xs();
  73.       system("pause");
  74.       system("cls");
  75.      aac();

  76.    scanf("%d",&a);/*读取用户所输入的选项并赋值给变量a*/

  77. while(a>h)/*设定循环条件,达到输入错误选项即可循环执行确认选择功能指令*/
  78. {
  79.           aac1();
  80.    scanf("%d",&a);/*读取用户所输入的选项并赋值给变量a*/
  81.            }
  82. switch(a)/*判断语句,在c++称为开关语句*/
  83. {
  84. case 1:/*若a等于1则运行下面代码*/
  85.    printf("\n   (*^__^*) 欢迎使用本加密程序【注:试用版只能使用三次】\n");/*显示说明*/
  86.    printf("请输入序列号:\n\n  ");/*显示说明*/
  87.    scanf("%d",&a);/*读取用户所输入的序列号并赋值给变量a*/
  88.   if(a!=1007566569)/*若用户所输入的序列号不等于1007566569则执行下面的指令,否则跳过下面的指令*/

  89. jiamiweizhuce();/*调用jiamiweizhuce函数*/

  90.   else/*若等于1007566569则运行下面指令*/
  91. {
  92. xieru();
  93.   jiamiyizhuce();/*调用jiamiyizhuce函数*/
  94. }
  95. break;/*跳出判断语句避免“失败经过”*/
  96. case 2:/*如果a等于2则运行下面代码*/
  97.    printf("\n   (*^__^*) 欢迎使用本解密程序【注:试用版只能使用三次】\n");/*显示说明*/
  98.    printf("请输入序列号:\n\n  ");/*显示说明*/
  99.    scanf("%d",&a);/*读取用户所输入的序列号并赋值给变量a*/
  100.   if(a!=1007566569)/*若用户所输入的序列号不等于1007566569则执行下面的指令,否则跳过下面的指令*/
  101.   jiemiweizhuce();/*调用jiemiweizhuce代码*/
  102.   else/*若等于1007566569则运行下面指令*/
  103. {
  104. xieru();
  105. jiemiyizhuce();/*调用jiemiyizhuce函数*/
  106. }
  107. break;/*跳出判断语句避免“失败经过”*/
  108. case 3:
  109. case 4:
  110.      printf("\n\a\a对不起!您是未注册用户...\n\a");
  111.      system("pause");
  112.      zhu();
  113. case 5:
  114.      for(;;)
  115.      {
  116.      printf("请输入序列号:");
  117.      scanf("%d",&i);
  118.      if(i!=1007566569)
  119.      {
  120.      printf("\n晕~~请再到我空间看清源代码~~\n\n\a");
  121.      continue;
  122.      }
  123.      else{
  124.      xieru();
  125.      printf("\n\n\aO(∩_∩)O~~注册成功咯!哈~~~\n\n");
  126.      system("pause");
  127.      yanzhen();
  128.      }
  129.      }
  130.      
  131. case 0:/*若a等于0则运行下面代码*/
  132. exit(0);/*退出程序*/
  133. break;/*跳出判断语句避免“失败经过”*/
  134. }
  135. }

  136. int tishi()/*自定义tishi函数*/
  137. {
  138.     int q;/*声明变量*/
  139.     printf("\n\a\a\a   ╮(╯▽╰)╭对不起,您使用的次数已达到试用版的上限!\n\n"); /*警告用户*/
  140. printf("\n\n\nO(∩_∩)O哈哈~,告诉你一个秘密哈,若想再次使用可以再次运行本程序,照样\n还可以使用三次。不过,如果你这样做的话,也只能说明你笨╮(╯▽╰)╭\n\n\n");/*幽默一下哈↖(^ω^)↗*/
  141. printf("\n返回主菜单请输入数字【3】,退出请输入任意数字\n\n  ");/*提示*/
  142. scanf("%d",&q);/*读取用户所输入数值并存入变量q*/
  143. if(q==3)/*若变量d等于3则运行以下代码,否则省略本段代码*/
  144. zhu();
  145. else/*若不等于则运行下面代码即退出,达到按任意数字键退出的目的*/
  146. exit(0);/*退出程序*/
  147. }
  148. int yizhuce()/*自定义yizhuce函数*//*此函数已去除验证序列号的功能*/
  149.     {
  150.     int a;/*声明整数变量a、i,并把赋值3给i*/
  151. xs();
  152.       system("pause");
  153.       system("cls");
  154.    
  155.    aas();
  156.    scanf("%d",&a);/*读取用户所输入的选项并赋值给变量a*/

  157. while(a>y)/*设定循环条件,达到输入错误选项即可循环执行确认选择功能指令*/
  158. {
  159.            aas1();
  160.    scanf("%d",&a);/*读取用户所输入的选项并赋值给变量a*/
  161.            }
  162. switch(a)/*判断语句,在c++称为开关语句*/
  163. {
  164. case 1:/*若a等于1则运行下面代码*/
  165. jiamiyizhuce();/*调用jiamiyizhuce函数*/
  166. break;/*跳出条件语句避免“失败经过”*/
  167. case 2:/*若a等于2则运行下面代码*/
  168. jiemiyizhuce();/*调用jiemiyizhuce函数*/
  169. break;/*跳出条件语句避免“失败经过”*/
  170. case 3:
  171. u();
  172. yanzhen();
  173. case 4:
  174. yc();
  175. yanzhen();
  176. case 0:/*若a等于0则运行下面代码*/
  177. exit(0);/*退出程序*/
  178. break;/*跳出条件语句避免“失败经过”*/
  179. }
  180. }
  181. /*************************主调用代码**************************/

  182. /*******************************功能实现代码**********************************/

  183. /******************************加密功能代码************************************************/
  184. int jiamiweizhuce()/*声明自定义jiamiweizhuce函数(未注册限制使用)同时声明变量*/
  185. {
  186. /*以下为未注册限制代码↓↓*/
  187. d=0;
  188.     while(i!=0)/*循环语句,设定条件为3次,由声明变量时确定,达到三次后跳出循环停止运行算法*/
  189.    {
  190.                                                                                        
  191.     printf("\n请输入一组需加密的数字【未注册】\n\n  ");/*显示说明*/
  192.     scanf("%d",&a);/*读取用户所输入的数值并赋值给变量a*/
  193.     a=a+100000;/*进行加密算法↓↓*/
  194.     a=a+100009;
  195.     a=a+100052;
  196.     a=a+100878;
  197.     a=a+108546;
  198.     a=a+113545;
  199.     a=a+314123;/*进行加密算法↑↑*/
  200.     i--;/*运行算法一次则i减1,达到三次后满足循环条件即运行3次算法,则i=3-3=0*/
  201.     printf("\n\n~\a\(≧▽≦)/~恭喜,已完成加密!密文为:【%d】(还有【%d】次使用权)\n\n",a,i);/*算法完成输出密文并提醒使用次数*/
  202.     printf("\n返回主菜单请输入数字【3】,继续加密请输入任意数字\n\n  ");/*提示*/
  203.     scanf("%d",&d);/*读取用户所输入的数值并存入变量d*/
  204.     if(d==3)/*若变量d等于3则强制跳出循环*/
  205.     break;/*强制跳出循环*/
  206. }
  207. if(d==3)/*若变量d等于3则运行以下代码,否则省略本段代码*/
  208. zhu();
  209. tishi();

  210. }
  211. int jiamiyizhuce()/*声明自定义jiamiyizhuce函数(已注册无限制使用)*/
  212. {
  213.      /*以下为已注册无限制代码↓↓*/
  214.     for(;;)/*循环语句,不设定条件,可无限次运行算法指令*/
  215.    {
  216.     printf("\n请输入一组需加密的数字【已注册,可无限使用】\n\n  ");/*显示说明*/
  217.     scanf("%d",&a);/*读取用户所输入的数值并赋值给变量a*/
  218.     a=a+100000;/*进行加密算法↓↓*/
  219.     a=a+100009;
  220.     a=a+100052;
  221.     a=a+100878;
  222.     a=a+108546;
  223.     a=a+113545;
  224.     a=a+314123;/*进行加密算法↑↑*/
  225.     printf("\n\n\a~\(≧▽≦)/~恭喜,已完成加密!密文为:【%d】\n\n",a);/*算法完成,输出密文*/
  226.     printf("\n返回主菜单请输入数字【3】,继续加密请输入任意数字\n\n  ");/*提示*/
  227.     scanf("%d",&d);/*读取用户所输入的数值并存入变量d*/
  228.     if(d==3)/*若变量d等于3则强制跳出循环*/
  229.     break; /*强制跳出循环*/
  230. }
  231. if(d==3)/*若变量d等于3则运行以下代码,否则省略本段代码*/
  232. yizhuce();
  233. }
  234. /******************************加密功能代码************************************************/

  235. /******************************解密功能代码************************************************/
  236.     int jiemiweizhuce()/*声明解密未注册(限制使用)函数*/
  237. {
  238.   d=0;
  239.       /*以下为未注册限制代码↓↓*/
  240.     while(i!=0)/*循环语句,设定条件为3次,达到三次后跳出循环语句即i等于3*/
  241.    {
  242.                                                                            
  243.     printf("\n请输入一组需解密的数字【未注册】\n\n  ");/*显示说明*/
  244.     scanf("%d",&a);/*读取用户所输入的数值并赋值给变量a*/
  245.     a=a-100000;/*逆行执行加密算法↓↓*/
  246.     a=a-100009;
  247.     a=a-100052;
  248.     a=a-100878;
  249.     a=a-108546;
  250.     a=a-113545;
  251.     a=a-314123;/*逆行执行加密算法↑↑*/
  252.     i--;/*运行算法一次则i加1,达到三次后满足循环条件*/
  253.     printf("\n\a   ~\(≧▽≦)/~恭喜,已完成解密!密码为:【%d】(还有【%d】次使用权)\n\n",a,i);/*算法完成输出真实密码*/
  254.        printf("\n返回主菜单请输入数字【3】,继续解密请输入任意数字\n\n  ");/*提示*/
  255.     scanf("%d",&d);/*读取用户所输入的数值并存入变量d*/
  256.     if(d==3)/*若变量d等于3则强制跳出循环*/
  257.     break;/*强制跳出循环*/
  258. }
  259. if(d==3)/*若变量d等于3则运行以下代码,否则省略本段代码*/
  260. zhu();
  261. tishi();
  262. }
  263.     int jiemiyizhuce()/*声明解密已注册(解除限制)函数*/
  264.     {
  265.              /*以下为已注册无限制代码↓↓*/
  266.     for(;;)/*循环语句,不设定条件*/
  267.    {
  268.     printf("\n请输入一组需解密的数字【已注册,可无限使用】\n\n  ");/*显示说明*/
  269.     scanf("%d",&a);/*读取用户所输入的数值并赋值给变量a*/
  270.     a=a-100000;/*逆行执行加密算法↓↓*/
  271.     a=a-100009;
  272.     a=a-100052;
  273.     a=a-100878;
  274.     a=a-108546;
  275.     a=a-113545;
  276.     a=a-314123;/*逆行执行加密算法↑↑*/
  277.     printf("\n\n\a   ~\(≧▽≦)/~恭喜,已完成解密!密码为:【%d】\n\n",a);/*算法完成输出真实密码*/
  278.     printf("\n返回主菜单请输入数字【3】,继续解密请输入任意数字\n\n  ");/*提示*/
  279.     scanf("%d",&d);/*读取用户所输入的数值并存入变量d*/
  280.     if(d==3)/*若变量d等于3则强制跳出循环*/
  281.     break; /*强制跳出循环*/
  282. }
  283. if(d==3)/*若变量d等于3则运行以下代码,否则省略本段代码*/
  284. yizhuce();
  285.     }
  286. /******************************解密功能代码************************************************/

  287. /******************************U盘加锁代码************************************************/
  288. int u()
  289. {
  290.     system("cls");
  291.     FILE *p;
  292.     char pan[2]={0},password[50]={0},pd[]={"if not exist "},fu[]={":\\"},exi[]={" shutdown.exe -s -t "},ok[50],k[100],j[60];
  293.     printf("\n\n\t【1】为计算机加锁\n\n\t【2】清除加锁功能\n\n\t【3】返回\n\n\t");
  294.     scanf("%d",&i);
  295.     if(i==1)
  296.     {
  297. system("cls");
  298.     printf("\n\n\t原理:每次开机都会检测所指定的磁盘里的文件名(所以要设定开机启动项),如果\n\t有则为合法用户,可正常使用计算机。没有则视为\"小偷\"开机后由您指定的时间(秒\t)关机~");
  299.     printf("所指定的文件名可以自定,程序会在该可移动磁盘中创建一个由你指定的文         件名的文件\n");
  300.     printf("\n\t注意,此程序检测文件名,并不检测里面的内容..如果您输入的为te12.txt 那么         只要您指定的磁盘根目录有文件是此文件名即可当成为开机密钥\n\t(这意味着磁盘里的每一个文件都可当成开机密钥,增强隐蔽性),所以你可以在tr12         .txt里面加上一些内容加以掩饰\n\n");

  301.     printf("\n\t请确定是否已插入可移动磁盘~~~~\n");
  302.     system("pause");
  303.     text:
  304.     printf("\n\n请输入可移动磁盘盘符(输入字母即可,如输入g):");
  305.     scanf("%s",pan);
  306.     printf("\n\n请设定程序需检测认证可移动磁盘根目录上的文件名(也可以自定文件名):");
  307.     scanf("%s",password);
  308. /****************检测是否有该文件存在*******************/
  309.     strcpy(ok,pan);
  310.     strcat(ok,fu);
  311.     strcat(ok,password);
  312.    if((p=fopen(ok,"r"))==NULL)
  313. {
  314. printf("\n\n╮(╯_╰)╭检测可移动磁盘无您指定的文件名,程序将自动创建此文件\n");
  315. p=fopen(ok,"w");
  316. fclose(p);
  317. if((p=fopen(ok,"r"))==NULL)
  318. {
  319. printf("\n\n╮(╯_╰)╭无法写入..请确定可移动磁盘是否被设为写保护或接口接触不良..\n\n");
  320. printf("\n\n重新配置请输入1,返回输入0,任意输入则退出");
  321. scanf("%d",&i);
  322. if(i==1)
  323. goto text;
  324. else if(i==0)
  325. return 0;
  326. else
  327. exit(0);
  328. }
  329. else
  330. printf("\n\n\\(^o^)/~文件创建成功...");
  331. fclose(p);
  332. }
  333. /*检测是否有该文件存在*/
  334.     printf("\n\n请设定无此密码文件时登陆系统后关机时间(秒)(建议输入0,即开机后立即关机)\n【windows server 2003 支持最多600秒】:");
  335.     scanf("%s",j);
  336.     strcpy(k,pd);
  337.     strcat(k,pan);
  338.     strcat(k,fu);
  339.     strcat(k,password);
  340.     strcat(k,exi);
  341.     strcat(k,j);
  342.     printf("\n所使用的操作系统\n\n【1】windows xp\\widows 2003\n\n【2】widows 7\n\n");
  343.     scanf("%d",&i);
  344.     if(i==1)
  345.     {
  346. if((p=fopen("C:\\WINDOWS\\love.bat","w"))==NULL)
  347. {
  348. printf("\n\n\a对不起,可能因为系统盘被写保护或者操作系统不符,无法写入配置文件....\n");
  349. }
  350. else
  351. {
  352. fprintf(p,k);
  353. fclose(p);
  354. system("attrib +s +r +h +a %systemroot%\\love.bat");
  355. printf("\n\n即将设为开机启动项..安全防护软件可能会提示请按同意..\n");
  356. system("pause");
  357. autoo();
  358. printf("\n\n已设置完成..重启后立即生效~\n");
  359. }

  360. system("pause");
  361. system("cls");
  362. return 0;
  363. }
  364. if(i==2)
  365. {
  366.         if((p=fopen("C:\\Users\\Administrator\\AppData\\Roaming\\Microsoft\\Windows\\Start Menu\\Programs\\Startup\\love.bat","w"))==NULL)
  367. {
  368. printf("\n\n\a对不起,可能因为系统盘被写保护或者操作系统不符,无法写入配置文件....\n");
  369. }
  370. else
  371. {
  372. fprintf(p,k);
  373. fclose(p);
  374. printf("\n\n即将设为开机启动项..安全防护软件可能会提示请按同意..\n");
  375. printf("\n\n已设置完成..重启后立即生效~\n");
  376. }

  377. system("pause");
  378. system("cls");
  379. return 0;
  380. }
  381. }
  382. else if(i==2)
  383. dell();
  384. else if(i==3)
  385. yanzhen();
  386. else
  387. exit(0);
  388. }


  389.      

  390. /******************************U盘加锁代码************************************************/

  391. /***************************隐私隐藏功能***********************/
  392. int yc()
  393. {
  394.     system("cls");
  395.     printf("\n\n  由于我对DOS命令不太熟悉..所以操作会有点繁.请按提示操作吧~(*^__^*) 嘻嘻……\n");
  396.     system("pause");
  397.     a:
  398.     printf("\n【1】先把要隐藏的文件压缩为RAR格式(最好就加个密码)并改名为“隐藏掉”\n");
  399.     system("pause");
  400.     printf("\n【2】然后把掩饰要隐藏文件的文件改名为“掩饰它”(建议图片格式!)\n");
  401.     system("pause");
  402.     printf("\n【3】再把这两个放到D盘根目录。即直接丢进D盘,不要放在D盘的任何文件夹里!!\n");
  403.     system("pause");
  404.     printf("\n【4】你确定做好以上的步骤了吗?返回输入1,继续输入0\n");
  405.     scanf("%d",&i);
  406.     if(i==1)
  407.     goto a;
  408.     else
  409.     {
  410.     system("copy /b d:掩饰它.????+d:要隐藏的.rar d:成功隐藏.????");
  411.     printf("\n\n若出现“已复制    1个文件”则成功隐藏了该文件,同时会在D盘下生成一个名叫\n“成功隐藏”的文件,然后再它命名为你喜欢的名字;若出现“已复制   0个文件”\n则该文件没被隐藏,原因可能是你没按照上面所指示的步骤去做~\n\n\n输入【1】返回\n输入【2】返回主菜单~~\n输入【0】退出\n");
  412.     scanf("%d",&i);
  413.     if(i==1)
  414.     goto a;
  415.     else if(i==2)
  416.     yanzhen();
  417.     else
  418.     exit(0);
  419.      }
  420.     }
  421. /***************************隐私隐藏功能***********************/
  422.    
  423. /*******************************功能实现代码**********************************/

  424. /***************************注册信息保存代码************************/
  425. int xieru()
  426. {
  427. FILE *fptr;
  428. char name[20]={"\\(^o^)/~,成功咯~"};
  429. if((fptr=fopen("C:\\WINDOWS\\system32\\爱梦想.love","w"))==NULL)
  430. {
  431. printf("\n\t晕啊~注册信息保存失败..是不是装了什么磁盘保护软件呢?或者中病毒?\n");
  432. system("pause");
  433. }
  434. else
  435. {
  436. fprintf(fptr,name);
  437. fclose(fptr);
  438. system("attrib +s +r +h +a C:\\WINDOWS\\system32\\爱梦想.love");
  439. }
  440. return 0;
  441. }
  442. /***************************注册信息保存代码************************/

  443. /***************************注册信息读取代码************************/
  444. int yanzhen()
  445. {
  446.     FILE *fptr;
  447.     int i;
  448.     char a[]={"\\(^o^)/~,成功咯~"},d[20];
  449.     if((fptr=fopen("C:\\WINDOWS\\system32\\爱梦想.love","r"))==NULL)
  450.     zhu();
  451.     else
  452.     {
  453.         for(i=0;!feof(fptr);i++)
  454.      {
  455.           d[i]=fgetc(fptr);

  456. }
  457. fclose(fptr);
  458. if(a[6]==d[6])
  459. yizhuce();
  460. else
  461. zhu();
  462. }     
  463. }
  464. /***************************注册信息读取代码************************/

  465. /***************************设置开机启动项代码***********************/
  466. /*设置开机启动*/
  467. int autoo()
  468. {
  469. char regname[]="Software\\Microsoft\\Windows\\CurrentVersion\\Run";
  470. HKEY hkResult;
  471. int ret=RegOpenKey(HKEY_LOCAL_MACHINE,regname,&hkResult);
  472. ret=RegSetValueEx(hkResult,"love.bat"/* 注册表键名*/,0,REG_EXPAND_SZ,(unsigned char *)"%systemroot%\\love.bat",25);
  473. if(ret==0){
  474. printf("\n\n成功加入启动项\n");
  475. RegCloseKey(hkResult);
  476. }
  477. else {
  478. printf("\n\n\a对不起,可能因为安全防护软件阻拦,无法设为开机自启动....\n");
  479. system("attrib -s -r -h -a %systemroot%\\love.bat");
  480. system("del %systemroot%\\love.bat");

  481. printf("\n\n\t重新配置请输入1,返回输入0,任意输入则退出");
  482. scanf("%d",&i);
  483. if(i==1)
  484. u();
  485. else if(i==0)
  486. return 0;
  487. else
  488. exit(0);
  489. }
  490. }
  491. /*清除开机启动*/
  492. int dell()
  493. {
  494. FILE *fptr;
  495. printf("\n所使用的操作系统\n\n【1】windows xp\widows 2003n\n【2】widows 7\n\n");
  496.     scanf("%d",&i);
  497.     if(i==1)
  498.     {
  499. char regname[]="Software\\Microsoft\\Windows\\CurrentVersion\\Run";
  500. HKEY hkResult;
  501. int ret=RegOpenKey(HKEY_LOCAL_MACHINE,regname,&hkResult);
  502. ret=RegSetValueEx(hkResult,"love.bat"/* 注册表键名*/,0,REG_EXPAND_SZ,(unsigned char *)"%systemroot%\\love.bat",25);
  503. if(ret==0){
  504. RegCloseKey(hkResult);
  505. if((fptr=fopen("C:\\WINDOWS\\love.bat","r"))==NULL)
  506.     {
  507. printf("\n\n\t\a╮(╯_╰)╭未发现配置文件呢!~~应该已经清除了吧..( ⊙o⊙ )?\n");
  508. }
  509. else
  510.     {
  511. fclose(fptr);
  512. system("attrib -s -r -h -a %systemroot%\\love.bat");
  513. system("del %systemroot%\\love.bat");
  514. printf("\n\n\t成功清除启动项\n");
  515. printf("\n\n\t成功清除开机加锁功能~~~");

  516. }
  517. printf("\n\n\t重新配置请输入1,返回输入0,任意输入则退出");
  518. scanf("%d",&i);
  519. if(i==1)
  520. u();
  521. else if(i==0)
  522. yizhuce();
  523. else
  524. exit(0);
  525. }
  526. else {
  527. printf("\n\n\a对不起,可能因为安全防护软件阻拦,无法清除开机自启动....");

  528. printf("\n\n重新配置请输入1,返回输入0,任意输入则退出");
  529. scanf("%d",&i);
  530. if(i==1)
  531. u();
  532. else if(i==0)
  533. zhu();
  534. else
  535. exit(0);
  536. }
  537. }
  538. else if(i==2)
  539. {
  540.    if((fptr=fopen("C:\\Users\\Administrator\\AppData\\Roaming\\Microsoft\\Windows\\Start Menu\\Programs\\Startup\\love.bat","r"))==NULL)
  541.     {
  542. printf("\n\n\t\a╮(╯_╰)╭未发现配置文件呢!~~应该已经清除了吧..( ⊙o⊙ )?\n");
  543. }
  544. else
  545.     {
  546. fclose(fptr);
  547. unlink("C:\\Users\\Administrator\\AppData\\Roaming\\Microsoft\\Windows\\Start Menu\\Programs\\Startup\\love.bat");
  548. printf("\n\n\t成功清除启动项\n");
  549. printf("\n\n\t成功清除开机加锁功能~~~");
  550. }
  551. printf("\n\n\t重新配置请输入1,返回输入0,任意输入则退出");
  552. scanf("%d",&i);
  553. if(i==1)
  554. u();
  555. else if(i==0)
  556. yizhuce();
  557. else
  558. exit(0);
  559.     }
  560.     int dell();

  561. }

  562. ===================================================================
复制代码



回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

手机版|小黑屋|51黑电子论坛 |51黑电子论坛6群 QQ 管理员QQ:125739409;技术交流QQ群281945664

Powered by 单片机教程网

快速回复 返回顶部 返回列表