ubnt解决方案
查看: 26143|回复: 136

珍惜生命远离WPA,跟我来学做字典软件

  [复制链接]

213

回帖

2812

积分

117 小时

在线时间

少校

注册时间
2009-5-17
金币
2093 个
威望
67 个
荣誉
12 个

尚未签到

发表于 2011-9-18 20:58 |显示全部楼层
本帖最后由 landboy 于 2011-9-19 09:39 编辑

珍惜生命远离WPA,跟我来学做字典软件

      今天年初开始,附近多了几个信号强WPA加密信号,奶瓶一丢,密码封包随手得来。
有四五个WPA,密码1234567890和0123456789的两个秒杀。
结果另外3个不行了,开500W字典跑的太慢,玩上了EWSA,蓝宝石HD5670硬件加速
可以跑到1.9W,平均下来也有1.5W,跑一个也要好几分钟。
PJ版的EWSA3.0反正在我的电脑显示2W多,但字典就是0%进度不会动
测试版的EWSA3.0测试自己的WPA密码,只能出2位数。
     所以自己就写了个密码提取工具,提取字典中包含特定数字的密码工具
把字典排序和做小,比如提取有数字8的密码,整理一起.
软件早就发布在本论坛,查我的贴可以查到,这次把源代码发出来给大家玩玩http://forum.anywlan.com/thread-83808-1-1.html  工具在这里下载,详细就见这个帖子了



录制一个视频教程,请楼上笑纳
WPA密码PJ视频教程 ,为了让更多的人看到这个贴纸,下载地址隐藏一下

游客,如果您要查看本帖隐藏内容请回复


路由器 AK2368
密码asdfghjkl 确实是这个


     今天我们不是做这个工具,因为对大多数人直接看上面工具C++源代码还是很吃力的 。
我要和大家分享的是自己纯手工打造字典的方法和乐趣。自己修改简单的C++源代码,然后编译成EXE
然后执行一下,密码就出来。

     写C++代码需要一个文本编辑器,和一个C/C++编译器,我给大家推荐这个,如果你有VC,哪也无妨
     点击这里下载 Code::Blocks SVN6988 基本中文版 和 GCC编译集成包 16.9 MB (17,734,971 字节)
http://cid-0604030941ce925d.office.live.com/self.aspx/codeblocks-Demo/CodeBlocks6988.7z



这是这个软件写代码和执行编译的贴图
这是绿色软件,解开就可以用,新建一个文件另存pw.cpp ,按下F9 或者 一个齿轮和绿色播放标志的随便按下
字典文件就写到 c盘 pw.txt 里了,写软件也不是很难的事,就是看你会不会去尝试。

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?注册 微信登录

x

213

回帖

2812

积分

117 小时

在线时间

少校

注册时间
2009-5-17
金币
2093 个
威望
67 个
荣誉
12 个

尚未签到

发表于 2011-9-18 21:00 |显示全部楼层
本帖最后由 landboy 于 2011-9-18 21:52 编辑


本论坛不是专业编程论坛,所以把简单的C++代码就直接做成图片,方便观看
后面复制C++代码 的文本内容,方便有兴趣的朋友,测试和修改着玩
  1. #include <iostream>    // 数据流输入/输出
  2. #include <fstream>     // 文件输入/输出
  3. using namespace std;
  4. int main()
  5. {
  6.     // 本地的电话一般是 88 和 89 开始,总共8位数,做个电话密码字典
  7.     int pw = 88123456; // 字典开始
  8.     fstream fout("c:/pw.txt",ios_base::out);
  9.     while(pw != 89888888) { // 字典结束
  10.         fout << pw++ << endl;
  11.     }
  12.     return 0;
  13. }
复制代码

这个程序写的粗糙了点,主要是为了让大家能看懂,但是因为硬盘没有内存快,读写文件次数太多,我这里要10秒多,
所以我就用 stringstream 字符串流做缓冲速度提高了很多,现在只要 1.14秒了,电脑的还是挺聪明,只要我们没有叫他去做傻事.


  1. #include <iostream>    // 数据流输入/输出
  2. #include <string>      // 字符串类
  3. #include <fstream>     //文件输入/输出
  4. #include <sstream>

  5. using namespace std;

  6. int main()
  7. {
  8.     // 本地的电话一般是 88 和 89 开始,总共8位数,做个电话密码字典
  9.     int pw = 88123456; // 字典开始
  10.     stringstream oss;  //  字符串流 做缓冲速度提高
  11.     fstream fout("c:/pw.txt",ios_base::out);
  12.     while(pw != 89888888) { // 字典结束
  13.         oss << pw++ << endl;
  14.     }
  15.     fout << oss.str();
  16.     return 0;
  17. }
复制代码

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?注册 微信登录

x
回复

使用道具 举报

213

回帖

2812

积分

117 小时

在线时间

少校

注册时间
2009-5-17
金币
2093 个
威望
67 个
荣誉
12 个

尚未签到

发表于 2011-9-18 21:01 |显示全部楼层

实用的字典工具雏形出来了,可以修改密码头字符

本帖最后由 landboy 于 2011-9-18 23:11 编辑

今天在小舅子里获得一个WPA包,结果还是  跑不出密码包,电脑里 存了4个没有P解J的WPA了
写这个文章 是比较无聊,所以就写个程序解下闷,因为P解J WPA 密码,如果密码一复杂,基本就没戏了,跑包浪费时间
所以把有限的时间,用来了解下,做个好密码是多么的不容易,就不不会把有限的时间
去跑没有用的垃圾密码包了。
我分析过奶瓶里的  500W 密码看过,很多都是 英文的密码,国内基本没用

自己做个字典,不管有没有用,总算能学点东西,还是挺有意思的。



我把前面的代码,再来个大手术,增加三个变量,可以定制成符号要求的密码字典
    const  int pw_length = 8;    // 密码长度8位
    char pw_head[] = "cctv";     // 密码开头字母,小与密码长度
    char pwfile[] = "c:/pw.txt"; // 密码保存文件,这3处可以修改
如果我们知道对方的姓名,可以把 cctv 改成 xin
就可以出来 xin0  --> xin88888 之间的密码
保存的文件也可以修改成 D:/xin_pw.txt      注意这里 是用 / 这个斜杠,


  1. #include <iostream>    // 数据流输入/输出
  2. #include <string>      // 字符串类
  3. #include <fstream>     //文件输入/输出
  4. #include <sstream>
  5. #include <string.h>
  6. #include <math.h>

  7. using namespace std;

  8. int main()
  9. {
  10.     const  int pw_length = 8;    // 密码长度8位
  11.     char pw_head[] = "cctv";     // 密码开头字母,小与密码长度
  12.     char pwfile[] = "c:/pw.txt"; // 密码保存文件,这3处可以修改

  13.     stringstream oss;
  14.     fstream fout(pwfile, ios_base::out);
  15.     int digital_length = pw_length - strlen(pw_head); // 数字的长度
  16.     int end_digital = (int) pow(10.0 , digital_length); // 数字的边界 10的X次方

  17.     for (int pw =0 ; pw != end_digital ; pw++) {   // 为了代码简单,cctv0 五位的开始了
  18.         oss << pw_head << pw << endl;
  19.         if (pw < 100)            // 测试显示前99个
  20.             cout << pw_head << pw << endl;
  21.     }
  22.     fout << oss.str();
  23.     cout << "请打开文件文件查看字典: " << pwfile << endl;
  24.     fout.close();
  25.     return 0;
  26. }
复制代码




2011年9月18日 23点:05分了,在网上留一下足迹,在家里使用ceng的电脑写下这些文章
感谢 TP-LINK_596480 的主人  0088885266 (WEP密码) ,能让我晚上看下网页,夜深的时候看看土豆
今天的日子是9.18,本地竟然没有响警报。

明天接着修改功能,能把一个文本文件里的 批量关键字,读进来,和数字组成 更加多的密码

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?注册 微信登录

x
回复

使用道具 举报

213

回帖

2812

积分

117 小时

在线时间

少校

注册时间
2009-5-17
金币
2093 个
威望
67 个
荣誉
12 个

尚未签到

发表于 2011-9-18 21:01 |显示全部楼层
本帖最后由 landboy 于 2011-9-20 00:40 编辑


今天晚上在家里看电影了,是自己在店里下载的。 看的是动作片《黑豹天下》,里面有个高科技的软件。
我还以为是PS,没想到是我天天用的吃饭家伙CorelDRAW。捕捉了记张图,用PS制作了个gif.
没有ceng在线看电影,制作字典程序,睡了一夜有些想法,但是白天比较忙,所以现在开始写个把小时就睡觉。

主要是完成功能,从一个配置文件里里读出所有姓氏的拼音(zhang li wang等),然后和数字组合成特定位数(8位或者10位数)
如果来得及,后面的数字做一个判断,复合特定条件(比如生日,年份,或者两个88连一起的)的才生成密码


pypw01.cpp  和  xing_py.txt 下载链接

  1. #include <iostream>    // 数据流输入/输出
  2. #include <string>      // 字符串类
  3. #include <vector>
  4. #include <algorithm>
  5. #include <fstream>     //文件输入/输出
  6. #include <sstream>
  7. #include <string.h>
  8. #include <math.h>
  9. using namespace std;

  10. bool digit_luckynumber(int &dit); // 88、连号、年份等
  11. bool digit_isbirthday(int &dit);  // 生日
  12. bool digit_year_month(int &dit);  // 年月

  13. int main()
  14. {
  15.     string pwfile = "c:/pypw.txt"; // 密码保存文件,这里三个地方可以自由修改
  16.     string pw_head = "cctv";     // 密码开头字母,小与密码长度
  17.     const  int pw_length = 8;    // 密码长度8位

  18.     stringstream oss;
  19.     fstream fout(pwfile.c_str(), ios_base::out);
  20.     fstream py_file("xing_py.txt", ios_base::in);

  21.     vector<string> py_vec(1, pw_head);  // 用户密码头 优先最前面
  22.     string word;   // 装载拼音文件
  23.     while (py_file >> word) {
  24.         py_vec.push_back(word);
  25.     }

  26.     vector<string>::iterator pyiter = py_vec.begin(); // 拼音迭代器
  27.     int digital_length(0);
  28.     int end_digital(0);

  29.     while (pyiter != py_vec.end()) {    // 输出所有的拼音组合
  30.         oss.clear();
  31.         oss.str(""); // 清空流

  32.         digital_length = pw_length - pyiter->size();    // 数字的长度
  33.         end_digital = (int) pow(10.0 , digital_length); // 数字的边界 10的X次方
  34.         for (int pw = 0 ; pw != end_digital ; pw++) {   // 为了代码简单,cctv0 五位的开始了
  35.             if (digit_luckynumber(pw)) {
  36.                 oss << *pyiter << pw << endl;
  37.             }
  38.         }
  39.         cout << *pyiter << "\t"; // 输出拼音关键字
  40.         fout << oss.str();        // 写文件
  41.         pyiter ++;
  42.     }
  43.     cout << "请打开文件文件查看字典: " << pwfile << endl;
  44.     fout.close();
  45.     return 0;
  46. }
  47. bool digit_luckynumber(int &dit)
  48. {
  49.     bool ret = false;
  50.     while ((1970 < dit) && (dit < 2012)) {
  51.         return true;
  52.     }
  53.     return ret;
  54. }
复制代码

xing_py.txt  为200个百家姓 里的拼音,整理后是 150多个,按字母排序了
pypw01.cpp代码有误,改正BUG和写了几个函数定义,修改在这里说明还是第一个版本,只是实现功能,还没有优化和效率很差的
使用这个程序生成的密码 pypw.txt 有1.05G,实在太大了,接下来我们优化一下

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?注册 微信登录

x
回复

使用道具 举报

213

回帖

2812

积分

117 小时

在线时间

少校

注册时间
2009-5-17
金币
2093 个
威望
67 个
荣誉
12 个

尚未签到

发表于 2011-9-18 21:02 |显示全部楼层
本帖最后由 landboy 于 2011-9-21 23:23 编辑



http://srgb.googlecode.com/files/pydigit_pw.7z
源代码下载 和 编译器好的文件下载。
执行后会生成一个    拼音和数字组合密码.txt  42M  大小

    图片中绿色处,在源代码里已经改正如下
    load_sstream(oss, luckynumber_file);    oss.seekg(0, ios_base::end);      // 这里需要添加一行,不然只加载一个文件
    load_sstream(oss, birthday_file); // 加载两个文件到oss

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?注册 微信登录

x
回复

使用道具 举报

597

回帖

5059

积分

286 小时

在线时间

中校

注册时间
2010-11-8
金币
4375 个
威望
9 个
荣誉
0 个
累计签到:354 天
连续签到:0 天
[LV.365]无线熟人
发表于 2011-9-18 21:05 |显示全部楼层
不懂,能否详细点,这些命令在哪用,CMD下吗?还是记事本里编批处理BAT。
回复

使用道具 举报

6317

回帖

9万

积分

4107 小时

在线时间

论坛巡察员

灌水天才雷锋勋章正义勋章

注册时间
2011-1-11
金币
89658 个
威望
436 个
荣誉
11 个
累计签到:265 天
连续签到:0 天
[LV.365]无线熟人
发表于 2011-9-18 21:10 |显示全部楼层
OK OK!强力插入...........顶

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?注册 微信登录

x
回复

使用道具 举报

402

回帖

8503

积分

1104 小时

在线时间

中校

注册时间
2010-2-1
金币
7981 个
威望
0 个
荣誉
0 个
累计签到:830 天
连续签到:0 天
[LV.1095]铁杆粉丝
发表于 2011-9-18 21:20 |显示全部楼层
楼上的也太强大了~~~~~~~~~~~~~~~~
回复

使用道具 举报

3941

回帖

1万

积分

907 小时

在线时间

上校

雷锋勋章太平绅士正义勋章灌水天才伯乐勋章

注册时间
2010-8-20
金币
11397 个
威望
309 个
荣誉
2 个
累计签到:352 天
连续签到:0 天
[LV.365]无线熟人
发表于 2011-9-18 21:22 |显示全部楼层
楼楼上的图,强大。
回复

使用道具 举报

803

回帖

1万

积分

484 小时

在线时间

上校

注册时间
2010-7-25
金币
13284 个
威望
9 个
荣誉
0 个
累计签到:96 天
连续签到:0 天
[LV.100]试剑无线
发表于 2011-9-18 21:24 |显示全部楼层
看下。。。。。
回复

使用道具 举报

2300

回帖

7155

积分

1865 小时

在线时间

中校

灌水天才鲁班小弟推广先锋

注册时间
2011-7-29
金币
4548 个
威望
1 个
荣誉
1 个
累计签到:80 天
连续签到:0 天
[LV.100]试剑无线
发表于 2011-9-18 21:26 |显示全部楼层
楼楼上的图,强大。
回复

使用道具 举报

1万

回帖

11万

积分

3400 小时

在线时间

砖家教授

推广先锋杰出会员技术达人太平绅士灌水天才正义勋章雷锋勋章资深收藏家设备暴发户

注册时间
2009-1-9
金币
97509 个
威望
1496 个
荣誉
14 个
累计签到:2580 天
连续签到:0 天
[LV.2920]超级粉丝
发表于 2011-9-18 21:36 |显示全部楼层
不错,这是个好的思路,前提是人家用的是纯数字
今日已签到
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 注册 微信登录

本版积分规则

Archiver | 手机版 | 无线门户 ( 粤ICP备11076993号|粤公网安备44010602008359号 ) |网站地图

GMT+8, 2026-5-18 10:05

返回顶部 返回列表