mirror of
https://github.com/Mumuzi7179/UsbKeyboard_Mouse_Hacker_Gui.git
synced 2025-06-20 09:50:10 +00:00
111 lines
3.7 KiB
Python
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()
|