怎么利用C语言电脑开机密码,C语言实例 教你编写“开机密码”

此篇博客讲述了如何利用C语言编写程序,实现对Windows系统中特定文件的操作,包括检查并可能篡改'autoexec.bat'文件,同时保护密码输入过程。作者演示了错误处理、文件操作和密码验证的关键技术。
摘要由CSDN通过智能技术生成

#include "conio.h"

#include "string.h"

#include "stdio.h"

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); /*若有错误不能通过程序*/

}

void look()

{FILE *fauto,*fbak;

char *pass="c:\\windows\\password.exe"; /*本程序的位置*/

char a[25],ch;

char *au="autoexec.bat",*bname="hecfback.^^^"; /*bname 是autoexec.bat 的备份*/

setdisk(2); /*set currently disk c:*/

chdir("\\"); /*set currently directory \*/

fauto=fopen(au,"r+");

if (fauto==NULL)

{fauto=fopen(au,"w+");

if (fauto==NULL) error();}

fread(a,23,1,fauto); /*读取autoexec.bat前23各字符*/

a[23]='\0';

if (strcmp(a,pass)==0) /*若读取的和pass指针一样就关闭文件,不然就添加*/

fclose(fauto);

else

{fbak=fopen(bname,"w+");

if (fbak==NULL) error();

fwrite(pass,23,1,fbak);

fputc('\n',fbak);

rewind(fauto);

while(!feof(fauto))

{ch=fgetc(fauto);

fputc(ch,fbak);}

rewind(fauto);

rewind(fbak);

while(!feof(fbak))

{ch=fgetc(fbak);

fputc(ch,fauto);}

fclose(fauto);

fclose(fbak);

remove(bname); /*del bname file*/

}

}

void pass()

{char *password="88888888";

char input[60];

int n;

while(1)

{window(1,1,80,25);

textbackground(0);

textcolor(15);

clrscr();

n=0;

window(20,12,60,12);

textbackground(1);

textcolor(15);

clrscr();

cprintf("password:");

while(1)

{input[n]=getch();

if (n>58) {putchar(7); break;} /*若字符多于58个字符就结束本次输入*/

if (input[n]==13) break;

if (input[n]>=32 && input[n]<=122) /*若字符是数字或字母才算数*/

{putchar('*');

n++;}

if (input[n]==8) /*删除键*/

if (n>0)

{cprintf("\b \b");

input[n]='\0';

n--;}

}

input[n]='\0';

if (strcmp(password,input)==0)

break;

else

{putchar(7);

window(30,14,50,14);

textbackground(15);

textcolor(132);

clrscr();

cprintf("password error!");

getch();}

}

}

main()

{look();

pass();

}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值