_winreg.OpenKey(key, sub_key, res, sam)     key是一个已经打开的键,或者是HKEY_CLASSES_ROOTHKEY_CURRENT_USERHKEY_LOCAL_MACHINEHKEY_USERSHKEY_PERFORMANCE_DATAHKEY_CURRENT_CONFIG这些中的一个。

_winreg.EnumKey(key, index)         枚举键,key is an already open key, or any one of the predefined HKEY_* constants.index is an integer that identifies the index of the key to retrieve.

_winreg.EnumValue(key, index)       枚举一个一打开的注册表键值,返回元组

for i in range(1,6):
print EnumValue(netKey,i)
'''
输出结果:
('Description', u'xiaoming', 1)
('Source', 8, 4)
('DnsSuffix', u'workgroup', 1)
('FirstNetwork', u'xiaoming', 1)
('DefaultGatewayMac', '\xb0\xd5\x9d0\x94\xa2', 3)
'''

提取无线访问热点名称及Mac地址:

 #coding=utf-8
from _winreg import * def va12addr(val):
addr=""
for ch in val:
addr += ("%02x " %ord(ch))
addr = addr.strip(' ').replace(" ",":")[0:17]
return addr def printNets():
net ="SOFTWARE\Microsoft\Windows NT\CurrentVersion\NetworkList\Signatures\Unmanaged"
key = OpenKey(HKEY_LOCAL_MACHINE,net, 0, KEY_READ | KEY_WOW64_64KEY)
    #我用的是32-bit Python on 64-bit Windows,所以要加KEY_READ | KEY_WOW64_64KEY这一参数,否则运行失败
print '\n[+] Networks You have Joined.'                  
for i in range(100):
try:
guid = EnumKey(key,i)
#print guid
netKey = OpenKey(key,str(guid))
# for i in range(1,6):
# print EnumValue(netKey,i)
(n,name,t) = EnumValue(netKey,1)
(n,addr,t) = EnumValue(netKey,5)
macAddr = va12addr(addr)
netName = str(name)
print '[+] '+netName +' '+macAddr
CloseKey(netKey)
except Exception ,e:
print e
pass def main():
printNets()
if __name__=='__main__':
main()

运行结果:

[+] Networks You have Joined.

[+] xiaoming b0:d5:9d:30:94:a2
[+] ahu.portal 48:fd:8e:30:5e:d6
[+] asdfghjkl e8:cd:2d:23:10:f7
[+] qizi? c2:14:3d:da:e1:07

参考资料:Violent Python A Cookbook for Hackers, Forensic Analysts, Penetration Testers and Security Engineers ,TJ O'Connor

    http://stackoverflow.com/questions/28128446/how-do-i-use-python-to-retrieve-registry-values

利用_winreg模块在注册表中分析无线访问热点的更多相关文章

  1. java如何操作注册表(Preferences类)(在windows的注册表中保存、读取)

    我们经常需要将我们的程序运行中的一些信息(比如在选项对话框中的设置)记录下来,以做便再次运行的时候不用再重写填写这些数据.这对改善软件的人机可用性方面是很有用的.比如:数据库监控.日志工具,JDBMo ...

  2. 用javascript技术读取注册表中软件安装位置并启动本地软件

    1.首先读取注册表中本地软件安装的位置,如果未安装则无就跳转到下载页面. 2.启动软件,关闭页面. 3.如报错提示. <SCRIPT language=javascript>  <! ...

  3. 在注册表中无Python3.5安装路径的情况下安装pywin32-

    当安装pywin32出现Python Version 3.5 required which was not found in the registry的时候表面注册表中没有Python3.5的安装路径 ...

  4. UAC在注册表中的对应位置

    UAC在注册表中的对应位置 HKEY_LOCAL_MACHINE/SOFTWARE/Microsoft/Windows/CurrentVersion/Policies/System 相关键值设置: U ...

  5. usb由于其配置信息(注册表中的)不完整或已损坏,Windows 无法启动这个硬件设备

    在设备管理器的usb设备的属性中,显示提示“由于其配置信息(注册表中的)不完整或已损坏,Windows 无法启动这个硬件设备”.注册表坏了.经过查询,解决方法如下: 方法:打开注册表编辑器(开始--& ...

  6. NSIS:在注册表中记录安装路径以便重装或升级时读取

    原文 NSIS:在注册表中记录安装路径以便重装或升级时读取 在NSIS中,这个功能是非常有用的,可以避免用户把程序安装到多个位置的尴尬. 第1步:在“安装目录选择页面”前面加入以下代码: 1 !def ...

  7. 注册表中LEGACY残留项的清理技巧

    http://bbs.kafan.cn/thread-889517-1-1.html 注册表中LEGACY残留项的清理技巧 2.Windows Vista系统 Windows XP系统下的修改权限的方 ...

  8. 将字符串存储到注册表中,长度一定是 strlen(text) + 1

    参考:https://docs.microsoft.com/en-us/windows/desktop/sysinfo/registry-value-types 将字符串存储到注册表中,长度参数一定要 ...

  9. 在注册表中查看Windows10系统激活密钥的方法

      1 2 3 4 5 6 7 分步阅读 百度经验:jingyan.baidu.com 激活Windows10系统(非自己使用激活密钥激活的系统)以后,我们不一定清楚激活密钥是什么.如果想查看自己电脑 ...

随机推荐

  1. [后端人员耍前端系列]KnockoutJs篇:使用KnockoutJs+Bootstrap实现分页

    一.引言 由于最近公司的系统需要改版,改版的新系统我打算使用KnockoutJs来制作Web前端.在做的过程中,遇到一个问题——如何使用KnockoutJs来完成分页的功能.在前一篇文章中并没有介绍使 ...

  2. JAVA EE 第一阶段项目问题

    一: 乱码 原因: 由于同组的其他同学的myeclipse默认的编码方式是GBK,而我的默认的是UTF-8.所以当我使用svn把其他同学提交到组长那里去的代码下载下来的时候,就全乱码了! 解决问题: ...

  3. Hibernate逍遥游记-第13章 映射实体关联关系-001用外键映射一对一(&lt;many-to-one unique=&quot;true&quot;&gt;、&lt;one-to-one&gt;)

    1. <?xml version="1.0"?> <!DOCTYPE hibernate-mapping PUBLIC "-//Hibernate/Hi ...

  4. Adobe Edge Animate --使用HTML5实现手机摇一摇功能

    Adobe Edge Animate --使用HTML5实现手机摇一摇功能 版权声明: 本文版权属于 北京联友天下科技发展有限公司. 转载的时候请注明版权和原文地址. HTML5的发展日新月异,其功能 ...

  5. json 序列化和反序列化

    Json串的格式: string strDataDiyList={"id":"1","name":"zhangsan", ...

  6. List subList()的一个demo

    只要保证toIndex不大于size并且fromIndex不大于toIndex即可(谁会传一个负数的下标呢?) public List<E> subList(int fromIndex, ...

  7. This version of the rendering library is more recent than your version of ADT plug-in. Please update

    预览layout.xml文件时提示: This version of the rendering library is more recent than your version of ADT plu ...

  8. dataGridView笔记

    最近用dataGridView比较多,先把代码备份在这里,有时间系统总结一下 using FindId.DAL; using FindId.Model; using System; using Sys ...

  9. spring boot 使用 EnvironmentAware 加载配置文件

    @Configuration public class PropertiesUtils implements EnvironmentAware { private int redisExpireTim ...

  10. Java 定时任务的几种实现方式

    JAVA实现定时任务的几种方式 @(JAVA)[spring|quartz|定时器]  近期项目开发中需要动态的添加定时任务,比如在某个活动结束时,自动生成获奖名单,导出excel等,此类任务由于活动 ...