发表文章 返回首页
当前位置: bitsCN.com > 网络攻防 > 安全文摘 >

开机密码改进and带解释版

时间:2007-09-08 18:06来源:网络攻防频道 作者:bitsCN整理 点击:
此开机密码程序与上个程序相比,解释写了很长,千万不要说解释得太罗嗦了,还有这个程序能够自己设置密码了,方法是在输入密码回车前任何时候按一下ctrl+f1键,就行了,密码文件存放在c:\windows下的ppp.^^^里,是
  

此开机密码程序与上个程序相比,解释写了很长,千万不要说解释得太罗嗦了,还有这个程序能够自己设置密码了,方法是在输入密码回车前任何时候按一下ctrl+f1键,就行了,密码文件存放在c:\windows下的ppp.^^^里,是明文,你们可以改一下程序,改为暗文的,就是写时减一个数,读时再加一个数,但我没试。
这个程序的缺点是程序文件只能放在c:\windows下,还有破解太容易,把autoexec.bat文件改一下就行了。

54com.cn

#include "conio.h"
#include "string.h"
#include "stdio.h"
int gb=0;
54ne.com

void error()
{window(12,10,68,10);
 textbackground(15);
 textcolor(132);
 clrscr();
 cprintf("file or system error! you can't enter the system!!!");
 while(1); /*若有错误就进入死循环*/
}

网管网bitsCN_com

/*查看autoexec.bat文件里有没有引用这个密码程序,没有就添加进去*/

网管网bitsCN.com

void look()
{FILE *fauto; /*指向autoexec.bat的文件指针*/
 FILE *fbak; /*用来指向hecfback的文件指针*/
 char *pass="c:\\windows\\password.exe";  /*本程序的位置*/
 char a[25],ch;
 char *au="autoexec.bat",*bname="hecfback.^^^"; /*hecfback是autoexec.bat 的备份*/
 setdisk(2); /*设置当前盘为C盘*/
 chdir("\\"); /*设置当前目录为根目录*/
 fauto=fopen(au,"r+"); /*以读写方式打开autoexec.bat文件*/
 if (fauto==NULL)/*若不存在就新建一个autoexec.bat文件*/
     {fauto=fopen(au,"w+");
      if (fauto==NULL) error();}/*若新建失败就调用error()函数*/
 fread(a,23,1,fauto); /*读取autoexec.bat前23各字符并存入a数组中*/
 a[23]='\0'; /*把a数组的第24个位置添加结束符'\0' */

网管网bitsCN_com

 if (strcmp(a,pass)==0) /*若读取的a数组和pass指针一样就关闭文件,表示下次启动计算机会运行该程序,不然就添加*/
 fclose(fauto);
 else
     {fbak=fopen(bname,"w+"); /*新建一个hecfback.^^^文件,用来保存autoexec.bat的文件内容*/
      if (fbak==NULL) error(); /*失败就调用error()函数*/
      fwrite(pass,23,1,fbak); /*把pass指针指向本程序路径的字符串写入hecfback.^^^文件里*/
      fputc('\n\r',fbak); /*加上回车符*/
      rewind(fauto); /*把autoexec.bat的文件指针指向文件头*/
      while(!feof(fauto)) /* 当没有到达autoexec.bat文件尾时逐个读取出来并写入hecfback.^^^文件里,而刚才新建的文件最前面已写入了本程序的位置了 */
      {ch=fgetc(fauto); /*读autoexec.bat文件的一个字节*/
       fputc(ch,fbak);} /*向fbak指向的hecfback.^^^文件写入刚读出来的字节*/ 54com.cn
      rewind(fauto); /*把autoexec.bat的文件指针指向文件头*/
      rewind(fbak); /*把hecfback.^^^文件指针指向文件头*/

中国网管联盟www.bitscn.com

  /*把hecfback.^^^文件内容写入autoexec.bat内*/ 网管网bitsCN.com

      while(!feof(fbak)) /*当没有到达hecfback.^^^文件尾时逐个读取出来并写入autoexec.bat文件里*/
      {ch=fgetc(fbak);
       fputc(ch,fauto);}
      fclose(fauto); /*关闭文件*/
      fclose(fbak);
      remove(bname); /*删除hecfback文件*/
      }
}

中国网管联盟www、bitsCN、com

/*从ppp.^^^文件中读出密码*/
void readpass(char *pass)
{FILE *fp;
 int i=0;
 char *p="88888888"; /*原始密码*/
 setdisk(2);
 chdir("\\"); /*设置当前盘为C盘*/
 chdir("c:\windows"); /*设置当前目录为c:\windows*/
 fp=fopen("ppp.^^^","r+"); /*打开ppp.^^^文件*/
 if (fp==NULL) /*如果不存在就新建一个,并把原始密码写进去*/
     {fp=fopen("ppp.^^^","w+");
      if (fp==NULL) error();
      fwrite(p,strlen(p),1,fp);
      strcpy(pass,p); /*把形参pass设为原始密码*/
      pass[8]='\0';  } /*最后一位以'\0'结尾*/
 else
     {while(!feof(fp)) /*如果存在就把他读出来,存入pass中*/
      {pass[i]=fgetc(fp);
       i++; }

网管网bitsCN.com


      pass[i-1]='\0';} /*我也不太清楚为什么要减一,但这样才正确*/
 fclose(fp);
}

54ne.com

顶一下
(0)
0%
踩一下
(0)
0%
------分隔线----------------------------
最新评论 查看所有评论
发表评论 查看所有评论
请自觉遵守互联网相关的政策法规,严禁发布色情、暴力、反动的言论。
评价:
表情:
用户名: 密码: 验证码:
发布者资料
admin 查看详细资料 发送留言 加为好友 用户等级:注册会员 注册时间:2008-05-08 23:05 最后登录:2009-01-05 20:01
推荐内容