UsbKeyboard_Mouse_Hacker_Gui/KeyboardDecrypt.py
FW_Mumuzi e8074b6536
Update KeyboardDecrypt.py
update bluetooth
2023-10-18 17:34:10 +08:00

111 lines
3.7 KiB
Python

from PySide6.QtWidgets import QComboBox,QStackedWidget,QApplication, QMainWindow, QPushButton, QTextEdit, QFileDialog, QVBoxLayout, QWidget, QLabel, QLineEdit, QHBoxLayout, QRadioButton, QButtonGroup, QTabWidget, QMenuBar, QToolBar
from PySide6.QtGui import QAction
from PySide6.QtCore import Qt, Signal
import sys,os
import datetime
from UsbKeyboardExtract import extract_data,process_data
class KeyboardDecryptWindow(QWidget):
file_name = Signal(str) # 文件名信号
file_dropped = Signal(str)
def __init__(self,parent=None):
super(KeyboardDecryptWindow, self).__init__(parent)
self.layout = QVBoxLayout()
self.setLayout(self.layout)
# 选择执行的类型
self.type_layout = QHBoxLayout()
self.type_label = QLabel("选择执行类型:")
self.type_layout.addWidget(self.type_label)
self.button_group = QButtonGroup(self)
self.select_type1 = QRadioButton("capdata")
self.select_type2 = QRadioButton("usbhid")
self.select_type3 = QRadioButton("bluetooth")
self.button_group.addButton(self.select_type1)
self.button_group.addButton(self.select_type2)
self.button_group.addButton(self.select_type3)
self.type_layout.addWidget(self.select_type1)
self.type_layout.addWidget(self.select_type2)
self.type_layout.addWidget(self.select_type3)
# 确定按钮
self.run_button = QPushButton("点击执行")
stylesheet = load_stylesheet("./css/style.css")
self.run_button.setStyleSheet(stylesheet)
self.run_button.clicked.connect(self.run_command)
self.type_layout.addWidget(self.run_button)
self.layout.addLayout(self.type_layout)
# 输出窗口
self.output = QTextEdit()
self.layout.addWidget(self.output)
self.output.setReadOnly(True)
self.setAcceptDrops(True)
# 文件名变量
self.file = ''
# 接收文件名信号
self.file_name.connect(self.set_file)
def set_file(self, file):
self.file = file
def dragEnterEvent(self, event):
if event.mimeData().hasUrls():
event.accept()
else:
event.ignore()
def dropEvent(self, event):
urls = event.mimeData().urls()
url = urls[0]
filePath = url.toLocalFile()
self.file_dropped.emit(filePath)
def run_command(self):
self.output.clear()
current_time = datetime.datetime.now().strftime("%Y/%m/%d %H:%M:%S")
self.output.append(f"{current_time}")
checked_button = self.button_group.checkedButton()
if checked_button:
type = checked_button.text()
else:
type = None
if not self.file:
self.output.append("错误:没有选择文件。")
return
if not type:
self.output.append("错误:没有选择执行类型。")
return
self.output.append(f"执行的类型: {type}")
try:
result,result1 = extract_data(type, self.file)
result2,result_delete = process_data(result1)
except Exception as e:
self.output.append(f"执行出错:{e}")
else:
self.output.append("执行成功。结果如下:")
self.output.append(result)
self.output.append("处理后的结果如下:")
self.output.append(result2)
self.output.append("删除的字符如下:")
self.output.append(result_delete)
def load_stylesheet(filename):
with open(filename, "r") as f:
return f.read()