求一个纯c语言密码验证程序写的口令验证,若密码正确则进入主函数,若密码不正确则推出程序。

西西软件园多重安全检测下载网站、值得信赖的软件下载站!
→ 自己编写C语言代码破解系统密码
V3.0 汉化绿色版
类型:系统其它大小:86KB语言:中文 评分:6.0
众所周知,如果自己忘了系统密码,就只能重装系统或者去买工具软件进行软件的破解。但很多都局限于应用工具,那我们学C的能自己创造一个工具吗? 回答当然是Yes, C 和汇编是程序开发中的王者,无所不能,当然了,得你自己去足够的内力才能发挥他的功能。 现在我们就进入实战部份。大家都知道,在windows 系列的操作系统中也包括win7 ,他们都自带了一个utilman.exe 的工具,此工具很难得的是在开机启动到windows后,都会常驻在内存中,随时都可以用win键+U 启动,在还没有进入登陆用户的时候,那我们猜一下,到底我们还没有登陆的时候,执行的操作是以什么权限在运行的呢? 我也不知道,经过测试,可能是administrator 用户,也有可能是操作系统的一个隐藏超级用户。反正在这个环境中,我们如果不知道任何的用户信息,那现在是不是就可以实行我们的方法了? 嘿嘿~ 刺激的旅程现在开始!!1 ,打开C语言编译器: 输入如下代码:#include &stdio.h&#include &stdlib.h&int main(){    system(&net user administrator \&\&&); // 千万要注意转意,如果此文件生成了.exe 文件,那你电脑上的超级用户的密码将为空。return 0; // 这里会用到一些DOS的命令,下一篇文章将进行net user 命令的详解,和使用}2 。 生成好的文件我们把他改名叫 utilman.exe3. 将utlman.exe 拷贝到c:\windows\system32 下面 (xp 还要拷贝到c:\windows\system32\dllcache下) 可以使用任何方法完成这步操作1) 在其它用户可以使用的时候,可以进入其它用户后把此文件拷贝过去2) 进入开始启动到DOS将utilman.exe 拷贝到上面所说的目录中去4. 完成上一步操作以后,进入到windows 登陆的界面,然后拼命的按下Win + U 键,然后重启电脑以后,你的系统管理员密码将完全清空,你可以作任何的操作,经测试:在windows2000 / xp /wi7 下面正常运行,且能完成工作。5. 至此,你将完成所有的工作,是不是感觉很爽啊,再也不用为了密码去重装系统了^_^注: 此种方法有一个缺点,你自己编写的程序一定要控制台的,而不能为界面程序,完成后,你可以用此工具共享给需要的朋友。感觉是不是很简单的一个编程工作,完成了你意想不到的效果,感觉到C语言的强大了吧,哈哈哈。。。其实前三个是最简单的,因为现在的系统基本上都有DOS工具,比如一键还原之类的工具,他们都自带了驱动可以直接识别U盘的,你直接用迭待的方法一个一个试,最多五六个就知道哪个是U盘,因为只有U盘的程序才有你写的那个工具软件。1,如果有其它用户的话,直接进入其它用户再做操作。2. 如果不行的话,就从DOS启动拷贝到系统中。3. 如果以上方法都不行,把安装光盘放入光驱启动,然后进入DOS拷进去。4. 如果1-3还是不行,那你把硬盘接在其它电脑上,然后再拷贝如果你有U盘启动盘,并带有PE系统,可以使用 清除XP系统密码工具:winPE下清除win7或xp系统密码工具:
12-0211-2706-0807-2002-2801-1201-2901-2901-2201-12
阅读本文后您有什么感想? 已有23人给出评价!
名称大小下载c语言密码生成_百度文库
两大类热门资源免费畅读
续费一年阅读会员,立省24元!
c语言密码生成
上传于|0|0|暂无简介
阅读已结束,如果下载本文需要使用2下载券
想免费下载本文?
定制HR最喜欢的简历
下载文档到电脑,查找使用更方便
还剩8页未读,继续阅读
定制HR最喜欢的简历
你可能喜欢#include &reg52.h&
#define uint unsigned int
#define uchar unsigned char
#define KEY P3 //键盘输入端口
#define No_key 20 //无按键时的返回值
#define lcddata P2 //1602的数据输入端口
sbit lcden= P1^2;
sbit lcdrs= P1^0;
sbit lcdrw= P1^1;
sbit light= P1^3;
sbit light1= P1^4;
//用来统计输入 个数的全局变量
//用来在定时器中计数的 全局变量&&
uchar code table[]= &Hello!&;
uchar code table1[]=&OK!&;
uchar code table2[]=&Enter please:&;
uchar code key_table[16] =&&
&&1,2,3,10,
&&4,5,6,11,
&&7,8,9,12,
&&0,13,14,15
uchar password[]={2,0,1,0,9,3} ; //设定初始密码
uchar save[6]; //保存输入的数据
//确认标志
//锁键盘标志
//开始标志
void delay(uint z); //延时子函数
void wright_com(uchar com); //写指令函数
void wright_data(uchar date) ; //写数据函数
void init(); //初始化
void display_OK(); // 显示OK
void delete(); //删除输入的最后一个数
uchar keyscan() ; //带返回值的键盘扫描程序
void enter_code(uchar t); //输入密码函数,把输入的数据存入数组中并在屏幕上显示相应的东西,
void confirm(); //确认密码对不对,把输入的数据与密码逐一对比,完全一样刚正确,
void succeed_an(); //输入密码成功时的 响应,
void fail_an(); //输入密码 失败时 响应&&
void lockkey(); //锁键盘三秒
void alarm(); //发出警报声
void reset(); //复位函数
void display_enter(); //显示输入
void main(void)
&&init();& &
&&if(lockflag)
&&temp=keyscan(); // 锁键期间也要进行键盘扫描
&&if(temp!=No_key) //重新记时三秒& &
&&aa=0; //重新在定时器中计数
&&temp=keyscan(); //反复扫描输入,等待随时输入& &
&&if(temp!=No_key) //有按键按下才进行下面的操作
&&if(temp==10)
&&reset();
&&startflag=1; //开始标志置位
&&if(startflag)
&&enter_code(temp); //每扫描一次键盘就要进行一次处理,保存输入的数值
&&if(temp==13) //按下确认键盘就要进行密码确认
&&confirm(); //进行确认判断&&
&&if(conflag) //密码确认为正确
&&succeed_an(); //密码正确,作出相应的反应
&&fail_an(); //密码错误,作相应反应
&&if(temp==14)
&&delete(); //作删除操作
/****** 显示enter********/
void display_enter()
&&wright_com(0x80);
for(num=0;num&13;num++)
&&wright_data(table2[num]);
/****** 显示OK********/
void display_OK()
wright_com(0x80);
for(num=0;num&13;num++)
&&wright_data(table1[num]);
/****** 删除最后一个********/
void delete()& &
wright_com(0x80+0x40+j); //确定删除对象
wright_data(' '); //显示空格即为删除
save[--j]=0; //删除后数据清零
wright_com(0x80+0x40+j); //为下次输入数据时写好位置,必须是在最后一个后面
/****** 对各种变量进行复位********/
void reset()
display_enter();
wright_com(0x80+0x40); //擦除屏幕上的显示
for(num=0;num&6;num++)
&&save[num]=0; //对输入的数值进行清零
&&wright_data(' '); //显示的是空格
wright_com(0x80+0x40); //下次再输入时可以又从起始位置输入
lockflag=0; //各种变量要清零回起始状态
conflag=0;
/****** 输入密码正确进行响应********/
void succeed_an()
light=0; //灯亮&&
display_OK(); //显示成功
delay(1000);
light=1; //灯灭&&
/****** 输入密码错误进行响应********/
void fail_an()
&&alarm();
&&lockkey();
/****** 发出警报声**********/
void alarm()& &
/******锁键盘三秒************/
void lockkey()& &
lockflag=1;
/******输入密码并在屏幕上显示星号******/
void enter_code(uchar t)
if(t&=0&&t&10)
&&if(j==0)
&&wright_com(0x80+0x40) ; //第一输入时要先写入地址指令,否则无法显示
&&wright_data('*') ;
&&wright_data('*') ;//不是第一个输入则不用再写地址
&&save[j++]=t; //保存输入的数据&&
/******校对密码以确定是不是正确的**********/
void confirm()
for(k=0;k&6;k++)
&&if(password[k]!=save[k]) //对数组中的内容进行逐一比较,一旦有数据不对马上退出循环
if(k==6) //要是条件退出的话说明六个数全对密码
&&conflag=1; // 进行标志密码正确
/******中断服务程序**********/
void timer0() interrupt 1
&&TH0=()/256;
TL0=()%256; //重装初值
if(lockflag)
&&light1=0;& &
&&if(aa&=60) //三秒到了
&&aa=0; //清零可以方便下次再使用
&&light1=1; //关闭警报
&&lockflag=0; //标志清零解除键锁,方便下次使用
/******初始化***********/
void init()
&&/*****定时器初始化****/
TH0=()/256;
TL0=()%256;
EA=1; //开启总中断
TR0=1;//把定时器关闭
/****1602初始化******/
lcdrw=0; //这个必须要置 零,否则无法正常显示
&&lcden=0;
wright_com(0x38) ; //初始化&&
wright_com(0x0c) ; //打开光标 0x0c不显示光标 0x0e光标不闪,0x0f光标闪
wright_com(0x01) ; //清显示
wright_com(0x80) ;
for(num=0;num&9;num++)
&&wright_data(table[num]);
&&delay(1);
/******1602写入指令************/
void wright_com(uchar com)
&&lcdrs=0;
/******1602写入数据***********/
void wright_data(uchar date)
&&lcdrs=1;
/******延时函数************/
void delay(uint z)
&&uint x,y;
&&for(x=z;x&0;x--)
&&for(y=110;y&0;y--) ;
/**********4x4矩阵键盘扫描函数*********/
uchar keyscan()
&&uchar temp,num=No_ //num的初值要为无键盘按下时的返回值
/*********扫描第一行****************/
&&temp=KEY;
&&temp=temp&0xf0; //读出高四位
&&while(temp!=0xf0)
&&delay(5); //延时消抖
&&temp=KEY;
&&temp=temp&0xf0;
&&while(temp!=0xf0) //确认确实有按键按下
&&temp=KEY;
&&switch(temp) //根据这八个电平可以确定是哪个按键按下
&&case 0xee:num=1;
&&case 0xde:num=2;
&&case 0xbe:num=3;
&&case 0x7e:num=10;
&&while(temp!=0xf0) //等待松手
&&temp=KEY;
&&temp=temp&0xf0;
&&/*********扫描第二行***************/
&&temp=KEY;
&&temp=temp&0xf0;
&&while(temp!=0xf0)
&&delay(5);
&&temp=KEY;
&&temp=temp&0xf0;
&&while(temp!=0xf0)
&&temp=KEY;
&&switch(temp)
&&case 0xed:num=4;
&&case 0xdd:num=5;
&&case 0xbd:num=6;
&&case 0x7d:num=11;
&&while(temp!=0xf0)
&&temp=KEY;
&&temp=temp&0xf0;
&&/*********扫描第三行****************/
&&temp=KEY;
&&temp=temp&0xf0;
&&while(temp!=0xf0)
&&delay(5);
&&temp=KEY;
&&temp=temp&0xf0;
&&while(temp!=0xf0)
&&temp=KEY;
&&switch(temp)
&&case 0xeb:num=7;
&&case 0xdb:num=8 ;
&&case 0xbb:num=9;
&&case 0x7b:num=12;
&&while(temp!=0xf0)
&&temp=KEY;
&&temp=temp&0xf0;
&&/*********扫描第四行****************/
&&KEY=0xf7;
&&temp=KEY;
&&temp=temp&0xf0;
&&while(temp!=0xf0)
&&delay(5);
&&temp=KEY;
&&temp=temp&0xf0;
&&while(temp!=0xf0)
&&temp=KEY;
&&switch(temp)
&&case 0xe7:num=0;
&&case 0xd7:num=13;
&&case 0xb7:num=14;
&&case 0x77:num=15;
&&while(temp!=0xf0)
&&temp=KEY;
&&temp=temp&0xf0;
请求好心人帮忙完善一下这个密码锁程序。要求:当键入正确密码后,在按确认键,便会自动开锁。如果键入完密码后不按确认键系统会当做放弃开锁处理。 当键入错误密码时,系统就会报警。当连续三次出现密码错误时,则系统会长期报警不止。要是能修改密码就更好了。。&&
&&小弟不胜感激!!!!
在线时间254 小时
TA的帖子TA的资源
一粒金砂(高级), 积分 244, 距离下一级还需 256 积分
一粒金砂(高级), 积分 244, 距离下一级还需 256 积分
你这用的什么单片机?
在线时间1734 小时
威望8307分
芯币11077枚
E金币267枚
TA的帖子TA的资源
五彩晶圆(高级), 积分 8307, 距离下一级还需 1693 积分
五彩晶圆(高级), 积分 8307, 距离下一级还需 1693 积分
多参考参考别人程序吧
电子密码锁_源程序(单片机控制)
摘要:本系统由单片机系统、矩阵键盘、LED显示和报警系统组成。系统能完成开锁、超时报警、超次锁定、管理员解密、修改用户密码基本的密码锁的功能。除上述基本的密码锁功能外,还具有调电存储、声光提示等功能,依据实际的情况还可以添加遥控功能。本系统成本低廉,功能实用关键词:AT89S51;AT24C02;电子密码锁;矩阵键盘
利用论坛搜索功能
在线时间1 小时
TA的帖子TA的资源
一粒金砂(初级), 积分 0, 距离下一级还需 5 积分
一粒金砂(初级), 积分 0, 距离下一级还需 5 积分
论坛测评队员
EEWORLD 官方微信
Powered by
逛了这许久,何不进去瞧瞧?> 问题详情
在一个C语言程序中()A.主函数只能有一个B.主函数可以有多个C.非主函数只能有一个D.主函数和非主
悬赏:0&答案豆
提问人:匿名网友
发布时间:
在一个C语言程序中()A.主函数只能有一个B.主函数可以有多个C.非主函数只能有一个D.主函数和非主函数都可以有多个请帮忙给出正确答案和分析,谢谢!
为您推荐的考试题库
您可能感兴趣的试题
1正确定义无符号整型变量m的语句是(&&)A.int m;B.unsigned int m;C.signed int m;D.unsigned signed m;2不属于字符型常量的是(&&)A."s"B.'8'C.'A'D.'\n'3设intx=2,y=4;,值为非0的表达式是(&&)A.1/x*yB.1/(x*y)C.1.0/x/yD.1/x/(double)y4设int a=2,b=5;,结果为0的表达式是(&&)A.a%bB.a&bC.a=bD.a!=b
我有更好的答案
请先输入下方的验证码查看最佳答案
图形验证:
验证码提交中……
找答案会员
享三项特权
找答案会员
享三项特权
找答案会员
享三项特权
选择支付方式:
支付宝付款
郑重提醒:支付后,系统自动为您完成注册
请使用微信扫码支付(元)
支付后,系统自动为您完成注册
遇到问题请联系在线客服QQ:
请您不要关闭此页面,支付完成后点击支付完成按钮
遇到问题请联系在线客服QQ:
恭喜您!升级VIP会员成功
常用邮箱:
用于找回密码
确认密码:Linux下C语言实现 密码不回显输入
加强版_Linux编程_Linux公社-Linux系统门户网站
你好,游客
Linux下C语言实现 密码不回显输入
来源:Linux社区&
作者:shishuifusheng
明天要做一个项目,涉及到账号密码的输入,看了网上很多例子,Linux下的&curses.h& getch()好像功能有怪异。关闭回显的功能好像也不是很好用。
网上给的单纯的getch()& 输入的时候只是关闭了回显,如果密码输入错误不能删除。
小弟不才稍微研究了一下,写了一个加强版的,经过Linux下的测试通过,写的比较粗糙,献丑了。
getch()参照网上给出的...
#include&stdio.h&#include&termios.h&#include&unistd.h&#include&assert.h&#include&string.h&
int getch(){&int c=0;&struct termios org_opts, new_&&& int res=0;&&& //-----& store old settings -----------&&&& res=tcgetattr(STDIN_FILENO, &org_opts);&&&& assert(res==0);&& //---- set new terminal parms --------& memcpy(&new_opts, &org_opts, sizeof(new_opts));& new_opts.c_lflag &= ~(ICANON | ECHO | ECHOE | ECHOK | ECHONL | ECHOPRT | ECHOKE | ICRNL);& tcsetattr(STDIN_FILENO, TCSANOW, &new_opts);& c=getchar();&& //------& restore old settings ---------& res=tcsetattr(STDIN_FILENO, TCSANOW, &org_opts);& assert(res==0);&}
int main(){&&char pd[128],pd1[128];&&printf("请输入密码:");&while(1)&{& for(i=0;;i++)& {&& pd[i]=getch();&& if(pd[i]=='\n')&& {&&& pd[i]='\0';&&&&& }&& if(pd[i]==127)&& {&&& printf("\b \b");&&& i=i-2;&& }&& else&& printf("*");&& if(i&0)&&& pd[0]='\0';& }&& printf("\n请再次输入:");&& for(i=0;;i++)& {&& pd1[i]=getch();&& if(pd1[i]=='\n')&& {&&& pd1[i]='\0';&&&&& }&& if(pd1[i]==127)&& {&&& printf("\b \b");&&& i=i-2;&& }&& else&& printf("*");&& if(i&0)&&& pd1[0]='\0';& }& if(strcmp(pd,pd1)==0)&&& else& {&& printf("\n您两次输入的密码不一致,请重新输入:\n");&& printf("请输入密码:");& }&}&&printf("\n您输入的密码是:[%s]\n",pd);}
相关资讯 & & &
& (02月09日)
& (08/04/:48)
& (03月05日)
& (08/05/:15)
& (04/11/:44)
   同意评论声明
   发表
尊重网上道德,遵守中华人民共和国的各项有关法律法规
承担一切因您的行为而直接或间接导致的民事或刑事法律责任
本站管理人员有权保留或删除其管辖留言中的任意内容
本站有权在网站内转载或引用您的评论
参与本评论即表明您已经阅读并接受上述条款
chiriemo 发表于 我帮你找到一些问题哦:回删密码的时候,能把前面的“请输入密码:”的提示给删掉了,而且当i&0时,你的程序就会出错,要重置为0。(*^__^*) 嘻嘻……

我要回帖

更多关于 win10正版验证口令 的文章

 

随机推荐