编程语言:python
编程工具:anaconda
应用包:pyHook,itertools,PyUserInput
最近,一位朋友忘记了移动硬盘的密码,加密硬盘里的资料需要保留。咨询硬盘公司的客服,因为无法判断硬盘的所属,所以不支持破解密码服务。无奈之下只能暴力破解。
PyUserInput包模拟键盘、鼠标的操作,要预先安装pyHook包。itertools包能够方便的生成密码。
from pymouse import * # 模拟鼠标所使用的包
from pykeyboard import * # 模拟键盘所使用的包
import itertools as its # 生成密码
import time # 连续进行两个动作可能太快而效果不明显,因此加入暂停时间
# 实例化
m = PyMouse() # 鼠标的实例m
k = PyKeyboard() # 键盘的实例k
# 模拟鼠标操作
# m.click(x, y, button, n) # 鼠标点击。x,y–坐标, button–按键选项(1为左键,2为右键),n–点击次数(默认1此,2表示双击,仅此两个值)
# x_dim, y_dim = m.screen_size() # 获取屏幕尺寸,返回两个值分别为长和宽 一般为电脑屏幕的分辨率,如1920*1080)
# print(m.screen_size())
words = "0123456789" # 随机码取值范围
# 随机码长度范围
lenmin = 4
lenmax = 6
m.click(x, y, 1, 1) #点击,最小化程序窗口
for num in range(lenmin,lenmax+1):
keys=its.product(words,repeat=num) #生成num位的遍历密码
for key in keys:
# 估计需要点击的位置坐标:密码框
m.click(x, y, 1, 1) # 表示在(x, y)的地方,单击左键
# 模拟键盘操作 输入密码
k.type_string("".join(key)) # 模拟键盘输入字符串
print("".join(key))
# 估计需要点击的位置坐标:点击连接移动硬盘
m.click(x, y, 1, 1)
#time.sleep(0.2)
# 估计需要点击的位置坐标:密码错误点击确定
m.click(x, y, 1, 1)