开机密码
来源: 作者: 出处:综艺读书 2007-07-17#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();
}
·C语言程序设计经典实例之十 (4203次浏览)
·内存调试技巧:C 语言最大难点揭秘 (198次浏览)
·C语言中的面向对象(1)-类模拟和多态,继承 (194次浏览)
·新手看招 Linux操作系统下C++编程初探 (79次浏览)
·C语言程序设计经典实例之十 (4203次浏览)
·内存调试技巧:C 语言最大难点揭秘 (198次浏览)
·C语言中的面向对象(1)-类模拟和多态,继承 (194次浏览)
·Linux 环境下串口通信的编程 (187次浏览)
·从C++转到Java 如何把握关键 (82次浏览)
·解释一个关于Hibernate lazy的问题 (81次浏览)
·新手看招 Linux操作系统下C++编程初探 (79次浏览)
·教你如何使用位运算实现循环移位 (59次浏览)
·C程序实现汉字内码与GB码 (50次浏览)
·C语言程序设计经典实例之十 07-17
·C语言中的面向对象(1)-类模拟和多态,继承 07-15
·内存调试技巧:C 语言最大难点揭秘 06-24
·新手看招 Linux操作系统下C++编程初探 06-20
·从C++转到Java 如何把握关键 06-15
·C程序实现汉字内码与GB码 06-10
·解释一个关于Hibernate lazy的问题 06-01
·教你如何使用位运算实现循环移位 05-26
·专家详解:复杂表达式的执行步骤 05-26
|
|||
| ·ACDSEE专题教程-下载使用 ·迅雷专题教程-下载使用 ·Windows XP频道 ·Windows Vista频道 ·Windows 2000频道 ·win2003频道 ·Freebsd频道 ·Oracle频道 |
·Linux频道 ·Windows频道 ·邮件服务器专题 ·协议大全 ·数据恢复指南教程 ·FreeBSD使用教程 ·Linux数据库宝典 ·Linux基础知识 |
||
| · 秘密:Vista隐蔽的动态屏保 · 腾讯开发新电子宠物--QQ熊 · 惠普否认2999元PC有价无货 |
· 驱逐Win系统“流氓”文件 · WinXP中获取未使用的IP地址 · 尝试format C:格式化硬盘? |
| · 在DOS下恢复回收站中的文件 · 拯救WinXP崩溃的救命稻草 · Linux系统中超级权限的应用 |
· 搜狗PK谷歌:谁能代言拼... · 昨日重现,一键GHOST轻松.. · 实现Web迅雷在空闲时杀毒 |
| · AVIFile函数制做AVI文件 · VC中链接动态链接库的方法 · 熊猫烧香核心源码(Delphi) |
· DateDiff函数祥解 · JavaScript去除空格的三种 · js效果 图片加载进度实时.. |
| · SQL Server数据库优化方案 · Oracle的初学者入门心得 · JSP连接Mysql数据库 |
· Photoshop为美女做艺术处理 · 用Freehand创建发光字特效 · 设计自己的个性QQ动态表情 |




