python黑科技:还在为没有wifi而烦心吗?这篇文章解决你的困扰

python作为一门高级编程语言,它的定位是优雅、明确和简单。阅读Python编写的代码感觉像在阅读英语一样,这让使用者可以专注于解决问题而不是去搞明白语言本身。Python虽然是基于C语言编写,但是摒弃了C中复杂的指针,使其变得简明易学。并且作为开源软件,Python允许对代码进行阅读,拷贝甚至改进。这些性能成就了Python的高效率,有“人生苦短,我用Python”之说,是一种十分精彩又强大的语言。

在最近的公司项目开发中接触到python语言及wifi相关的一些知识,正好将最近学到的和大家分享一下。

0x0001 开发环境:

windows 10+python2.7.15

0x0002 开发目标:

开发基于字典破解wifi热点密码的小工具

在开发这个工具的时候笔者现在网上搜索到了一些项目,但都是linux下的,不能直接用于windows平台,因此就决定结合找到的linux下的项目,修改成windows下可运行的。

关于怎么快速学python,有什么方法,这个问题,想必大家都已经心中有数了,打算深入了解这个行业的朋友,可以加下小编的python学习裙:588+090+942,不管你是小白还是大牛,小编我都欢迎,不定期分享干货,包括小编自己整理的一份2018最新的python资料和0基础入门教程,欢迎初学和进阶中的小伙伴。

每天晚上20:00我都会开直播给大家分享python学习知识和路线方法,群里会不定期更新最新的教程和学习方法(进群送2018python学习教程),大家都是学习python的,或是转行,或是大学生,还有工作中想提升自己能力的python党,如果你是正在学习python的小伙伴可以加入学习。最后祝所有程序员都能够走上人生巅峰,让代码将梦想照进现实,非常适合新手学习,有不懂的问题可以随时问我,工作不忙的时候希望可以给大家解惑。

首先找到文章《一个非常简单易懂的WIFI密码爆破python脚本》但是文章中说使用了pywifi模块,“这个模块在win下有点鸡肋,作者在调用WLANAPI时没有做好WLAN_SECURITY_ATTRIBUTES的封装,所以推荐在linux下跑,我测试所使用的是Kali 2.0 自带python 2.7.6 ,可直接通过 pip install pywifi 安装。”但笔者在测试的时候发现,在windows下还是可以运行的,因为要对这个模块的源代码进行一些修改,所以就没有安装模块,而是直接拷贝模块的源代码到项目目录下。

0x0003 模块的修改:

在使用模块自带的测试用例时候,发现print输出了很多无用的信息,因此在_wifiutil_win.py的335行去掉对“show_my_need_info”的调用。

0x0004 程序执行流程

功能需求比较清晰,因此我们的步骤如下:

1、获得本机无线网卡信息

2、扫描周围wifi热点

3、使用字典尝试连接wifi热点

4、输出扫描结果

按照上面的流程就可以编写代码了。

0x0005 代码实现

获得无线网信息

引用模块后,主要使用interfaces函数获取本机无线网卡信息,具体代码封装如下:

扫描周围热点

主要通过scan函数获得scan_results结果,具体代码封装如下,这里sleep(2)是因为测试的时候本机的无线网卡返回信息需要一些时间,当然如果你的网卡性能好,可以去掉这个sleep:

尝试连接(破解密码)

密码破解这里先要定义一个Profile,然后再将Profile作为参数调用connect进行连接尝试,使用status函数取连接结果的返回值,如果是const.IFACE_CONNECTED则连接成功,显示结果,如果是其他则为失败。

主要代码如上,运行效果如下:

问题

这里有一个问题,就是pywifi模块的windows版本的代码里并没有实现获取wifi热点的加密状态信息,比如是使用WPA、WPA2、WPA2PSK还是WPAPSK方式加密认证的,因此我就默认将所有的wifi热点看作是开启了加密认证的,并在破解的时候视为“profile.akm.append(const.AKM_TYPE_WPA2PSK)”进行破解尝试。

开始学注意几点:

1.代码规范,这本身就是一个非常好的习惯,如果开始不养好好的代码规划,以后会很痛苦

2.多动手,少看书,很多人学Python就一味的看书,这不是学数学物理,你看例题可能就会了,学习Python主要是学习编程思想。

3.勤练习,学完新的知识点,一定要记得如何去应用,不然学完就会忘,学我们这行主要都是实际操作。

4.学习要有效率,如果自己都觉得效率非常低,那就停不停,找一下原因,去问问过来人这是为什么

  • 发表于:
  • 原文链接https://kuaibao.qq.com/s/20180518A1BCKF00?refer=cp_1026
  • 腾讯「云+社区」是腾讯内容开放平台帐号(企鹅号)传播渠道之一,根据《腾讯内容开放平台服务协议》转载发布内容。
  • 如有侵权,请联系 yunjia_community@tencent.com 删除。

扫码关注云+社区

领取腾讯云代金券