安卓版”,然后将其安装到手机中。
2打开手机中的Wifi开关。
3然后运行“Wifi快速破解器”程序,则程序会自动搜索周围存在的开放Wifi网络,并以列表的形式进行显示。
4点键辩皮击想要连接的Wifi热点,就会d出详细窗口,点击“快速破解”按钮。
5当点击”快速破解“时稿差,程序就对当前Wifi密码进行破解。
如果幸运的话,就可以看到破解后的密码信息灶巧啦。
1 通过C语言 加载系统库调用对应API 控制wifi设备。
这个需要专业知识,专门学习API
2 通过C语言的system命令,调用系统对应命乱高氏令,哗散实现控制
效率比较低, *** 作死板,但快速上手。
百度一下cmd控制wifi 抄对应的命令念坦就可以了。
#include <stdafx.h>//这行是VC编译时要的头文件,你若TC就不要本行了#include <stdio.h>
typedef struct dictnode{char *keychar *valuedictnode *predictnode *next} DictNode
DictNode *pHead = NULL
//(1)make:构造空的字典
int make()
{
if(pHead)return -1
pHead = (DictNode*)malloc(sizeof(DictNode))
memset(pHead,0,sizeof(DictNode))
pHead->pre = pHead
pHead->next = pHead
return 0
}
//(2)size:返回字的字典中记录数
int size()
{
int i
DictNode*p
for(i=0,p=pHeadp->next!=pHeadp=p->next,i++)
return i
}
//(3)IsEmpy:如果字典为空则返回真,否则返回假
int IsEmpy()
{
return (pHead->pre==pHead)
}
//(4)Clear:将字典重置为空
void Clear()
{
DictNode* p,*ptmp
for(p=pHead->nextp!=pHead )
{
ptmp = p
p = p->next
free(ptmp->key)
free(ptmp->value)
free(ptmp)
}
pHead->next = pHead->pre = pHead//最后一个空节信带点也是第一个节点
}
//(5)Insert:插入记录到字典
int Insert(char *key,char*value)
{
DictNode* p, *ptmp
if(!key||!value||!*key||!*value) return -100//调用错误
ptmp = (DictNode*)malloc(sizeof(DictNode))
if(!ptmp) return -2 //内激碧存不足这种极端的情况很难出现,但有可能
memset(ptmp,0,sizeof(DictNode))
ptmp->key =(char*) malloc(strlen(key)+1)
if(!ptmp->key){free(ptmp)return -2} //内存不足这种极端的情况很难出现,但有可能
strcpy(ptmp->key,key)
ptmp->value = (char*)malloc(strlen(value)+1)
if(!ptmp->value){free(ptmp->key)free(ptmp)return -2} //内存不足这种极端的情况很难出现,但有可能
strcpy(ptmp->value,value)
for(p=pHead->nextp->next!=pHeadp=p->next) if(p->key&&!strcmp(p->key,key)) return 1//记录存在,插入失败
ptmp->next = pHeadpHead->pre = ptmp
ptmp->pre = pp->next = ptmp
return 0// *** 作成功返回0
}
//(6)remove:与给定关键字的记录相同则删除,该记录被返回,否则字典保持不变
DictNode* remove(char *key)
{
DictNode* p
for(p=pHead->nextp!=pHead&&strcmp(p->key,key)p=p->next)
if(p==pHead) return NULL
p->pre->next = p->next
p->next->pre = p->pre
p->pre = p->next = NULL
return p//结点p的空间(key value p三个)没有释放,外面要接收返回值并主动释放结点空间或做别的处理如插入另一表中等
}
//(7)IsPrensent:如果存在与给定关键字匹配的记录则返回真,明坦举否则返回假
int IsPrensent(char *key)
{
DictNode* p
for(p=pHead->nextp!=pHead&&strcmp(p->key,key)p=p->next)
return (p!=pHead)
}
//(8)Find:如果存在与给定关键字相同的记录,则返回记录;如果没有找到,则返回空
DictNode* Find(char *key)
{
DictNode* p
for(p=pHead->nextp!=pHead&&strcmp(p->key,key)p=p->next)
if(p==pHead) return NULL
return p//不要对Find返回的记录key值做变更,value值可以修改,value加长时要重新分配空间。因为记录还在字典链表中
}
void main()
{
const char *prtstr = "****************************"
DictNode* ptmp
char keybuf[80]
char valuebuf[1024]
int c
make()
while(1)
{
system("cls")//清屏
printf("%s 选择菜单 %s",prtstr,prtstr)
printf("\n\tF---词条查找\n\tI---插入新词条\n\tR---删除词条\n\tC---清空字典\n\tS---显示字典词条数\n\tQ---退出\n")
printf("请选择 *** 作菜单:")
fflush(stdin)
c = getchar()
if(c>='a'&&c<='z') c -= ('a'-'A')//换大写
if(c!='F'&&c!='I'&&c!='R'&&c!='C'&&c!='S'&&c!='Q') continue
fflush(stdin)
switch(c)
{
case 'F':
printf("词条查找:\n请输入Key值:")scanf("%s",keybuf)
fflush(stdin)
ptmp = Find(keybuf)
if(ptmp){printf("Key:%s Value:%s",ptmp->key,ptmp->value)}
else{printf("没找到词条:%s,你可以先选择插入这个新词条",keybuf)}
break
case 'I':
printf("插入新词条:\n请输入Key值:")scanf("%s",keybuf)
fflush(stdin)
if(IsPrensent(keybuf)){printf("词条%s已存在\n",keybuf)}
else
{
printf("请输入它的解释:")gets(valuebuf)
if(!Insert(keybuf,valuebuf))printf("插入成功\n")
else printf("插入失败\n")
}
break
case 'R':
printf("删除词条:\n请输入Key值:")scanf("%s",keybuf)
fflush(stdin)
ptmp = remove(keybuf)
if(ptmp)
{
free(ptmp->value)free(ptmp->key)free(ptmp)
printf("记录key:[%s]已删除\n",keybuf)
}
else
printf("未找到待删除的记录key:[%s]\n",keybuf)
break
case 'C':
printf("清空字典:\n真的要清吗?\n请输入Yes以确认删除 *** 作(首字母大写):")scanf("%s",keybuf)
fflush(stdin)
if(strcmp(keybuf,"Yes")){printf("放弃了清空 *** 作\n")}
else {Clear()printf("Ok,你坚持 *** 作,现在字典已清空了\n")}
break
case 'S':
printf("显示字典词条数:\n当前词条总数:%d\n", size())
break
case 'Q':
Clear()free(pHead)
printf("Byebye")
exit(0)
}
printf("\n按回车键继续......")
fflush(stdin)
getchar()
}
}
//VC7.1 下调试通过,运行功能正常
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)