Compare commits

...
41 Commits
Author SHA1 Message Date
PYDT a5f07706f5 Add files via upload 2023-08-01 12:24:21 +08:00
PYDT 2b6b8accf1 Add files via upload 2023-07-31 22:54:25 +08:00
PYDT e6aca5533b Add files via upload 2023-07-30 23:21:43 +08:00
PYDT dc60cc3ccb Add files via upload 2023-07-27 17:36:07 +08:00
PYDT 5613993019 Add files via upload 2023-07-27 01:18:45 +08:00
PYDT 1613101bd6 Add files via upload 2023-07-27 01:17:56 +08:00
PYDT cb3440494e Add files via upload 2023-07-26 22:12:46 +08:00
PYDT 78b979f397 Add files via upload 2023-07-26 19:22:42 +08:00
PYDT 6742b71208 Add files via upload 2023-07-26 18:03:47 +08:00
PYDT e0178ac2b5 Add files via upload 2023-07-25 20:08:30 +08:00
PYDT e2141decaa Add files via upload 2023-07-23 03:23:51 +08:00
PYDT 4a68c62e72 Add files via upload 2023-07-22 14:00:05 +08:00
PYDT bc7d5704f9 Add files via upload 2023-07-22 00:22:58 +08:00
PYDT a984be2535 Add files via upload 2023-07-16 16:36:37 +08:00
PYDT 026f96d473 Add files via upload 2023-07-16 15:02:32 +08:00
PYDT 0dbca7895e Add files via upload 2023-07-12 18:11:16 +08:00
PYDT 0f390668f7 Delete Library directory 2023-07-10 21:54:28 +08:00
PYDT f4ced70d8e Add files via upload 2023-07-10 21:52:36 +08:00
PYDT 7b805df433 Delete PYAS_UI_rc.py 2023-07-10 21:49:32 +08:00
PYDT 4b66171388 Delete PYAS_UI.py 2023-07-10 21:49:17 +08:00
PYDT 0cf80753ae Delete PYAS_Model.py 2023-07-10 21:43:35 +08:00
PYDT 6f3d315851 Add files via upload 2023-07-10 21:43:23 +08:00
PYDT 475d4b4a80 Add files via upload 2023-07-10 21:36:31 +08:00
PYDT bd8633de0d Add files via upload 2023-07-10 21:30:43 +08:00
PYDT 5d2937c896 Add files via upload 2023-07-10 21:30:00 +08:00
PYDT eb89284834 Add files via upload 2023-07-09 21:29:38 +08:00
PYDT f5777b2a68 Delete PYAS_Version_File.py 2023-07-09 21:29:30 +08:00
PYDT 9431a4dd6c Add files via upload 2023-07-09 21:26:44 +08:00
PYDT 82a4dfdfd5 Add files via upload 2023-07-07 03:49:48 +08:00
PYDT 9bd63d15e9 Add files via upload 2023-07-07 03:41:27 +08:00
PYDT f6e5c8e0b1 Add files via upload 2023-07-07 01:46:25 +08:00
PYDT 3b56f6dc6f Add files via upload 2023-07-07 00:53:36 +08:00
PYDT 2c24079552 Add files via upload 2023-07-05 17:24:25 +08:00
PYDT f58a846826 Add files via upload 2023-07-05 12:06:22 +08:00
PYDT 8bc74a8833 Add files via upload 2023-07-05 12:03:34 +08:00
PYDT 5bd0033ff0 Add files via upload 2023-07-04 23:48:20 +08:00
PYDT e45758be80 Add files via upload 2023-07-04 23:41:04 +08:00
PYDT 5033348eed Update README.md 2023-07-04 19:53:51 +08:00
PYDT 2327fd099c Add files via upload 2023-07-04 15:36:15 +08:00
PYDT 6afa02ea71 Add files via upload 2023-07-04 15:34:48 +08:00
PYDT 9cf1b38e56 Add files via upload 2023-07-04 15:32:44 +08:00
12 changed files with 11241 additions and 4529 deletions

No files matched your search

BIN
View File
Binary file not shown.

Before

Width:  |  Height:  |  Size: 17 KiB

-5
View File
@@ -1,5 +0,0 @@
{
"language": "en_US",
"high_sensitivity": 0,
"cloud_services": 1
}
+311 -319
View File
@@ -1,12 +1,13 @@
import os, gc, sys, time, json, psutil
import ctypes, requests, subprocess
import win32file, win32api, win32con, win32gui
import xml.etree.ElementTree as ET
import os, gc, sys, time, json, requests
import psutil, ctypes, win32con, win32gui
import win32file, win32api, subprocess
import xml.etree.ElementTree as et
from hashlib import md5, sha1, sha256
from pefile import PE, DIRECTORY_ENTRY
from PYAS_Language import translations
from PYAS_Model import function_list
from PYAS_UI import Ui_MainWindow
from PYAS_Function import function_list
from PYAS_Extension import slist, alist
from PYAS_Interface import Ui_MainWindow
from PyQt5 import QtWidgets, QtGui, QtCore
from PyQt5.QtWidgets import *
from PyQt5.QtGui import *
@@ -21,20 +22,18 @@ class MainWindow_Controller(QtWidgets.QMainWindow):
self.ui = Ui_MainWindow()
self.ui.setupUi(self)
self.create_library()
self.init_config()
self.init_config_ui()
self.init_config_mbr()
self.init_configs()
self.init_whitelist()
self.init_blocklist()
self.init_tray_icon()
self.setup_control()
self.init_protect()
self.showNormal()
self.show_pyas_ui()
def init_tray_icon(self):
self.tray_icon = QSystemTrayIcon(self)
self.tray_icon.setIcon(QFileIconProvider().icon(QFileInfo(self.pyas)))
self.tray_icon.activated.connect(self.showNormal)
self.tray_icon.activated.connect(self.show_pyas_ui)
self.tray_icon.show()
def init_protect(self):
@@ -45,25 +44,20 @@ class MainWindow_Controller(QtWidgets.QMainWindow):
self.protect_threading_init_5()
self.block_window_threading_init()
def init_config(self):
self.Safe = True
self.Virus_Scan = False
def init_configs(self):
self.scan = False
self.block_window = True
self.pyas_opacity = 0
self.pyas_version = "2.7.9"
self.ui.Theme_White.setChecked(True)
self.pyas = str(sys.argv[0]).replace("\\", "/")
self.sflist = [".exe",".dll",".com",".msi",".js",".jar",".vbs",".ps1",".xls",".xlsx",".doc",".docx"]
self.md5_key = self.pyas_key()
self.pyasConfig = self.init_config_json()
self.key = self.pyas_key()
self.json = self.init_config_json()
self.system_safe()
self.init_config_lang()
self.init_config_sens()
def writeConfig(self, config):
try:
with open("C:/Windows/SysWOW64/PYAS/PYAS.json", "w", encoding="utf-8") as f:
f.write(json.dumps(config, indent=4, ensure_ascii=False))
except Exception as e:
self.pyas_bug_log(e)
self.init_config_ui()
self.init_config_mbr()
def create_library(self):
try:
@@ -72,6 +66,13 @@ class MainWindow_Controller(QtWidgets.QMainWindow):
except Exception as e:
self.pyas_bug_log(e)
def writeConfig(self, config):
try:
with open("C:/Windows/SysWOW64/PYAS/PYAS.json", "w", encoding="utf-8") as f:
f.write(json.dumps(config, indent=4, ensure_ascii=False))
except Exception as e:
self.pyas_bug_log(e)
def init_whitelist(self):
try:
with open("C:/Windows/SysWOW64/PYAS/Whitelist.txt", "r", encoding="utf-8") as f:
@@ -100,7 +101,7 @@ class MainWindow_Controller(QtWidgets.QMainWindow):
return json.load(f)
def init_config_lang(self):
self.language = self.pyasConfig.get("language", "en_US")
self.language = self.json.get("language", "en_US")
if self.language == "zh_TW":
self.ui.Language_Traditional_Chinese.setChecked(True)
elif self.language == "zh_CN":
@@ -110,13 +111,13 @@ class MainWindow_Controller(QtWidgets.QMainWindow):
self.lang_init_refresh()
def init_config_sens(self):
self.high_sensitivity = self.pyasConfig.get("high_sensitivity", 0)
self.high_sensitivity = self.json.get("high_sensitivity", 0)
if self.high_sensitivity == 1:
self.ui.high_sensitivity_switch_Button.setText(self.text_Translate("已開啟"))
self.ui.high_sensitivity_switch_Button.setStyleSheet("""
QPushButton{border:none;background-color:rgba(20,200,20,100);border-radius: 15px;}
QPushButton:hover{background-color:rgba(20,200,20,120);}""")
self.cloud_services = self.pyasConfig.get("cloud_services", 1)
self.cloud_services = self.json.get("cloud_services", 1)
if self.cloud_services == 1:
self.ui.cloud_services_switch_Button.setText(self.text_Translate("已開啟"))
self.ui.cloud_services_switch_Button.setStyleSheet("""
@@ -130,9 +131,9 @@ class MainWindow_Controller(QtWidgets.QMainWindow):
self.ui.State_Button.clicked.connect(self.Change_to_State_widget)
self.ui.Protection_Button.clicked.connect(self.Change_to_Protection_widget)
self.ui.Virus_Scan_Button.clicked.connect(self.Change_to_Virus_Scan_widget)
self.ui.Virus_Scan_Solve_Button.clicked.connect(self.Virus_Solve)
self.ui.Virus_Scan_choose_Button.clicked.connect(self.Virus_Scan_Choose_Menu)
self.ui.Virus_Scan_Break_Button.clicked.connect(self.Virus_Scan_Break)
self.ui.Virus_Scan_Solve_Button.clicked.connect(self.virus_solve)
self.ui.Virus_Scan_choose_Button.clicked.connect(self.virus_scan_choose_menu)
self.ui.Virus_Scan_Break_Button.clicked.connect(self.virus_scan_break)
self.ui.File_Scan_Button.clicked.connect(self.file_scan)
self.ui.Path_Scan_Button.clicked.connect(self.path_scan)
self.ui.Disk_Scan_Button.clicked.connect(self.disk_scan)
@@ -205,31 +206,31 @@ class MainWindow_Controller(QtWidgets.QMainWindow):
try:
self.ui.State_output.clear()
if self.ui.Language_Traditional_Chinese.isChecked():
self.pyasConfig["language"] = "zh_TW"
self.writeConfig(self.pyasConfig)
self.json["language"] = "zh_TW"
self.writeConfig(self.json)
elif self.ui.Language_Simplified_Chinese.isChecked():
self.pyasConfig["language"] = "zh_CN"
self.writeConfig(self.pyasConfig)
self.json["language"] = "zh_CN"
self.writeConfig(self.json)
else:
self.pyasConfig["language"] = "en_US"
self.writeConfig(self.pyasConfig)
self.json["language"] = "en_US"
self.writeConfig(self.json)
self.lang_init_refresh()
except Exception as e:
self.pyas_bug_log(e)
def text_Translate(self, text):
for k, v in translations.get(self.pyasConfig["language"], translations).items():
for k, v in translations.get(self.json["language"], translations).items():
text = text.replace(str(k), str(v))
return text
def lang_init_refresh(self):
self.ui.State_title.setText(self.text_Translate("此裝置已受到防護" if self.Safe else "此裝置當前不安全"))
self.ui.Window_title.setText(self.text_Translate(f"PYAS V{pyas_version} {self.md5_key}"))
self.ui.State_title.setText(self.text_Translate("此裝置已受到防護" if self.safe else "此裝置當前不安全"))
self.ui.Window_title.setText(self.text_Translate(f"PYAS V{self.pyas_version} {self.key}"))
self.ui.PYAS_CopyRight.setText(self.text_Translate(f"Copyright© 2020-{max(int(time.strftime('%Y')), 2020)} PYAS Security"))
self.ui.State_Button.setText(self.text_Translate("狀態"))
self.ui.Virus_Scan_Button.setText(self.text_Translate("掃描"))
self.ui.Tools_Button.setText(self.text_Translate("工具"))
self.ui.Protection_Button.setText(self.text_Translate("防護"))
self.ui.State_Button.setText(self.text_Translate(" 狀態"))
self.ui.Virus_Scan_Button.setText(self.text_Translate(" 掃描"))
self.ui.Tools_Button.setText(self.text_Translate(" 工具"))
self.ui.Protection_Button.setText(self.text_Translate(" 防護"))
self.ui.Virus_Scan_title.setText(self.text_Translate("病毒掃描"))
self.ui.Virus_Scan_text.setText(self.text_Translate("請選擇掃描方式"))
self.ui.Virus_Scan_choose_Button.setText(self.text_Translate("病毒掃描"))
@@ -241,19 +242,19 @@ class MainWindow_Controller(QtWidgets.QMainWindow):
self.ui.Process_Tools_Back.setText(self.text_Translate("返回"))
self.ui.Process_Total_title.setText(self.text_Translate("進程總數:"))
self.ui.Protection_title.setText(self.text_Translate("進程防護"))
self.ui.Protection_illustrate.setText(self.text_Translate("啟用此選項可以監控進程並攔截病毒"))
self.ui.Protection_illustrate.setText(self.text_Translate("啟用此選項可以攔截進程病毒"))
self.ui.Protection_switch_Button.setText(self.text_Translate(self.ui.Protection_switch_Button.text()))
self.ui.Protection_title_2.setText(self.text_Translate("檔案防護"))
self.ui.Protection_illustrate_2.setText(self.text_Translate("啟用此選項可以監控病毒檔案變更"))
self.ui.Protection_illustrate_2.setText(self.text_Translate("啟用此選項可以監控檔案變更"))
self.ui.Protection_switch_Button_2.setText(self.text_Translate(self.ui.Protection_switch_Button_2.text()))
self.ui.Protection_title_3.setText(self.text_Translate("引導防護"))
self.ui.Protection_illustrate_3.setText(self.text_Translate("啟用此選項可以修復系統引導分區"))
self.ui.Protection_illustrate_3.setText(self.text_Translate("啟用此選項可以修復引導分區"))
self.ui.Protection_switch_Button_3.setText(self.text_Translate(self.ui.Protection_switch_Button_3.text()))
self.ui.Protection_title_4.setText(self.text_Translate("註冊表防護"))
self.ui.Protection_illustrate_4.setText(self.text_Translate("啟用此選項可以修復系統註冊表項目"))
self.ui.Protection_illustrate_4.setText(self.text_Translate("啟用此選項可以修復註冊表項目"))
self.ui.Protection_switch_Button_4.setText(self.text_Translate(self.ui.Protection_switch_Button_4.text()))
self.ui.Protection_title_5.setText(self.text_Translate("增強防護"))
self.ui.Protection_illustrate_5.setText(self.text_Translate("啟用此選項可以增強系統防護項目"))
self.ui.Protection_illustrate_5.setText(self.text_Translate("啟用此選項可以增強系統防護"))
self.ui.Protection_switch_Button_5.setText(self.text_Translate(self.ui.Protection_switch_Button_5.text()))
self.ui.State_log.setText(self.text_Translate("日誌:"))
self.ui.More_Tools_Back_Button.setText(self.text_Translate("工具>"))
@@ -263,7 +264,7 @@ class MainWindow_Controller(QtWidgets.QMainWindow):
self.ui.Window_Block_Button.setText(self.text_Translate("軟體彈窗攔截"))
self.ui.Repair_System_Network_Button.setText(self.text_Translate("系統網路修復"))
self.ui.About_Back.setText(self.text_Translate("返回"))
self.ui.PYAS_Version.setText(self.text_Translate(f"PYAS V{pyas_version} {self.md5_key}"))
self.ui.PYAS_Version.setText(self.text_Translate(f"PYAS V{self.pyas_version} {self.key}"))
self.ui.GUI_Made_title.setText(self.text_Translate("介面製作:"))
self.ui.GUI_Made_Name.setText(self.text_Translate("mtkiao"))
self.ui.Core_Made_title.setText(self.text_Translate("核心製作:"))
@@ -294,7 +295,7 @@ class MainWindow_Controller(QtWidgets.QMainWindow):
self.ui.Language_title.setText(self.text_Translate("顯示語言"))
self.ui.Language_illustrate.setText(self.text_Translate("請選擇語言"))
self.ui.License_terms_title.setText(self.text_Translate("許可條款:"))
def Change_Theme(self):
if self.ui.Theme_White.isChecked():
self.ui.Window_widget.setStyleSheet("""QWidget#Window_widget {background-color:rgb(240,240,240);}""")
@@ -386,7 +387,7 @@ class MainWindow_Controller(QtWidgets.QMainWindow):
def Change_to_State_widget(self):
if self.ui.State_widget.isHidden():
self.Change_animation_2(25,50)
self.Change_animation_2(20,50)
self.Change_animation_3(self.ui.State_widget,0.5)
self.Change_animation(self.ui.State_widget)
self.ui.State_widget.show()
@@ -399,7 +400,7 @@ class MainWindow_Controller(QtWidgets.QMainWindow):
def Change_to_Virus_Scan_widget(self):
if self.ui.Virus_Scan_widget.isHidden():
self.Change_animation_2(25,168)
self.Change_animation_2(20,168)
self.Change_animation_3(self.ui.Virus_Scan_widget,0.5)
self.Change_animation(self.ui.Virus_Scan_widget)
self.ui.State_widget.hide()
@@ -412,7 +413,7 @@ class MainWindow_Controller(QtWidgets.QMainWindow):
def Change_to_Tools_widget(self):
if self.ui.Tools_widget.isHidden():
self.Change_animation_2(25,285)
self.Change_animation_2(20,285)
self.Change_animation_3(self.ui.Tools_widget,0.5)
self.Change_animation(self.ui.Tools_widget)
self.ui.State_widget.hide()
@@ -425,7 +426,7 @@ class MainWindow_Controller(QtWidgets.QMainWindow):
def Change_to_Protection_widget(self):
if self.ui.Protection_widget.isHidden():
self.Change_animation_2(25,405)
self.Change_animation_2(20,405)
self.Change_animation_3(self.ui.Protection_widget,0.5)
self.Change_animation(self.ui.Protection_widget)
self.ui.State_widget.hide()
@@ -507,7 +508,7 @@ class MainWindow_Controller(QtWidgets.QMainWindow):
rect.setHeight(rect.height()-10)
pat2.drawRoundedRect(rect, 1, 1)
def showNormal(self):
def show_pyas_ui(self):
self.show()
while self.pyas_opacity < 100:
time.sleep(0.001)
@@ -515,7 +516,7 @@ class MainWindow_Controller(QtWidgets.QMainWindow):
self.setWindowOpacity(self.pyas_opacity/100)
QApplication.processEvents()
def hideWindow(self):
def hide_pyas_ui(self):
while self.pyas_opacity > 0:
time.sleep(0.001)
self.pyas_opacity -= 1
@@ -524,7 +525,7 @@ class MainWindow_Controller(QtWidgets.QMainWindow):
self.hide()
def showMinimized(self):
self.hideWindow()
self.hide_pyas_ui()
self.system_notification(self.text_Translate("PYAS 已最小化到系統托盤圖標"))
def closeEvent(self, event):
@@ -536,7 +537,7 @@ class MainWindow_Controller(QtWidgets.QMainWindow):
self.reg_protect = False
self.enh_protect = False
self.tray_icon.hide()
self.hideWindow()
self.hide_pyas_ui()
QApplication.instance().quit()
event.ignore()
@@ -562,13 +563,10 @@ class MainWindow_Controller(QtWidgets.QMainWindow):
for url in ["http://27.147.30.238:5001/pyas","https://api.pyas.cf/pyas"]:
try:
response = requests.get(url, params={"key": file_md5}, timeout=3)
if response.status_code == 200:
if response.text == "True":
return ""
elif response.text == "Update":
return "(軟體需要更新)"
else:
return "(安全密鑰錯誤)"
if response.status_code == 200 and response.text == "True":
return ""
else:
return "(安全密鑰錯誤)"
except:
pass
return "(網路連接錯誤)"
@@ -604,16 +602,16 @@ class MainWindow_Controller(QtWidgets.QMainWindow):
sw_state = self.ui.high_sensitivity_switch_Button.text()
if sw_state == self.text_Translate("已關閉"):
self.high_sensitivity = 1
self.pyasConfig["high_sensitivity"] = 1
self.writeConfig(self.pyasConfig)
self.json["high_sensitivity"] = 1
self.writeConfig(self.json)
self.ui.high_sensitivity_switch_Button.setText(self.text_Translate("已開啟"))
self.ui.high_sensitivity_switch_Button.setStyleSheet("""
QPushButton{border:none;background-color:rgba(20,200,20,100);border-radius: 15px;}
QPushButton:hover{background-color:rgba(20,200,20,120);}""")
elif sw_state == self.text_Translate("已開啟"):
self.high_sensitivity = 0
self.pyasConfig["high_sensitivity"] = 0
self.writeConfig(self.pyasConfig)
self.json["high_sensitivity"] = 0
self.writeConfig(self.json)
self.ui.high_sensitivity_switch_Button.setText(self.text_Translate("已關閉"))
self.ui.high_sensitivity_switch_Button.setStyleSheet("""
QPushButton{border:none;background-color:rgba(20,20,20,30);border-radius: 15px;}
@@ -623,80 +621,95 @@ class MainWindow_Controller(QtWidgets.QMainWindow):
sw_state = self.ui.cloud_services_switch_Button.text()
if sw_state == self.text_Translate("已關閉"):
self.cloud_services = 1
self.pyasConfig["cloud_services"] = 1
self.writeConfig(self.pyasConfig)
self.json["cloud_services"] = 1
self.writeConfig(self.json)
self.ui.cloud_services_switch_Button.setText(self.text_Translate("已開啟"))
self.ui.cloud_services_switch_Button.setStyleSheet("""
QPushButton{border:none;background-color:rgba(20,200,20,100);border-radius: 15px;}
QPushButton:hover{background-color:rgba(20,200,20,120);}""")
elif sw_state == self.text_Translate("已開啟"):
self.cloud_services = 0
self.pyasConfig["cloud_services"] = 0
self.writeConfig(self.pyasConfig)
self.json["cloud_services"] = 0
self.writeConfig(self.json)
self.ui.cloud_services_switch_Button.setText(self.text_Translate("已關閉"))
self.ui.cloud_services_switch_Button.setStyleSheet("""
QPushButton{border:none;background-color:rgba(20,20,20,30);border-radius: 15px;}
QPushButton:hover{background-color:rgba(20,20,20,50);}""")
def add_white_list(self):
try:
file, filetype= QFileDialog.getOpenFileName(self,self.text_Translate("增加到白名單"),"C:/","All File *.*")
if file not in ["", "PYAS"]:
if str(file.replace("\\", "/")) not in self.whitelist:
if QMessageBox.warning(self,self.text_Translate("警告"),self.text_Translate("您確定要增加到白名單嗎?"),QMessageBox.Yes|QMessageBox.No) == 16384:
try:
self.whitelist.append(str(file.replace("\\", "/")))
with open("C:/Windows/SysWOW64/PYAS/Whitelist.txt", "a+", encoding="utf-8") as f:
f.write(str(file.replace("\\", "/"))+'\n')
QMessageBox.information(self,self.text_Translate("成功"),self.text_Translate(f"成功增加到白名單: ")+str(file.replace("\\", "/")),QMessageBox.Ok)
except:
self.pyas_bug_log('增加到白名單失敗')
elif QMessageBox.warning(self,self.text_Translate("警告"),self.text_Translate(f"您確定要取消增加到白名單嗎?"),QMessageBox.Yes|QMessageBox.No) == 16384:
try:
self.whitelist.remove(str(file.replace("\\", "/")))
with open("C:/Windows/SysWOW64/PYAS/Whitelist.txt", "w", encoding="utf-8") as f:
for file in self.whitelist:
f.write(f'{file}\n')
QMessageBox.information(self,self.text_Translate("成功"),self.text_Translate(f"成功取消增加到白名單: ")+str(file.replace("\\", "/")),QMessageBox.Ok)
except:
self.pyas_bug_log('取消增加到白名單失敗')
except Exception as e:
self.pyas_bug_log(e)
def system_safe(self):
try:
self.ui.State_icon.setPixmap(QtGui.QPixmap(":/icon/Icon/check.png"))
self.safe = True
self.ui.State_icon.setPixmap(QtGui.QPixmap(":/icon/Check.png"))
self.ui.State_title.setText(self.text_Translate("此裝置已受到防護"))
self.Safe = True
except:
pass
def system_unsafe(self):
try:
self.ui.State_icon.setPixmap(QtGui.QPixmap(":/icon/Icon/X2.png"))
self.safe = False
self.ui.State_icon.setPixmap(QtGui.QPixmap(":/icon/Close.png"))
self.ui.State_title.setText(self.text_Translate("此裝置當前不安全"))
self.Safe = False
except:
pass
def Virus_Scan_Break(self):
def init_scan(self):
self.scan = True
self.Virus_List = []
self.Virus_List_Ui = []
self.ui.Virus_Scan_Solve_Button.hide()
self.ui.Virus_Scan_choose_widget.hide()
self.ui.Virus_Scan_choose_Button.hide()
self.Virus_List_output=QStringListModel()
self.Virus_List_output.setStringList(self.Virus_List)
self.ui.Virus_Scan_output.setModel(self.Virus_List_output)
def virus_scan_break(self):
self.scan = False
self.ui.Virus_Scan_Break_Button.hide()
self.ui.Virus_Scan_choose_Button.show()
def virus_scan_choose_menu(self):
if self.ui.Virus_Scan_choose_widget.isHidden():
self.ui.Virus_Scan_choose_widget.show()
self.Change_animation_4(self.ui.Virus_Scan_choose_widget,100,0,101)
else:
self.ui.Virus_Scan_choose_widget.hide()
def write_scan(self,state,file):
try:
self.ui.Virus_Scan_Break_Button.hide()
self.Virus_Scan = False
self.Virus_List.append(file)
self.Virus_List_Ui.append(f"[{state}] {file}")
self.Virus_List_output.setStringList(self.Virus_List_Ui)
self.ui.Virus_Scan_output.setModel(self.Virus_List_output)
except:
pass
def Virus_Solve(self):
def answer_scan(self):
if self.Virus_List != []:
self.Virus_List_output.setStringList(self.Virus_List_Ui)
self.ui.Virus_Scan_output.setModel(self.Virus_List_output)
self.ui.Virus_Scan_Solve_Button.show()
self.virus_scan_break()
self.system_unsafe()
text = self.text_Translate(f"當前發現 {len(self.Virus_List)} 個病毒")
else:
self.virus_scan_break()
self.system_safe()
text = self.text_Translate("當前未發現病毒")
self.ui.Virus_Scan_text.setText(text)
self.system_notification(text)
def virus_solve(self):
try:
for line in self.Virus_List:
try:
if ":/Windows" not in str(line):
self.ui.Virus_Scan_text.setText(self.text_Translate("正在刪除: ")+line)
QApplication.processEvents()
os.remove(str(line))
self.ui.Virus_Scan_text.setText(self.text_Translate("正在刪除: ")+line)
QApplication.processEvents()
os.remove(str(line))
except:
continue
self.Virus_List = []
self.Virus_List_Ui = []
self.Virus_List_output.setStringList(self.Virus_List)
self.ui.Virus_Scan_output.setModel(self.Virus_List_output)
self.ui.Virus_Scan_text.setText(self.text_Translate("成功: 刪除成功"))
@@ -705,6 +718,91 @@ class MainWindow_Controller(QtWidgets.QMainWindow):
except Exception as e:
self.pyas_bug_log(e)
def file_scan(self):
try:
file, filetype= QFileDialog.getOpenFileName(self,self.text_Translate("病毒掃描"),"C:/","")
if file != "":
self.init_scan()
self.ui.Virus_Scan_text.setText(self.text_Translate("正在初始化中"))
QApplication.processEvents()
if file not in self.whitelist and ":/Windows" not in file:
if self.high_sensitivity == 0 and self.sign_scan(file):
if self.api_scan(file):
self.write_scan(self.text_Translate("惡意"),file)
elif self.pe_scan(file):
self.write_scan(self.text_Translate("可疑"),file)
elif self.high_sensitivity == 1:
if self.api_scan(file):
self.write_scan(self.text_Translate("惡意"),file)
elif self.pe_scan(file):
self.write_scan(self.text_Translate("可疑"),file)
self.answer_scan()
gc.collect()
except Exception as e:
self.pyas_bug_log(e)
self.virus_scan_break()
self.ui.Virus_Scan_text.setText(self.text_Translate("請選擇掃描方式"))
def path_scan(self):
try:
path = QFileDialog.getExistingDirectory(self,self.text_Translate("病毒掃描"),"C:/")
if path != "":
self.init_scan()
self.ui.Virus_Scan_text.setText(self.text_Translate("正在初始化中"))
self.ui.Virus_Scan_Break_Button.show()
QApplication.processEvents()
self.traverse_path(path)
self.answer_scan()
gc.collect()
except Exception as e:
self.pyas_bug_log(e)
self.virus_scan_break()
self.ui.Virus_Scan_text.setText(self.text_Translate("請選擇掃描方式"))
def disk_scan(self):
try:
self.init_scan()
self.ui.Virus_Scan_text.setText(self.text_Translate("正在初始化中"))
self.ui.Virus_Scan_Break_Button.show()
QApplication.processEvents()
for d in range(26):
if os.path.exists(f"{chr(65+d)}:/"):
self.traverse_path(f"{chr(65+d)}:/")
self.answer_scan()
gc.collect()
except Exception as e:
self.pyas_bug_log(e)
self.virus_scan_break()
self.ui.Virus_Scan_text.setText(self.text_Translate("請選擇掃描方式"))
def traverse_path(self,path):
for fd in os.listdir(path):
try:
file = str(os.path.join(path,fd)).replace("\\", "/")
if self.scan == False:
break
elif file in self.whitelist or ":/$Recycle.Bin" in file or ":/Windows" in file:
continue
elif os.path.isdir(file):
self.traverse_path(file)
else:
self.ui.Virus_Scan_text.setText(self.text_Translate(f"正在掃描: ")+file)
QApplication.processEvents()
if self.high_sensitivity == 0 and self.sign_scan(file):
if str(os.path.splitext(fd)[1]).lower() in slist:
if self.api_scan(file):
self.write_scan(self.text_Translate("惡意"),file)
elif self.pe_scan(file):
self.write_scan(self.text_Translate("可疑"),file)
elif self.high_sensitivity == 1:
if self.api_scan(file):
self.write_scan(self.text_Translate("惡意"),file)
elif self.pe_scan(file):
self.write_scan(self.text_Translate("可疑"),file)
gc.collect()
except:
continue
def api_scan(self, file):
try:
if self.cloud_services == 1:
@@ -712,7 +810,7 @@ class MainWindow_Controller(QtWidgets.QMainWindow):
text = str(md5(f.read()).hexdigest())
strBody = f'-------------------------------7d83e2d7a141e\r\nContent-Disposition: form-data; name="md5s"\r\n\r\n{text}\r\n-------------------------------7d83e2d7a141e\r\nContent-Disposition: form-data; name="format"\r\n\r\nXML\r\n-------------------------------7d83e2d7a141e\r\nContent-Disposition: form-data; name="product"\r\n\r\n360zip\r\n-------------------------------7d83e2d7a141e\r\nContent-Disposition: form-data; name="combo"\r\n\r\n360zip_main\r\n-------------------------------7d83e2d7a141e\r\nContent-Disposition: form-data; name="v"\r\n\r\n2\r\n-------------------------------7d83e2d7a141e\r\nContent-Disposition: form-data; name="osver"\r\n\r\n5.1\r\n-------------------------------7d83e2d7a141e\r\nContent-Disposition: form-data; name="vk"\r\n\r\na03bc211\r\n-------------------------------7d83e2d7a141e\r\nContent-Disposition: form-data; name="mid"\r\n\r\n8a40d9eff408a78fe9ec10a0e7e60f62\r\n-------------------------------7d83e2d7a141e--'
response = requests.post('http://qup.f.360.cn/file_health_info.php', data=strBody, timeout=3)
return response.status_code == 200 and float(ET.fromstring(response.text).find('.//e_level').text) > 50
return response.status_code == 200 and float(et.fromstring(response.text).find('.//e_level').text) > 50
except:
return False
@@ -731,154 +829,16 @@ class MainWindow_Controller(QtWidgets.QMainWindow):
pe.close()
for entry in pe.DIRECTORY_ENTRY_IMPORT:
for func in entry.imports:
fn.append(str(func.name, "utf-8"))
for vfl in function_list:
QApplication.processEvents()
if sum(1 for i in range(min(len(vfl), len(fn))) if vfl[i] == fn[i]) / min(len(vfl), len(fn)) > 0.5:
return True
try:
fn.append(str(func.name, "utf-8"))
except:
pass
if fn in function_list:
return True
return False
except:
return False
def write_scan(self,file):
try:
self.Virus_List.append(file)
self.Virus_List_output.setStringList(self.Virus_List)
self.ui.Virus_Scan_output.setModel(self.Virus_List_output)
except:
pass
def answer_scan(self):
if self.Virus_List != []:
self.Virus_List_output.setStringList(self.Virus_List)
self.ui.Virus_Scan_output.setModel(self.Virus_List_output)
self.ui.Virus_Scan_Solve_Button.show()
self.ui.Virus_Scan_choose_Button.show()
self.Virus_Scan_Break()
self.system_unsafe()
text = self.text_Translate(f"當前發現 {len(self.Virus_List)} 個病毒")
else:
self.ui.Virus_Scan_choose_Button.show()
self.Virus_Scan_Break()
self.system_safe()
text = self.text_Translate("當前未發現病毒")
self.ui.Virus_Scan_text.setText(text)
self.system_notification(text)
def Virus_Scan_Choose_Menu(self):
if self.ui.Virus_Scan_choose_widget.isHidden():
self.ui.Virus_Scan_choose_widget.show()
self.Change_animation_4(self.ui.Virus_Scan_choose_widget,100,0,101)
else:
self.ui.Virus_Scan_choose_widget.hide()
def file_scan(self):
self.Virus_List = []
self.ui.Virus_Scan_choose_widget.hide()
self.ui.Virus_Scan_Solve_Button.hide()
self.Virus_List_output=QStringListModel()
self.Virus_List_output.setStringList(self.Virus_List)
self.ui.Virus_Scan_output.setModel(self.Virus_List_output)
file, filetype= QFileDialog.getOpenFileName(self,self.text_Translate("病毒掃描"),"C:/","")
try:
if file != "":
self.Virus_Scan = True
self.ui.Virus_Scan_text.setText(self.text_Translate("正在初始化中"))
self.ui.Virus_Scan_choose_Button.hide()
QApplication.processEvents()
if file not in self.whitelist:
if self.high_sensitivity == 0 and self.sign_scan(file):
if self.api_scan(file) or self.pe_scan(file):
self.write_scan(file)
elif self.high_sensitivity == 1:
if self.api_scan(file) or self.pe_scan(file):
self.write_scan(file)
self.answer_scan()
gc.collect()
else:
self.ui.Virus_Scan_text.setText(self.text_Translate("請選擇掃描方式"))
except Exception as e:
self.pyas_bug_log(e)
self.ui.Virus_Scan_text.setText(self.text_Translate("請選擇掃描方式"))
self.ui.Virus_Scan_choose_Button.show()
self.ui.Virus_Scan_Break_Button.hide()
def path_scan(self):
self.ui.Virus_Scan_choose_widget.hide()
self.ui.Virus_Scan_Solve_Button.hide()
self.Virus_List = []
self.Virus_List_output=QStringListModel()
self.Virus_List_output.setStringList(self.Virus_List)
self.ui.Virus_Scan_output.setModel(self.Virus_List_output)
path = QFileDialog.getExistingDirectory(self,self.text_Translate("病毒掃描"),"C:/")
try:
if path != "":
self.Virus_Scan = True
self.ui.Virus_Scan_text.setText(self.text_Translate("正在初始化中"))
self.ui.Virus_Scan_choose_Button.hide()
self.ui.Virus_Scan_Break_Button.show()
QApplication.processEvents()
self.traverse_path(path)
self.answer_scan()
gc.collect()
else:
self.ui.Virus_Scan_text.setText(self.text_Translate("請選擇掃描方式"))
except Exception as e:
self.pyas_bug_log(e)
self.ui.Virus_Scan_text.setText(self.text_Translate("請選擇掃描方式"))
self.ui.Virus_Scan_choose_Button.show()
self.ui.Virus_Scan_Break_Button.hide()
def disk_scan(self):
try:
self.ui.Virus_Scan_choose_widget.hide()
self.ui.Virus_Scan_text.setText(self.text_Translate("正在初始化中"))
QApplication.processEvents()
self.Virus_Scan = True
self.ui.Virus_Scan_Solve_Button.hide()
self.ui.Virus_Scan_choose_Button.hide()
self.ui.Virus_Scan_Break_Button.show()
self.Virus_List = []
self.Virus_List_output=QStringListModel()
self.Virus_List_output.setStringList(self.Virus_List)
self.ui.Virus_Scan_output.setModel(self.Virus_List_output)
for d in range(26):
try:
self.traverse_path(f"{chr(65+d)}:/")
except:
pass
self.answer_scan()
gc.collect()
except Exception as e:
self.pyas_bug_log(e)
self.ui.Virus_Scan_text.setText(self.text_Translate("請選擇掃描方式"))
self.ui.Virus_Scan_choose_Button.show()
self.ui.Virus_Scan_Break_Button.hide()
def traverse_path(self,path):
for fd in os.listdir(path):
try:
fullpath = str(os.path.join(path,fd)).replace("\\", "/")
if self.Virus_Scan == False:
break
elif fullpath in self.whitelist or ":/$Recycle.Bin" in fullpath or ":/Windows" in fullpath:
continue
elif os.path.isdir(fullpath):
self.traverse_path(fullpath)
else:
self.ui.Virus_Scan_text.setText(self.text_Translate(f"正在掃描: ")+fullpath)
QApplication.processEvents()
if self.high_sensitivity == 0 and self.sign_scan(fullpath):
if str(os.path.splitext(fd)[1]).lower() in self.sflist:
if self.api_scan(fullpath) or self.pe_scan(fullpath):
self.write_scan(fullpath)
elif self.high_sensitivity == 1:
if self.api_scan(fullpath) or self.pe_scan(fullpath):
self.write_scan(fullpath)
gc.collect()
except:
continue
def Repair_System_Files(self):
try:
if QMessageBox.warning(self,self.text_Translate("警告"),self.text_Translate("您確定要修復系統檔案嗎?"),QMessageBox.Yes|QMessageBox.No) == 16384:
@@ -894,17 +854,13 @@ class MainWindow_Controller(QtWidgets.QMainWindow):
def repair_system_icon(self):
try:
for file_type in ['exefile', 'comfile', 'txtfile', 'dllfile', 'inifile', 'VBSfile']:
try:
key = win32api.RegOpenKey(win32con.HKEY_CLASSES_ROOT, file_type, 0, win32con.KEY_ALL_ACCESS)
win32api.RegSetValue(key, 'DefaultIcon', win32con.REG_SZ, '%1')
except:
pass
try:
key = win32api.RegOpenKey(win32con.HKEY_LOCAL_MACHINE, 'SOFTWARE\Classes\\' + file_type, 0, win32con.KEY_ALL_ACCESS)
win32api.RegSetValue(key, 'DefaultIcon', win32con.REG_SZ, '%1')
except:
pass
key = win32api.RegOpenKey(win32con.HKEY_CLASSES_ROOT, 'exefile', 0, win32con.KEY_ALL_ACCESS)
win32api.RegSetValue(key, 'DefaultIcon', win32con.REG_SZ, '%1')
except:
pass
try:
key = win32api.RegOpenKey(win32con.HKEY_LOCAL_MACHINE, 'SOFTWARE\Classes\exefile', 0, win32con.KEY_ALL_ACCESS)
win32api.RegSetValue(key, 'DefaultIcon', win32con.REG_SZ, '%1')
except:
pass
@@ -924,35 +880,28 @@ class MainWindow_Controller(QtWidgets.QMainWindow):
def repair_system_file_type(self):
try:
data = [('jpegfile', 'JPEG Image'),('.exe', 'exefile'),('exefile', 'Application'),('.com', 'comfile'),('comfile', 'MS-DOS Application'),
('.zip', 'CompressedFolder'),('.dll', 'dllfile'),('dllfile', 'Application Extension'),('.sys', 'sysfile'),('sysfile', 'System file'),
('.bat', 'batfile'),('batfile', 'Windows Batch File'),('VBS', 'VB Script Language'),('VBSfile', 'VBScript Script File'),
('.txt', 'txtfile'),('txtfile', 'Text Document'),('.ini', 'inifile'),('inifile', 'Configuration Settings')]
key = win32api.RegOpenKey(win32con.HKEY_LOCAL_MACHINE, 'SOFTWARE\Classes', 0, win32con.KEY_ALL_ACCESS)# HKEY_LOCAL_MACHINE
data = [('.exe', 'exefile'),('exefile', 'Application')]
key = win32api.RegOpenKey(win32con.HKEY_LOCAL_MACHINE, 'SOFTWARE\Classes', 0, win32con.KEY_ALL_ACCESS)
for ext, value in data:
win32api.RegSetValue(key, ext, win32con.REG_SZ, value)
win32api.RegCloseKey(key)
key = win32api.RegOpenKey(win32con.HKEY_CURRENT_USER, 'SOFTWARE\Classes', 0, win32con.KEY_ALL_ACCESS)# HKEY_CURRENT_USER
key = win32api.RegOpenKey(win32con.HKEY_CURRENT_USER, 'SOFTWARE\Classes', 0, win32con.KEY_ALL_ACCESS)
for ext, value in data:
win32api.RegSetValue(key, ext, win32con.REG_SZ, value)
try:
win32api.RegSetValue(key, ext, win32con.REG_SZ, value)
keyopen = win32api.RegOpenKey(key, ext + r'\shell\open', 0, win32con.KEY_ALL_ACCESS)
win32api.RegSetValue(keyopen, 'command', win32con.REG_SZ, '"%1" %*')
win32api.RegCloseKey(keyopen)
except:
pass
win32api.RegCloseKey(key)
key = win32api.RegOpenKey(win32con.HKEY_CURRENT_USER, 'SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\FileExts', 0, win32con.KEY_ALL_ACCESS)# HKEY_CURRENT_USER\SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\FileExts
extensions = ['.exe', '.zip', '.dll', '.sys', '.bat', '.txt', '.msc']
for ext in extensions:
win32api.RegSetValue(key, ext, win32con.REG_SZ, '')
key = win32api.RegOpenKey(win32con.HKEY_CURRENT_USER, 'SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\FileExts', 0, win32con.KEY_ALL_ACCESS)
win32api.RegSetValue(key, '.exe', win32con.REG_SZ, '')
win32api.RegCloseKey(key)
key = win32api.RegOpenKey(win32con.HKEY_CLASSES_ROOT, None, 0, win32con.KEY_ALL_ACCESS)# HKEY_CLASSES_ROOT
key = win32api.RegOpenKey(win32con.HKEY_CLASSES_ROOT, None, 0, win32con.KEY_ALL_ACCESS)
for ext, value in data:
win32api.RegSetValue(key, ext, win32con.REG_SZ, value)
if ext in ['.cmd', '.vbs']:
win32api.RegSetValue(key, ext + 'file', win32con.REG_SZ, 'Windows Command Script')
try:
win32api.RegSetValue(key, ext, win32con.REG_SZ, value)
keyopen = win32api.RegOpenKey(key, ext + r'\shell\open', 0, win32con.KEY_ALL_ACCESS)
win32api.RegSetValue(keyopen, 'command', win32con.REG_SZ, '"%1" %*')
win32api.RegCloseKey(keyopen)
@@ -1006,14 +955,14 @@ class MainWindow_Controller(QtWidgets.QMainWindow):
def repair_system_explorer(self):
try:
if not self.is_explorer_running():
if not self.is_process_running("explorer.exe"):
subprocess.run("explorer.exe", check=True)
except:
pass
def is_explorer_running(self):
def is_process_running(self, name):
for proc in psutil.process_iter(['name']):
if proc.info['name'] == 'explorer.exe':
if proc.info['name'] == name:
return True
return False
@@ -1031,17 +980,42 @@ class MainWindow_Controller(QtWidgets.QMainWindow):
def traverse_temp_files(self, path):
for fd in os.listdir(path):
try:
fullpath = str(os.path.join(path,fd)).replace("\\", "/")
file = str(os.path.join(path,fd)).replace("\\", "/")
QApplication.processEvents()
if os.path.isdir(fullpath):
self.traverse_temp_files(fullpath)
if os.path.isdir(file):
self.traverse_temp_files(file)
else:
file_size = os.path.getsize(fullpath)
os.remove(fullpath)
file_size = os.path.getsize(file)
os.remove(file)
self.total_deleted_size += file_size
except:
continue
def add_white_list(self):
try:
file, filetype= QFileDialog.getOpenFileName(self,self.text_Translate("增加到白名單"),"C:/","All File *.*")
if file not in ["", "PYAS"]:
if str(file.replace("\\", "/")) not in self.whitelist:
if QMessageBox.warning(self,self.text_Translate("警告"),self.text_Translate("您確定要增加到白名單嗎?"),QMessageBox.Yes|QMessageBox.No) == 16384:
try:
self.whitelist.append(str(file.replace("\\", "/")))
with open("C:/Windows/SysWOW64/PYAS/Whitelist.txt", "a+", encoding="utf-8") as f:
f.write(str(file.replace("\\", "/"))+'\n')
QMessageBox.information(self,self.text_Translate("成功"),self.text_Translate(f"成功增加到白名單: ")+str(file.replace("\\", "/")),QMessageBox.Ok)
except:
self.pyas_bug_log('增加到白名單失敗')
elif QMessageBox.warning(self,self.text_Translate("警告"),self.text_Translate(f"您確定要取消增加到白名單嗎?"),QMessageBox.Yes|QMessageBox.No) == 16384:
try:
self.whitelist.remove(str(file.replace("\\", "/")))
with open("C:/Windows/SysWOW64/PYAS/Whitelist.txt", "w", encoding="utf-8") as f:
for file in self.whitelist:
f.write(f'{file}\n')
QMessageBox.information(self,self.text_Translate("成功"),self.text_Translate(f"成功取消增加到白名單: ")+str(file.replace("\\", "/")),QMessageBox.Ok)
except:
self.pyas_bug_log('取消增加到白名單失敗')
except Exception as e:
self.pyas_bug_log(e)
def Get_Software_Window(self):
try:
self.block_window = False
@@ -1212,46 +1186,66 @@ class MainWindow_Controller(QtWidgets.QMainWindow):
Thread(target=self.protect_system_enhanced).start()
def protect_system_processes(self):
existing_proc = {}
for proc in psutil.process_iter(['name', 'exe']):
existing_proc[str(proc.info['name'])] = str(proc.info['exe']).replace("\\", "/")
while self.proc_protect:
time.sleep(0.2)
for p in psutil.process_iter():
try:
file, name = str(p.exe()).replace("\\", "/"), str(p.name())
if file == self.pyas or file in self.whitelist:
continue
elif ":/Windows" in file or ":/Program" in file or "AppData" in file:
continue
elif file in ["","Registry","vmmemCmZygote","MemCompression"]:
continue
elif self.high_sensitivity == 1 and self.sign_scan(file):
p.kill()
self.system_notification(self.text_Translate("無效簽名攔截: ")+name)
elif self.api_scan(file):
p.kill()
self.system_notification(self.text_Translate("惡意軟體攔截: ")+name)
elif self.pe_scan(file):
p.kill()
self.system_notification(self.text_Translate("可疑檔案攔截: ")+name)
else:
self.whitelist.append(str(file.replace("\\", "/")))#
gc.collect()
except:
pass
try:
time.sleep(0.2)
current_proc = {}
for proc in psutil.process_iter(['name', 'exe']):
current_proc[str(proc.info['name'])] = str(proc.info['exe']).replace("\\", "/")
new_proc = {name: path for name, path in current_proc.items() if name not in existing_proc}
if new_proc:
for self.p_name, self.p_file in new_proc.items():
if self.p_file == self.pyas or self.p_file in self.whitelist:
continue
elif ":/Windows" in self.p_file or ":/Program" in self.p_file:
continue
elif self.api_scan(self.p_file):
if self.protect_process_kill(self.p_name):
self.system_notification(self.text_Translate("惡意軟體攔截: ")+self.p_name)
elif self.pe_scan(self.p_file):
if self.protect_process_kill(self.p_name):
self.system_notification(self.text_Translate("可疑檔案攔截: ")+self.p_name)
elif self.sign_scan(self.p_file):
self.p_check = self.p_name
gc.collect()
existing_proc = current_proc
except:
pass
def protect_process_kill(self,proc):
try:
for p in psutil.process_iter(['name', 'exe']):
if p.info['name'] == proc:
p.kill()
return True
return False
except:
return False
def protect_system_file(self,path):
hDir = win32file.CreateFile(path,win32con.GENERIC_READ,win32con.FILE_SHARE_READ|win32con.FILE_SHARE_WRITE|win32con.FILE_SHARE_DELETE,None,win32con.OPEN_EXISTING,win32con.FILE_FLAG_BACKUP_SEMANTICS,None)
self.last_file = ""
while self.file_protect:
try:
for action, file in win32file.ReadDirectoryChangesW(hDir,1024,True,win32con.FILE_NOTIFY_CHANGE_FILE_NAME|win32con.FILE_NOTIFY_CHANGE_DIR_NAME|win32con.FILE_NOTIFY_CHANGE_ATTRIBUTES|win32con.FILE_NOTIFY_CHANGE_SIZE|win32con.FILE_NOTIFY_CHANGE_LAST_WRITE|win32con.FILE_NOTIFY_CHANGE_SECURITY,None,None):
file = str(f"{path}{file}").replace("\\", "/")
file_type = str(os.path.splitext(file)[1]).lower()
file_name = str(os.path.splitext(file)[0])
if file == self.pyas or file in self.whitelist:
continue
elif ":/$Recycle.Bin" in file or ":/Windows" in file or ":/Program" in file:
elif ":/Windows" in file or ":/Program" in file or "/AppData/" in file:
continue
elif action == 3 and str(os.path.splitext(file)[1]).lower() in self.sflist:
if self.sign_scan(file) and self.api_scan(file):
elif action:
if file_type in slist and self.sign_scan(file) and self.api_scan(file):
os.remove(file)
self.system_notification(self.text_Translate("惡意軟體刪除: ")+file)
elif self.last_file == file_name and self.protect_process_kill(self.p_check):
self.system_notification(self.text_Translate("勒索軟體攔截: ")+self.p_check)
self.last_file = file_name
gc.collect()
except:
pass
@@ -1263,7 +1257,6 @@ class MainWindow_Controller(QtWidgets.QMainWindow):
if f.read(512) != self.mbr_value:
f.seek(0)
f.write(self.mbr_value)
self.system_notification(self.text_Translate("引導分區修復: PhysicalDrive0"))
except:
pass
@@ -1272,6 +1265,7 @@ class MainWindow_Controller(QtWidgets.QMainWindow):
try:
time.sleep(0.2)
self.repair_system_restrictions()
self.repair_system_file_type()
except:
pass
@@ -1279,14 +1273,12 @@ class MainWindow_Controller(QtWidgets.QMainWindow):
while self.enh_protect:
try:
time.sleep(0.2)
self.repair_system_file_type()
self.repair_system_image()
self.repair_system_icon()
except:
pass
if __name__ == '__main__':
pyas_version = "2.7.6"
QtCore.QCoreApplication.setAttribute(Qt.AA_EnableHighDpiScaling)
QtGui.QGuiApplication.setAttribute(Qt.HighDpiScaleFactorRoundingPolicy.PassThrough)
app = QtWidgets.QApplication(sys.argv)
+10
View File
@@ -0,0 +1,10 @@
slist = [".exe",".dll",".com",".msi",".scr",
".bat",".cmd",".ps1",".vbs",".js",
".jar",".htm",".html",".ppt",".pptx",
".pdf",".xls",".xlsx",".doc",".docx"]
alist = [".exe",".dll",".ppt",".pptx",".wps",
".pdf",".xls",".xlsx",".doc",".docx",
".jpg",".jpeg",".png",".webp",".gif",
".mp3",".wav",".aac",".ogg",".flac",
".mp4",".avi",".mov",".wmv",".mkv"]
+1
View File
@@ -0,0 +1 @@
function_list = [['LoadLibraryA', 'GetProcAddress', 'SetUnhandledExceptionFilter', 'GetCurrentProcess', 'TerminateProcess', 'IsProcessorFeaturePresent', 'QueryPerformanceCounter', 'GetCurrentProcessId', 'GetCurrentThreadId', 'GetSystemTimeAsFileTime', 'InitializeSListHead', 'IsDebuggerPresent', 'GetModuleHandleW', 'UnhandledExceptionFilter', 'GetDC', '?fill@?$basic_ios@DU?$char_traits@D@std@@@std@@QBEDXZ', '?put@?$basic_ostream@DU?$char_traits@D@std@@@std@@QAEAAV12@D@Z', '?_Osfx@?$basic_ostream@DU?$char_traits@D@std@@@std@@QAEXXZ', '?widen@?$basic_ios@DU?$char_traits@D@std@@@std@@QBEDD@Z', '??0?$basic_streambuf@DU?$char_traits@D@std@@@std@@IAE@XZ', '?getloc@?$basic_streambuf@DU?$char_traits@D@std@@@std@@QBE?AVlocale@2@XZ', '?sputc@?$basic_streambuf@DU?$char_traits@D@std@@@std@@QAEHD@Z', '?tie@?$basic_ios@DU?$char_traits@D@std@@@std@@QBEPAV?$basic_ostream@DU?$char_traits@D@std@@@2@XZ', '?flush@?$basic_ostream@DU?$char_traits@D@std@@@std@@QAEAAV12@XZ', '?unshift@?$codecvt@DDU_Mbstatet@@@std@@QBEHAAU_Mbstatet@@PAD1AAPAD@Z', '?setg@?$basic_streambuf@DU?$char_traits@D@std@@@std@@IAEXPAD00@Z', '?_Init@?$basic_streambuf@DU?$char_traits@D@std@@@std@@IAEXXZ', '?_Init@?$basic_streambuf@DU?$char_traits@D@std@@@std@@IAEXPAPAD0PAH001@Z', '??0?$basic_ios@DU?$char_traits@D@std@@@std@@IAE@XZ', '??0?$basic_istream@DU?$char_traits@D@std@@@std@@QAE@PAV?$basic_streambuf@DU?$char_traits@D@std@@@1@_N@Z', '?in@?$codecvt@DDU_Mbstatet@@@std@@QBEHAAU_Mbstatet@@PBD1AAPBDPAD3AAPAD@Z', '?out@?$codecvt@DDU_Mbstatet@@@std@@QBEHAAU_Mbstatet@@PBD1AAPBDPAD3AAPAD@Z', '?eback@?$basic_streambuf@DU?$char_traits@D@std@@@std@@IBEPADXZ', '?gptr@?$basic_streambuf@DU?$char_traits@D@std@@@std@@IBEPADXZ', '?pptr@?$basic_streambuf@DU?$char_traits@D@std@@@std@@IBEPADXZ', '?egptr@?$basic_streambuf@DU?$char_traits@D@std@@@std@@IBEPADXZ', '?gbump@?$basic_streambuf@DU?$char_traits@D@std@@@std@@IAEXH@Z', '?epptr@?$basic_streambuf@DU?$char_traits@D@std@@@std@@IBEPADXZ', '?_Gndec@?$basic_streambuf@DU?$char_traits@D@std@@@std@@IAEPADXZ', '?_Gninc@?$basic_streambuf@DU?$char_traits@D@std@@@std@@IAEPADXZ', '?_Gnavail@?$basic_streambuf@DU?$char_traits@D@std@@@std@@IBE_JXZ', '?pbump@?$basic_streambuf@DU?$char_traits@D@std@@@std@@IAEXH@Z', '?_Pninc@?$basic_streambuf@DU?$char_traits@D@std@@@std@@IAEPADXZ', '?_Getcat@?$codecvt@DDU_Mbstatet@@@std@@SAIPAPBVfacet@locale@2@PBV42@@Z', '?setstate@?$basic_ios@DU?$char_traits@D@std@@@std@@QAEXH_N@Z', '?rdbuf@?$basic_ios@DU?$char_traits@D@std@@@std@@QBEPAV?$basic_streambuf@DU?$char_traits@D@std@@@2@XZ', '??1?$basic_streambuf@DU?$char_traits@D@std@@@std@@UAE@XZ', '?showmanyc@?$basic_streambuf@DU?$char_traits@D@std@@@std@@MAE_JXZ', '?xsgetn@?$basic_streambuf@DU?$char_traits@D@std@@@std@@MAE_JPAD_J@Z', '?xsputn@?$basic_streambuf@DU?$char_traits@D@std@@@std@@MAE_JPBD_J@Z', '??1?$basic_ios@DU?$char_traits@D@std@@@std@@UAE@XZ', '??6?$basic_ostream@DU?$char_traits@D@std@@@std@@QAEAAV01@P6AAAV01@AAV01@@Z@Z', '??1?$basic_istream@DU?$char_traits@D@std@@@std@@UAE@XZ', '?read@?$basic_istream@DU?$char_traits@D@std@@@std@@QAEAAV12@PAD_J@Z', '?seekg@?$basic_istream@DU?$char_traits@D@std@@@std@@QAEAAV12@_JH@Z', '?tellg@?$basic_istream@DU?$char_traits@D@std@@@std@@QAE?AV?$fpos@U_Mbstatet@@@2@XZ', '?width@ios_base@std@@QAE_J_J@Z', '?width@ios_base@std@@QBE_JXZ', '?flags@ios_base@std@@QBEHXZ', '?good@ios_base@std@@QBE_NXZ', '?always_noconv@codecvt_base@std@@QBE_NXZ', '??Bid@locale@std@@QAEIXZ', '?sputn@?$basic_streambuf@DU?$char_traits@D@std@@@std@@QAE_JPBD_J@Z', '??1_Lockit@std@@QAE@XZ', '??0_Lockit@std@@QAE@H@Z', '?cout@std@@3V?$basic_ostream@DU?$char_traits@D@std@@@1@A', '?_Getgloballocale@locale@std@@CAPAV_Locimp@12@XZ', '?uncaught_exception@std@@YA_NXZ', '?_Xout_of_range@std@@YAXPBD@Z', '?id@?$codecvt@DDU_Mbstatet@@@std@@2V0locale@2@A', '?_Fiopen@std@@YAPAU_iobuf@@PBDHH@Z', '?_Xlength_error@std@@YAXPBD@Z', '?_Pnavail@?$basic_streambuf@DU?$char_traits@D@std@@@std@@IBE_JXZ', '_CxxThrowException', '__current_exception_context', '__std_exception_copy', '__std_exception_destroy', '__CxxFrameHandler3', 'memcpy', '__current_exception', 'memset', '_except_handler4_common', 'memmove', '_fseeki64', '__p__commode', 'fsetpos', 'ungetc', 'setvbuf', 'fgetpos', 'fwrite', '_set_fmode', '_get_stream_buffer_pointers', '__stdio_common_vfprintf', 'fgetc', 'fclose', 'fflush', '__acrt_iob_func', 'fputc', 'fread', '_lock_file', '_unlock_file', 'exit', '_exit', '_configure_narrow_argv', '__p___argc', '_initterm_e', '_cexit', '_c_exit', '_register_thread_local_exe_atexit_callback', '_initterm', '_set_app_type', '_get_initial_narrow_environment', '_seh_filter_exe', '_initialize_onexit_table', '_register_onexit_function', '_crt_atexit', '_controlfp_s', 'terminate', '_initialize_narrow_environment', '_invalid_parameter_noinfo_noreturn', '__p___argv', 'free', '_set_new_mode', 'malloc', '_callnewh', '__setusermatherr', '_configthreadlocale'], ['GetCurrentProcess', 'FindNextFileA', 'FindClose', 'GetSystemDirectoryA', 'DeleteFileA', 'SetFileAttributesA', 'ExitProcess', 'FLine truncated
+150 -87
View File
@@ -2,7 +2,7 @@ from PyQt5 import QtCore, QtGui, QtWidgets
from PyQt5.QtGui import *
from PyQt5.QtCore import *
from PyQt5.QtWidgets import *
import sys, PYAS_UI_rc
import sys, PYAS_Resource
class Ui_MainWindow(object):
def setupUi(self, MainWindow):
@@ -16,7 +16,7 @@ class Ui_MainWindow(object):
MainWindow.setFocusPolicy(QtCore.Qt.TabFocus)
icon = QtGui.QIcon(QFileIconProvider().icon(QFileInfo(str(sys.argv[0]))))
MainWindow.setWindowIcon(icon)
MainWindow.setIconSize(QtCore.QSize(24, 24))
MainWindow.setIconSize(QtCore.QSize(64, 64))
MainWindow.setToolButtonStyle(QtCore.Qt.ToolButtonIconOnly)
MainWindow.setDocumentMode(False)
self.centralwidget = QtWidgets.QWidget(MainWindow)
@@ -49,7 +49,9 @@ class Ui_MainWindow(object):
self.Protection_title.setGeometry(QtCore.QRect(10, 10, 461, 41))
font = QtGui.QFont()
font.setFamily("Microsoft YaHei")
font.setPointSize(18)
font.setPointSize(17)
font.setBold(False)
font.setWeight(50)
font.setStyleStrategy(QtGui.QFont.PreferAntialias)
self.Protection_title.setFont(font)
self.Protection_title.setStyleSheet("color: rgb(70,70,70);")
@@ -60,6 +62,8 @@ class Ui_MainWindow(object):
font = QtGui.QFont()
font.setFamily("Microsoft YaHei")
font.setPointSize(11)
font.setBold(False)
font.setWeight(50)
font.setStyleStrategy(QtGui.QFont.PreferAntialias)
self.Protection_illustrate.setFont(font)
self.Protection_illustrate.setStyleSheet("color: rgb(70,70,70);")
@@ -103,7 +107,9 @@ class Ui_MainWindow(object):
self.Protection_title_2.setGeometry(QtCore.QRect(10, 10, 461, 41))
font = QtGui.QFont()
font.setFamily("Microsoft YaHei")
font.setPointSize(18)
font.setPointSize(17)
font.setBold(False)
font.setWeight(50)
font.setStyleStrategy(QtGui.QFont.PreferAntialias)
self.Protection_title_2.setFont(font)
self.Protection_title_2.setStyleSheet("color: rgb(70,70,70);")
@@ -114,6 +120,8 @@ class Ui_MainWindow(object):
font = QtGui.QFont()
font.setFamily("Microsoft YaHei")
font.setPointSize(11)
font.setBold(False)
font.setWeight(50)
font.setStyleStrategy(QtGui.QFont.PreferAntialias)
self.Protection_illustrate_2.setFont(font)
self.Protection_illustrate_2.setStyleSheet("color: rgb(70,70,70);")
@@ -157,7 +165,9 @@ class Ui_MainWindow(object):
self.Protection_title_3.setGeometry(QtCore.QRect(10, 10, 461, 41))
font = QtGui.QFont()
font.setFamily("Microsoft YaHei")
font.setPointSize(18)
font.setPointSize(17)
font.setBold(False)
font.setWeight(50)
font.setStyleStrategy(QtGui.QFont.PreferAntialias)
self.Protection_title_3.setFont(font)
self.Protection_title_3.setStyleSheet("color: rgb(70,70,70);")
@@ -211,7 +221,9 @@ class Ui_MainWindow(object):
self.Protection_title_4.setGeometry(QtCore.QRect(10, 10, 461, 41))
font = QtGui.QFont()
font.setFamily("Microsoft YaHei")
font.setPointSize(18)
font.setPointSize(17)
font.setBold(False)
font.setWeight(50)
font.setStyleStrategy(QtGui.QFont.PreferAntialias)
self.Protection_title_4.setFont(font)
self.Protection_title_4.setStyleSheet("color: rgb(70,70,70);")
@@ -265,7 +277,9 @@ class Ui_MainWindow(object):
self.Protection_title_5.setGeometry(QtCore.QRect(10, 10, 461, 41))
font = QtGui.QFont()
font.setFamily("Microsoft YaHei")
font.setPointSize(18)
font.setPointSize(17)
font.setBold(False)
font.setWeight(50)
font.setStyleStrategy(QtGui.QFont.PreferAntialias)
self.Protection_title_5.setFont(font)
self.Protection_title_5.setStyleSheet("color: rgb(70,70,70);")
@@ -341,6 +355,8 @@ class Ui_MainWindow(object):
font = QtGui.QFont()
font.setFamily("Microsoft YaHei")
font.setPointSize(15)
font.setBold(False)
font.setWeight(50)
font.setStyleStrategy(QtGui.QFont.PreferAntialias)
self.State_Button.setFont(font)
self.State_Button.setCursor(QtGui.QCursor(QtCore.Qt.ArrowCursor))
@@ -361,7 +377,10 @@ class Ui_MainWindow(object):
"{\n"
" background-color:rgba(255, 255, 255,110);\n"
"}")
self.State_Button.setIconSize(QtCore.QSize(16, 16))
icon1 = QtGui.QIcon()
icon1.addPixmap(QtGui.QPixmap(":/icon/State.png"), QtGui.QIcon.Normal, QtGui.QIcon.Off)
self.State_Button.setIcon(icon1)
self.State_Button.setIconSize(QtCore.QSize(20, 20))
self.State_Button.setCheckable(False)
self.State_Button.setObjectName("State_Button")
self.verticalLayout.addWidget(self.State_Button)
@@ -374,6 +393,8 @@ class Ui_MainWindow(object):
font = QtGui.QFont()
font.setFamily("Microsoft YaHei")
font.setPointSize(15)
font.setBold(False)
font.setWeight(50)
font.setStyleStrategy(QtGui.QFont.PreferAntialias)
self.Virus_Scan_Button.setFont(font)
self.Virus_Scan_Button.setCursor(QtGui.QCursor(QtCore.Qt.ArrowCursor))
@@ -394,7 +415,10 @@ class Ui_MainWindow(object):
"{\n"
" background-color:rgba(255, 255, 255,110);\n"
"}")
self.Virus_Scan_Button.setIconSize(QtCore.QSize(16, 16))
icon2 = QtGui.QIcon()
icon2.addPixmap(QtGui.QPixmap(":/icon/Scan.png"), QtGui.QIcon.Normal, QtGui.QIcon.Off)
self.Virus_Scan_Button.setIcon(icon2)
self.Virus_Scan_Button.setIconSize(QtCore.QSize(20, 20))
self.Virus_Scan_Button.setCheckable(False)
self.Virus_Scan_Button.setObjectName("Virus_Scan_Button")
self.verticalLayout.addWidget(self.Virus_Scan_Button)
@@ -407,10 +431,15 @@ class Ui_MainWindow(object):
font = QtGui.QFont()
font.setFamily("Microsoft YaHei")
font.setPointSize(15)
font.setBold(False)
font.setWeight(50)
font.setStyleStrategy(QtGui.QFont.PreferAntialias)
self.Tools_Button.setFont(font)
self.Tools_Button.setCursor(QtGui.QCursor(QtCore.Qt.ArrowCursor))
self.Tools_Button.setFocusPolicy(QtCore.Qt.StrongFocus)
self.Tools_Button.setContextMenuPolicy(QtCore.Qt.DefaultContextMenu)
self.Tools_Button.setToolTipDuration(-7)
self.Tools_Button.setLayoutDirection(QtCore.Qt.LeftToRight)
self.Tools_Button.setStyleSheet("QPushButton\n"
"{\n"
" border:none;\n"
@@ -427,7 +456,10 @@ class Ui_MainWindow(object):
"{\n"
" background-color:rgba(255, 255, 255,110);\n"
"}")
self.Tools_Button.setIconSize(QtCore.QSize(16, 16))
icon3 = QtGui.QIcon()
icon3.addPixmap(QtGui.QPixmap(":/icon/Tool.png"), QtGui.QIcon.Normal, QtGui.QIcon.Off)
self.Tools_Button.setIcon(icon3)
self.Tools_Button.setIconSize(QtCore.QSize(20, 20))
self.Tools_Button.setCheckable(False)
self.Tools_Button.setObjectName("Tools_Button")
self.verticalLayout.addWidget(self.Tools_Button)
@@ -440,6 +472,8 @@ class Ui_MainWindow(object):
font = QtGui.QFont()
font.setFamily("Microsoft YaHei")
font.setPointSize(15)
font.setBold(False)
font.setWeight(50)
font.setStyleStrategy(QtGui.QFont.PreferAntialias)
self.Protection_Button.setFont(font)
self.Protection_Button.setCursor(QtGui.QCursor(QtCore.Qt.ArrowCursor))
@@ -460,13 +494,16 @@ class Ui_MainWindow(object):
"{\n"
" background-color:rgba(255, 255, 255,110);\n"
"}")
self.Protection_Button.setIconSize(QtCore.QSize(16, 16))
icon4 = QtGui.QIcon()
icon4.addPixmap(QtGui.QPixmap(":/icon/Protect.png"), QtGui.QIcon.Normal, QtGui.QIcon.Off)
self.Protection_Button.setIcon(icon4)
self.Protection_Button.setIconSize(QtCore.QSize(20, 20))
self.Protection_Button.setCheckable(False)
self.Protection_Button.setObjectName("Protection_Button")
self.verticalLayout.addWidget(self.Protection_Button)
self.label = QtWidgets.QPushButton(self.Navigation_Bar)
self.label.setEnabled(False)
self.label.setGeometry(QtCore.QRect(25, 50, 5, 30))
self.label.setGeometry(QtCore.QRect(20, 50, 5, 30))
self.label.setMouseTracking(False)
self.label.setAutoFillBackground(False)
self.label.setStyleSheet("QPushButton#label\n"
@@ -476,6 +513,8 @@ class Ui_MainWindow(object):
"}")
self.label.setText("")
self.label.setCheckable(False)
self.label.setAutoRepeatDelay(300)
self.label.setAutoRepeatInterval(100)
self.label.setAutoDefault(False)
self.label.setDefault(True)
self.label.setFlat(False)
@@ -493,7 +532,9 @@ class Ui_MainWindow(object):
self.Virus_Scan_title.setGeometry(QtCore.QRect(45, 30, 281, 41))
font = QtGui.QFont()
font.setFamily("Microsoft YaHei")
font.setPointSize(18)
font.setPointSize(17)
font.setBold(False)
font.setWeight(50)
self.Virus_Scan_title.setFont(font)
self.Virus_Scan_title.setStyleSheet("color: rgb(70,70,70);")
self.Virus_Scan_title.setAlignment(QtCore.Qt.AlignLeading|QtCore.Qt.AlignLeft|QtCore.Qt.AlignVCenter)
@@ -534,9 +575,6 @@ class Ui_MainWindow(object):
"{\n"
" background-color:rgba(100,220,100,200);\n"
"}")
icon1 = QtGui.QIcon()
icon1.addPixmap(QtGui.QPixmap(":/icon/Icon/multimedia.png"), QtGui.QIcon.Normal, QtGui.QIcon.Off)
self.Virus_Scan_choose_Button.setIcon(icon1)
self.Virus_Scan_choose_Button.setIconSize(QtCore.QSize(10, 10))
self.Virus_Scan_choose_Button.setCheckable(False)
self.Virus_Scan_choose_Button.setAutoRepeat(False)
@@ -549,6 +587,9 @@ class Ui_MainWindow(object):
self.Virus_Scan_output = QtWidgets.QListView(self.Virus_Scan_widget)
self.Virus_Scan_output.setEnabled(True)
self.Virus_Scan_output.setGeometry(QtCore.QRect(45, 150, 581, 301))
font = QtGui.QFont()
font.setPointSize(9)
self.Virus_Scan_output.setFont(font)
self.Virus_Scan_output.setStyleSheet("QWidget::item\n"
"{\n"
"background-color: rgba(50,50,50,30);\n"
@@ -754,33 +795,40 @@ class Ui_MainWindow(object):
self.State_widget.setStyleSheet("background-color:rgb(255, 255, 255);")
self.State_widget.setObjectName("State_widget")
self.State_title = QtWidgets.QLabel(self.State_widget)
self.State_title.setGeometry(QtCore.QRect(94, 210, 481, 51))
self.State_title.setGeometry(QtCore.QRect(50, 210, 571, 41))
font = QtGui.QFont()
font.setFamily("Microsoft YaHei")
font.setPointSize(14)
font.setPointSize(15)
font.setBold(True)
font.setWeight(75)
font.setStyleStrategy(QtGui.QFont.PreferAntialias)
self.State_title.setFont(font)
self.State_title.setLayoutDirection(QtCore.Qt.LeftToRight)
self.State_title.setStyleSheet("")
self.State_title.setAlignment(QtCore.Qt.AlignCenter)
self.State_title.setObjectName("State_title")
self.State_icon = QtWidgets.QLabel(self.State_widget)
self.State_icon.setGeometry(QtCore.QRect(255, 50, 161, 151))
self.State_icon.setGeometry(QtCore.QRect(250, 20, 171, 171))
font = QtGui.QFont()
font.setFamily("Microsoft YaHei")
font.setPointSize(1)
font.setKerning(True)
font.setStyleStrategy(QtGui.QFont.PreferAntialias)
self.State_icon.setFont(font)
self.State_icon.setContextMenuPolicy(QtCore.Qt.DefaultContextMenu)
self.State_icon.setFrameShape(QtWidgets.QFrame.NoFrame)
self.State_icon.setLineWidth(1)
self.State_icon.setText("")
self.State_icon.setPixmap(QtGui.QPixmap(":/icon/Icon/check.png"))
self.State_icon.setTextFormat(QtCore.Qt.AutoText)
self.State_icon.setPixmap(QtGui.QPixmap(":/icon/Check.png"))
self.State_icon.setScaledContents(True)
self.State_icon.setAlignment(QtCore.Qt.AlignCenter)
self.State_icon.setObjectName("State_icon")
self.State_output = QtWidgets.QTextEdit(self.State_widget)
self.State_output.setGeometry(QtCore.QRect(95, 300, 481, 151))
self.State_output.setGeometry(QtCore.QRect(50, 300, 571, 151))
font = QtGui.QFont()
font.setFamily("Microsoft YaHei")
font.setPointSize(12)
font.setPointSize(11)
font.setBold(False)
font.setItalic(False)
font.setWeight(50)
@@ -792,7 +840,7 @@ class Ui_MainWindow(object):
self.State_output.setTextInteractionFlags(QtCore.Qt.TextSelectableByKeyboard|QtCore.Qt.TextSelectableByMouse)
self.State_output.setObjectName("State_output")
self.State_log = QtWidgets.QLabel(self.State_widget)
self.State_log.setGeometry(QtCore.QRect(95, 260, 481, 31))
self.State_log.setGeometry(QtCore.QRect(50, 260, 571, 31))
font = QtGui.QFont()
font.setFamily("Microsoft YaHei")
font.setPointSize(11)
@@ -836,17 +884,17 @@ class Ui_MainWindow(object):
" color:rgba(60,60,60,255);\n"
"}\n"
"")
icon2 = QtGui.QIcon()
icon2.addPixmap(QtGui.QPixmap(":/icon/Icon/exit2.png"), QtGui.QIcon.Normal, QtGui.QIcon.Off)
self.About_Back.setIcon(icon2)
icon5 = QtGui.QIcon()
icon5.addPixmap(QtGui.QPixmap(":/icon/Back.png"), QtGui.QIcon.Normal, QtGui.QIcon.Off)
self.About_Back.setIcon(icon5)
self.About_Back.setIconSize(QtCore.QSize(20, 20))
self.About_Back.setCheckable(False)
self.About_Back.setObjectName("About_Back")
self.PYAS_Version = QtWidgets.QLabel(self.About_widget)
self.PYAS_Version.setGeometry(QtCore.QRect(40, 50, 591, 41))
self.PYAS_Version.setGeometry(QtCore.QRect(45, 50, 571, 41))
font = QtGui.QFont()
font.setFamily("Microsoft YaHei")
font.setPointSize(14)
font.setPointSize(15)
font.setBold(False)
font.setUnderline(False)
font.setWeight(50)
@@ -855,7 +903,7 @@ class Ui_MainWindow(object):
self.PYAS_Version.setAlignment(QtCore.Qt.AlignLeading|QtCore.Qt.AlignLeft|QtCore.Qt.AlignVCenter)
self.PYAS_Version.setObjectName("PYAS_Version")
self.GUI_Made_title = QtWidgets.QLabel(self.About_widget)
self.GUI_Made_title.setGeometry(QtCore.QRect(40, 100, 131, 41))
self.GUI_Made_title.setGeometry(QtCore.QRect(45, 100, 131, 31))
font = QtGui.QFont()
font.setFamily("Microsoft YaHei")
font.setPointSize(13)
@@ -866,7 +914,7 @@ class Ui_MainWindow(object):
self.GUI_Made_title.setAlignment(QtCore.Qt.AlignLeading|QtCore.Qt.AlignLeft|QtCore.Qt.AlignVCenter)
self.GUI_Made_title.setObjectName("GUI_Made_title")
self.GUI_Made_Name = QtWidgets.QLabel(self.About_widget)
self.GUI_Made_Name.setGeometry(QtCore.QRect(180, 100, 451, 41))
self.GUI_Made_Name.setGeometry(QtCore.QRect(185, 100, 441, 31))
font = QtGui.QFont()
font.setFamily("Microsoft YaHei")
font.setPointSize(13)
@@ -877,7 +925,7 @@ class Ui_MainWindow(object):
self.GUI_Made_Name.setAlignment(QtCore.Qt.AlignLeading|QtCore.Qt.AlignLeft|QtCore.Qt.AlignVCenter)
self.GUI_Made_Name.setObjectName("GUI_Made_Name")
self.Core_Made_title = QtWidgets.QLabel(self.About_widget)
self.Core_Made_title.setGeometry(QtCore.QRect(40, 140, 131, 41))
self.Core_Made_title.setGeometry(QtCore.QRect(45, 140, 131, 31))
font = QtGui.QFont()
font.setFamily("Microsoft YaHei")
font.setPointSize(13)
@@ -888,7 +936,7 @@ class Ui_MainWindow(object):
self.Core_Made_title.setAlignment(QtCore.Qt.AlignLeading|QtCore.Qt.AlignLeft|QtCore.Qt.AlignVCenter)
self.Core_Made_title.setObjectName("Core_Made_title")
self.Core_Made_Name = QtWidgets.QLabel(self.About_widget)
self.Core_Made_Name.setGeometry(QtCore.QRect(180, 140, 451, 41))
self.Core_Made_Name.setGeometry(QtCore.QRect(185, 140, 441, 31))
font = QtGui.QFont()
font.setFamily("Microsoft YaHei")
font.setPointSize(13)
@@ -899,7 +947,7 @@ class Ui_MainWindow(object):
self.Core_Made_Name.setAlignment(QtCore.Qt.AlignLeading|QtCore.Qt.AlignLeft|QtCore.Qt.AlignVCenter)
self.Core_Made_Name.setObjectName("Core_Made_Name")
self.Testers_title = QtWidgets.QLabel(self.About_widget)
self.Testers_title.setGeometry(QtCore.QRect(40, 180, 131, 41))
self.Testers_title.setGeometry(QtCore.QRect(45, 180, 131, 31))
font = QtGui.QFont()
font.setFamily("Microsoft YaHei")
font.setPointSize(13)
@@ -910,7 +958,7 @@ class Ui_MainWindow(object):
self.Testers_title.setAlignment(QtCore.Qt.AlignLeading|QtCore.Qt.AlignLeft|QtCore.Qt.AlignVCenter)
self.Testers_title.setObjectName("Testers_title")
self.Testers_Name = QtWidgets.QLabel(self.About_widget)
self.Testers_Name.setGeometry(QtCore.QRect(180, 180, 451, 41))
self.Testers_Name.setGeometry(QtCore.QRect(185, 180, 441, 31))
font = QtGui.QFont()
font.setFamily("Microsoft YaHei")
font.setPointSize(13)
@@ -921,7 +969,7 @@ class Ui_MainWindow(object):
self.Testers_Name.setAlignment(QtCore.Qt.AlignLeading|QtCore.Qt.AlignLeft|QtCore.Qt.AlignVCenter)
self.Testers_Name.setObjectName("Testers_Name")
self.PYAS_URL_title = QtWidgets.QLabel(self.About_widget)
self.PYAS_URL_title.setGeometry(QtCore.QRect(40, 220, 131, 41))
self.PYAS_URL_title.setGeometry(QtCore.QRect(45, 220, 131, 31))
font = QtGui.QFont()
font.setFamily("Microsoft YaHei")
font.setPointSize(13)
@@ -932,7 +980,7 @@ class Ui_MainWindow(object):
self.PYAS_URL_title.setAlignment(QtCore.Qt.AlignLeading|QtCore.Qt.AlignLeft|QtCore.Qt.AlignVCenter)
self.PYAS_URL_title.setObjectName("PYAS_URL_title")
self.PYAS_URL = QtWidgets.QLabel(self.About_widget)
self.PYAS_URL.setGeometry(QtCore.QRect(180, 220, 451, 41))
self.PYAS_URL.setGeometry(QtCore.QRect(185, 220, 441, 31))
font = QtGui.QFont()
font.setFamily("Microsoft YaHei")
font.setPointSize(13)
@@ -944,10 +992,10 @@ class Ui_MainWindow(object):
self.PYAS_URL.setOpenExternalLinks(True)
self.PYAS_URL.setObjectName("PYAS_URL")
self.PYAS_CopyRight = QtWidgets.QLabel(self.About_widget)
self.PYAS_CopyRight.setGeometry(QtCore.QRect(40, 430, 591, 41))
self.PYAS_CopyRight.setGeometry(QtCore.QRect(45, 430, 581, 41))
font = QtGui.QFont()
font.setFamily("Microsoft YaHei")
font.setPointSize(13)
font.setPointSize(11)
font.setBold(False)
font.setWeight(50)
self.PYAS_CopyRight.setFont(font)
@@ -955,12 +1003,15 @@ class Ui_MainWindow(object):
self.PYAS_CopyRight.setAlignment(QtCore.Qt.AlignRight|QtCore.Qt.AlignTrailing|QtCore.Qt.AlignVCenter)
self.PYAS_CopyRight.setObjectName("PYAS_CopyRight")
self.License_terms = QtWidgets.QTextEdit(self.About_widget)
self.License_terms.setGeometry(QtCore.QRect(40, 310, 591, 121))
self.License_terms.setGeometry(QtCore.QRect(45, 300, 581, 131))
font = QtGui.QFont()
font.setPointSize(11)
self.License_terms.setFont(font)
self.License_terms.setStyleSheet("")
self.License_terms.setReadOnly(True)
self.License_terms.setObjectName("License_terms")
self.License_terms_title = QtWidgets.QLabel(self.About_widget)
self.License_terms_title.setGeometry(QtCore.QRect(40, 260, 591, 41))
self.License_terms_title.setGeometry(QtCore.QRect(45, 260, 581, 31))
font = QtGui.QFont()
font.setFamily("Microsoft YaHei")
font.setPointSize(13)
@@ -1011,10 +1062,10 @@ class Ui_MainWindow(object):
" background-color:rgba(255, 255, 255,220);\n"
"}")
self.Close_Button.setText("")
icon3 = QtGui.QIcon()
icon3.addPixmap(QtGui.QPixmap(":/icon/Icon/X.png"), QtGui.QIcon.Normal, QtGui.QIcon.Off)
self.Close_Button.setIcon(icon3)
self.Close_Button.setIconSize(QtCore.QSize(13, 13))
icon6 = QtGui.QIcon()
icon6.addPixmap(QtGui.QPixmap(":/icon/Close.png"), QtGui.QIcon.Normal, QtGui.QIcon.Off)
self.Close_Button.setIcon(icon6)
self.Close_Button.setIconSize(QtCore.QSize(16, 16))
self.Close_Button.setCheckable(False)
self.Close_Button.setObjectName("Close_Button")
self.Minimize_Button = QtWidgets.QPushButton(self.Window_widget)
@@ -1045,17 +1096,17 @@ class Ui_MainWindow(object):
" background-color:rgba(255, 255, 255,220);\n"
"}")
self.Minimize_Button.setText("")
icon4 = QtGui.QIcon()
icon4.addPixmap(QtGui.QPixmap(":/icon/Icon/minimizeIcon.png"), QtGui.QIcon.Normal, QtGui.QIcon.Off)
self.Minimize_Button.setIcon(icon4)
self.Minimize_Button.setIconSize(QtCore.QSize(20, 20))
icon7 = QtGui.QIcon()
icon7.addPixmap(QtGui.QPixmap(":/icon/Minimize.png"), QtGui.QIcon.Normal, QtGui.QIcon.Off)
self.Minimize_Button.setIcon(icon7)
self.Minimize_Button.setIconSize(QtCore.QSize(16, 16))
self.Minimize_Button.setCheckable(False)
self.Minimize_Button.setObjectName("Minimize_Button")
self.Window_title = QtWidgets.QLabel(self.Window_widget)
self.Window_title.setGeometry(QtCore.QRect(10, 0, 691, 41))
font = QtGui.QFont()
font.setFamily("Microsoft YaHei")
font.setPointSize(14)
font.setPointSize(15)
font.setBold(False)
font.setWeight(50)
self.Window_title.setFont(font)
@@ -1090,10 +1141,10 @@ class Ui_MainWindow(object):
" background-color:rgba(255, 255, 255,220);\n"
"}")
self.Menu_Button.setText("")
icon5 = QtGui.QIcon()
icon5.addPixmap(QtGui.QPixmap(":/icon/Icon/Menu.png"), QtGui.QIcon.Normal, QtGui.QIcon.Off)
self.Menu_Button.setIcon(icon5)
self.Menu_Button.setIconSize(QtCore.QSize(19, 19))
icon8 = QtGui.QIcon()
icon8.addPixmap(QtGui.QPixmap(":/icon/Menu.png"), QtGui.QIcon.Normal, QtGui.QIcon.Off)
self.Menu_Button.setIcon(icon8)
self.Menu_Button.setIconSize(QtCore.QSize(16, 16))
self.Menu_Button.setCheckable(False)
self.Menu_Button.setObjectName("Menu_Button")
self.Process_widget = QtWidgets.QWidget(self.widget)
@@ -1106,7 +1157,7 @@ class Ui_MainWindow(object):
self.Process_widget.setStyleSheet("background-color:rgba(255, 255, 255,240);")
self.Process_widget.setObjectName("Process_widget")
self.Process_Tools_Back = QtWidgets.QPushButton(self.Process_widget)
self.Process_Tools_Back.setGeometry(QtCore.QRect(10, 10, 101, 41))
self.Process_Tools_Back.setGeometry(QtCore.QRect(20, 10, 101, 41))
sizePolicy = QtWidgets.QSizePolicy(QtWidgets.QSizePolicy.Minimum, QtWidgets.QSizePolicy.Minimum)
sizePolicy.setHorizontalStretch(0)
sizePolicy.setVerticalStretch(0)
@@ -1129,14 +1180,15 @@ class Ui_MainWindow(object):
" color:rgba(60,60,60,255);\n"
"}\n"
"")
self.Process_Tools_Back.setIcon(icon2)
self.Process_Tools_Back.setIcon(icon5)
self.Process_Tools_Back.setIconSize(QtCore.QSize(20, 20))
self.Process_Tools_Back.setCheckable(False)
self.Process_Tools_Back.setObjectName("Process_Tools_Back")
self.Process_list = QtWidgets.QListView(self.Process_widget)
self.Process_list.setGeometry(QtCore.QRect(30, 60, 611, 361))
self.Process_list.setGeometry(QtCore.QRect(40, 60, 591, 361))
font = QtGui.QFont()
font.setFamily("Microsoft YaHei")
font.setPointSize(9)
self.Process_list.setFont(font)
self.Process_list.setStyleSheet("QWidget::item\n"
"{\n"
@@ -1168,10 +1220,10 @@ class Ui_MainWindow(object):
self.Process_list.setVerticalScrollMode(QtWidgets.QAbstractItemView.ScrollPerItem)
self.Process_list.setObjectName("Process_list")
self.Process_Total_title = QtWidgets.QLabel(self.Process_widget)
self.Process_Total_title.setGeometry(QtCore.QRect(30, 425, 141, 41))
self.Process_Total_title.setGeometry(QtCore.QRect(40, 425, 131, 41))
font = QtGui.QFont()
font.setFamily("Microsoft YaHei")
font.setPointSize(12)
font.setPointSize(13)
font.setBold(False)
font.setWeight(50)
self.Process_Total_title.setFont(font)
@@ -1179,12 +1231,13 @@ class Ui_MainWindow(object):
self.Process_Total_title.setAlignment(QtCore.Qt.AlignLeading|QtCore.Qt.AlignLeft|QtCore.Qt.AlignVCenter)
self.Process_Total_title.setObjectName("Process_Total_title")
self.Process_Total_View = QtWidgets.QLineEdit(self.Process_widget)
self.Process_Total_View.setGeometry(QtCore.QRect(180, 430, 461, 31))
self.Process_Total_View.setGeometry(QtCore.QRect(180, 430, 451, 31))
font = QtGui.QFont()
font.setFamily("Microsoft YaHei")
font.setPointSize(11)
font.setStyleStrategy(QtGui.QFont.PreferAntialias)
self.Process_Total_View.setFont(font)
self.Process_Total_View.setText("")
self.Process_Total_View.setReadOnly(True)
self.Process_Total_View.setObjectName("Process_Total_View")
self.Tools_widget = QtWidgets.QWidget(self.widget)
@@ -1234,7 +1287,7 @@ class Ui_MainWindow(object):
self.System_Process_Manage_Button.setSizePolicy(sizePolicy)
font = QtGui.QFont()
font.setFamily("Microsoft YaHei")
font.setPointSize(12)
font.setPointSize(13)
font.setStyleStrategy(QtGui.QFont.PreferAntialias)
self.System_Process_Manage_Button.setFont(font)
self.System_Process_Manage_Button.setFocusPolicy(QtCore.Qt.StrongFocus)
@@ -1264,7 +1317,7 @@ class Ui_MainWindow(object):
self.Clean_System_Files_Button.setSizePolicy(sizePolicy)
font = QtGui.QFont()
font.setFamily("Microsoft YaHei")
font.setPointSize(12)
font.setPointSize(13)
font.setStyleStrategy(QtGui.QFont.PreferAntialias)
self.Clean_System_Files_Button.setFont(font)
self.Clean_System_Files_Button.setFocusPolicy(QtCore.Qt.StrongFocus)
@@ -1294,7 +1347,7 @@ class Ui_MainWindow(object):
self.Repair_System_Files_Button.setSizePolicy(sizePolicy)
font = QtGui.QFont()
font.setFamily("Microsoft YaHei")
font.setPointSize(12)
font.setPointSize(13)
font.setStyleStrategy(QtGui.QFont.PreferAntialias)
self.Repair_System_Files_Button.setFont(font)
self.Repair_System_Files_Button.setFocusPolicy(QtCore.Qt.StrongFocus)
@@ -1324,7 +1377,7 @@ class Ui_MainWindow(object):
self.Repair_System_Network_Button.setSizePolicy(sizePolicy)
font = QtGui.QFont()
font.setFamily("Microsoft YaHei")
font.setPointSize(12)
font.setPointSize(13)
font.setStyleStrategy(QtGui.QFont.PreferAntialias)
self.Repair_System_Network_Button.setFont(font)
self.Repair_System_Network_Button.setFocusPolicy(QtCore.Qt.StrongFocus)
@@ -1354,7 +1407,7 @@ class Ui_MainWindow(object):
self.Window_Block_Button.setSizePolicy(sizePolicy)
font = QtGui.QFont()
font.setFamily("Microsoft YaHei")
font.setPointSize(12)
font.setPointSize(13)
font.setStyleStrategy(QtGui.QFont.PreferAntialias)
self.Window_Block_Button.setFont(font)
self.Window_Block_Button.setFocusPolicy(QtCore.Qt.StrongFocus)
@@ -1398,7 +1451,9 @@ class Ui_MainWindow(object):
self.high_sensitivity_title.setGeometry(QtCore.QRect(20, 10, 451, 31))
font = QtGui.QFont()
font.setFamily("Microsoft YaHei")
font.setPointSize(18)
font.setPointSize(17)
font.setBold(False)
font.setWeight(50)
font.setStyleStrategy(QtGui.QFont.PreferAntialias)
self.high_sensitivity_title.setFont(font)
self.high_sensitivity_title.setStyleSheet("color: rgb(70,70,70);")
@@ -1454,7 +1509,9 @@ class Ui_MainWindow(object):
self.Language_title.setGeometry(QtCore.QRect(20, 10, 361, 31))
font = QtGui.QFont()
font.setFamily("Microsoft YaHei")
font.setPointSize(18)
font.setPointSize(17)
font.setBold(False)
font.setWeight(50)
font.setStyleStrategy(QtGui.QFont.PreferAntialias)
self.Language_title.setFont(font)
self.Language_title.setStyleSheet("color: rgb(70,70,70);")
@@ -1487,7 +1544,7 @@ class Ui_MainWindow(object):
self.Language_Traditional_Chinese = QtWidgets.QRadioButton(self.gridLayoutWidget)
font = QtGui.QFont()
font.setFamily("Microsoft YaHei")
font.setPointSize(12)
font.setPointSize(11)
font.setStyleStrategy(QtGui.QFont.PreferAntialias)
self.Language_Traditional_Chinese.setFont(font)
self.Language_Traditional_Chinese.setObjectName("Language_Traditional_Chinese")
@@ -1495,7 +1552,7 @@ class Ui_MainWindow(object):
self.Language_Simplified_Chinese = QtWidgets.QRadioButton(self.gridLayoutWidget)
font = QtGui.QFont()
font.setFamily("Microsoft YaHei")
font.setPointSize(12)
font.setPointSize(11)
font.setStyleStrategy(QtGui.QFont.PreferAntialias)
self.Language_Simplified_Chinese.setFont(font)
self.Language_Simplified_Chinese.setObjectName("Language_Simplified_Chinese")
@@ -1503,7 +1560,7 @@ class Ui_MainWindow(object):
self.Language_English = QtWidgets.QRadioButton(self.gridLayoutWidget)
font = QtGui.QFont()
font.setFamily("Microsoft YaHei")
font.setPointSize(12)
font.setPointSize(11)
font.setStyleStrategy(QtGui.QFont.PreferAntialias)
self.Language_English.setFont(font)
self.Language_English.setObjectName("Language_English")
@@ -1520,7 +1577,9 @@ class Ui_MainWindow(object):
self.cloud_services_title.setGeometry(QtCore.QRect(20, 10, 451, 31))
font = QtGui.QFont()
font.setFamily("Microsoft YaHei")
font.setPointSize(18)
font.setPointSize(17)
font.setBold(False)
font.setWeight(50)
font.setStyleStrategy(QtGui.QFont.PreferAntialias)
self.cloud_services_title.setFont(font)
self.cloud_services_title.setStyleSheet("color: rgb(70,70,70);")
@@ -1568,7 +1627,7 @@ class Ui_MainWindow(object):
self.cloud_services_switch_Button.raise_()
self.cloud_services_title.raise_()
self.Setting_Back = QtWidgets.QPushButton(self.Setting_widget)
self.Setting_Back.setGeometry(QtCore.QRect(30, 10, 101, 41))
self.Setting_Back.setGeometry(QtCore.QRect(25, 10, 101, 41))
sizePolicy = QtWidgets.QSizePolicy(QtWidgets.QSizePolicy.Minimum, QtWidgets.QSizePolicy.Minimum)
sizePolicy.setHorizontalStretch(0)
sizePolicy.setVerticalStretch(0)
@@ -1591,7 +1650,7 @@ class Ui_MainWindow(object):
" color:rgba(60,60,60,255);\n"
"}\n"
"")
self.Setting_Back.setIcon(icon2)
self.Setting_Back.setIcon(icon5)
self.Setting_Back.setIconSize(QtCore.QSize(20, 20))
self.Setting_Back.setCheckable(False)
self.Setting_Back.setObjectName("Setting_Back")
@@ -1604,7 +1663,9 @@ class Ui_MainWindow(object):
self.Add_White_list_title.setGeometry(QtCore.QRect(20, 10, 451, 31))
font = QtGui.QFont()
font.setFamily("Microsoft YaHei")
font.setPointSize(18)
font.setPointSize(17)
font.setBold(False)
font.setWeight(50)
font.setStyleStrategy(QtGui.QFont.PreferAntialias)
self.Add_White_list_title.setFont(font)
self.Add_White_list_title.setStyleSheet("color: rgb(70,70,70);")
@@ -1658,7 +1719,9 @@ class Ui_MainWindow(object):
self.Theme_title.setGeometry(QtCore.QRect(20, 10, 351, 31))
font = QtGui.QFont()
font.setFamily("Microsoft YaHei")
font.setPointSize(18)
font.setPointSize(17)
font.setBold(False)
font.setWeight(50)
font.setStyleStrategy(QtGui.QFont.PreferAntialias)
self.Theme_title.setFont(font)
self.Theme_title.setStyleSheet("color: rgb(70,70,70);")
@@ -1691,7 +1754,7 @@ class Ui_MainWindow(object):
self.Theme_Black = QtWidgets.QRadioButton(self.gridLayoutWidget_2)
font = QtGui.QFont()
font.setFamily("Microsoft YaHei")
font.setPointSize(12)
font.setPointSize(11)
font.setStyleStrategy(QtGui.QFont.PreferAntialias)
self.Theme_Black.setFont(font)
self.Theme_Black.setObjectName("Theme_Black")
@@ -1699,7 +1762,7 @@ class Ui_MainWindow(object):
self.Theme_White = QtWidgets.QRadioButton(self.gridLayoutWidget_2)
font = QtGui.QFont()
font.setFamily("Microsoft YaHei")
font.setPointSize(12)
font.setPointSize(11)
font.setStyleStrategy(QtGui.QFont.PreferAntialias)
self.Theme_White.setFont(font)
self.Theme_White.setObjectName("Theme_White")
@@ -1707,7 +1770,7 @@ class Ui_MainWindow(object):
self.Theme_Yellow = QtWidgets.QRadioButton(self.gridLayoutWidget_2)
font = QtGui.QFont()
font.setFamily("Microsoft YaHei")
font.setPointSize(12)
font.setPointSize(11)
font.setStyleStrategy(QtGui.QFont.PreferAntialias)
self.Theme_Yellow.setFont(font)
self.Theme_Yellow.setObjectName("Theme_Yellow")
@@ -1715,14 +1778,14 @@ class Ui_MainWindow(object):
self.Theme_Blue = QtWidgets.QRadioButton(self.gridLayoutWidget_2)
font = QtGui.QFont()
font.setFamily("Microsoft YaHei")
font.setPointSize(12)
font.setPointSize(11)
self.Theme_Blue.setFont(font)
self.Theme_Blue.setObjectName("Theme_Blue")
self.gridLayout_2.addWidget(self.Theme_Blue, 2, 0, 1, 1)
self.Theme_Red = QtWidgets.QRadioButton(self.gridLayoutWidget_2)
font = QtGui.QFont()
font.setFamily("Microsoft YaHei")
font.setPointSize(12)
font.setPointSize(11)
font.setStyleStrategy(QtGui.QFont.PreferAntialias)
self.Theme_Red.setFont(font)
self.Theme_Red.setObjectName("Theme_Red")
@@ -1730,7 +1793,7 @@ class Ui_MainWindow(object):
self.Theme_Green = QtWidgets.QRadioButton(self.gridLayoutWidget_2)
font = QtGui.QFont()
font.setFamily("Microsoft YaHei")
font.setPointSize(12)
font.setPointSize(11)
font.setStyleStrategy(QtGui.QFont.PreferAntialias)
self.Theme_Green.setFont(font)
self.Theme_Green.setObjectName("Theme_Green")
@@ -1738,16 +1801,16 @@ class Ui_MainWindow(object):
self.Theme_illustrate.raise_()
self.Language_Choose_widget_2.raise_()
self.Theme_title.raise_()
self.State_widget.raise_()
self.Setting_widget.raise_()
self.About_widget.raise_()
self.Tools_widget.raise_()
self.widget_2.raise_()
self.Process_widget.raise_()
self.Virus_Scan_widget.raise_()
self.Window_widget.raise_()
self.Navigation_Bar.raise_()
self.Protection_widget.raise_()
self.About_widget.raise_()
self.Virus_Scan_widget.raise_()
self.Tools_widget.raise_()
self.Setting_widget.raise_()
self.State_widget.raise_()
MainWindow.setCentralWidget(self.centralwidget)
self.retranslateUi(MainWindow)
@@ -1783,7 +1846,7 @@ class Ui_MainWindow(object):
self.Disk_Scan_Button.setText(_translate("MainWindow", "全盤掃描"))
self.Virus_Scan_Solve_Button.setText(_translate("MainWindow", "立即解決"))
self.Virus_Scan_Break_Button.setText(_translate("MainWindow", "停止掃描"))
self.State_title.setText(_translate("MainWindow", "這台電腦目前很安全"))
self.State_title.setText(_translate("MainWindow", "This Device Has Been Protect"))
self.State_log.setText(_translate("MainWindow", "日誌:"))
self.About_Back.setText(_translate("MainWindow", "返回"))
self.PYAS_Version.setText(_translate("MainWindow", "PYAS v2.3.5"))
@@ -1792,7 +1855,7 @@ class Ui_MainWindow(object):
self.Core_Made_title.setText(_translate("MainWindow", "核心製作:"))
self.Core_Made_Name.setText(_translate("MainWindow", "PYAS_Dev#0629"))
self.Testers_title.setText(_translate("MainWindow", "測試人員:"))
self.Testers_Name.setText(_translate("MainWindow", "mtkiao129#3921"))
self.Testers_Name.setText(_translate("MainWindow", "PYAS_Dev#0629"))
self.PYAS_URL_title.setText(_translate("MainWindow", "官方網站:"))
self.PYAS_URL.setText(_translate("MainWindow", "<html><head/><body><p><a href=\"https://xiaomi69ai.wixsite.com/pyas\"><span style=\" text-decoration: underline; color:#0000ff;\">https://xiaomi69ai.wixsite.com/pyas</span></a></p></body></html>"))
self.PYAS_CopyRight.setText(_translate("MainWindow", "Copyright© 2020-2022 PYAS Security"))
+8 -6
View File
@@ -3,19 +3,21 @@ translations = {"zh_TW": {"已开启":"已開啟","已关闭":"已關閉","On":"
"軟體":"软件","檔案":"文件","確定":"确认","設定":"设置","關於":"关于",
"錯誤":"错误","實時":"实时","發現":"发现","關閉":"关闭","裝置":"设备",
"總數":"总数","註冊":"注册","圖標":"图标","路徑":"路径","網路":"网络",
"位元":"字节","彈窗":"弹窗","增":"增","單":"单","簽":"签","無":"无",
"位元":"字节","彈窗":"弹窗","靈敏":"敏感","增":"增","單":"单","簽":"签",
"項":"项","掃":"扫","試":"试","黃":"黄","嗎":"吗","防":"保","鑰":"钥",
"當":"当","後":"后","護":"护","導":"导","區":"区","復":"复","攔":"拦",
"請":"请","統":"统","刪":"删","進":"进","個":"个","選":"选","啟":"启",
"監":"监","並":"并","徑":"径","盤":"盘","隱":"隐","動":"动","狀":"状",
"誌":"志","靈":"灵","這":"这","會":"会","題":"题","擇":"择","語":"语",
"誌":"志","這":"这","會":"会","題":"题","擇":"择","語":"语","無":"无",
"顯":"显","變":"变","戶":"户","碼":"码","雲":"云","訂":"订","稱":"称",
"類":"类","輸":"输","執":"执","數":"数","尋":"寻","網":"网","詢":"询",
"製":"制","員":"员","許":"许","條":"条","藍":"蓝","紅":"红","綠":"绿",
"態":"态","務":"务","連":"连","檢":"检","測":"测","關":"关","強":"强",},
"態":"态","務":"务","連":"连","檢":"检","測":"测","關":"关","強":"强",
"驅":"驱",},
"en_US": {"已開啟":"On","已關閉":"Off","已开启":"On","已关闭":"Off",",":", ",
"立即刪除":"Delete Now","安全模式":"Safe Mode","官方網站":"Website",
"許可條款":"License Terms","可疑":"Suspicious ","惡意軟體":"Malware ",
"可疑檔案":"Suspicious ","惡意軟體":"Malware ","勒索軟體":"Ransom ",
"許可條款":"License Terms","惡意":"Malicious","可疑":"Suspicious",
"啟用":"Enable ","禁用":"Disable ","正在初始化中":"Initializing ",
"正在掃描":"Scanning ","正在刪除":"Deleting ","最小化到":"Minimize To ",
"確定要":"Sure Want To ","靈敏度":"Sensitivity ","更新":"Update",
@@ -43,6 +45,6 @@ translations = {"zh_TW": {"已开启":"已開啟","已关闭":"已關閉","On":"
"增加":"Add","移除":"Delete","項目":"Items ","生成":"Create ",
"開啟":"Open ","您":"You ","此":"This ","並":"And ","未":"Not ",
"高":"High ","新":"New ","和":"And ","會":"Can ","密鑰":"Key ",
"日誌":"Log","已":"Has ","彈窗":"Window ","要":"To ","立即":"",
"日誌":"Log","已":"Has ","彈窗":"Window ","要":"To ","驅動":"Drive ",
"的":"","顯示":"","個":"","嗎":"","中":"","了":"","行":"","稱":"",
" ":" "}}
"檢測":"Detect ","立即":""," ":" "}}
-1
View File
@@ -1 +0,0 @@
function_list = [['_CorExeMain'], ['GetProcessHeap', 'RtlUnwind', 'RaiseException', 'HeapSize', 'TerminateProcess', 'UnhandledExceptionFilter', 'SetUnhandledExceptionFilter', 'IsDebuggerPresent', 'HeapDestroy', 'HeapCreate', 'VirtualFree', 'Sleep', 'GetStdHandle', 'GetTimeZoneInformation', 'GetACP', 'SetHandleCount', 'GetFileType', 'GetStartupInfoA', 'GetCommandLineA', 'GetEnvironmentStrings', 'FreeEnvironmentStringsW', 'GetEnvironmentStringsW', 'QueryPerformanceCounter', 'GetSystemTimeAsFileTime', 'LCMapStringA', 'LCMapStringW', 'GetConsoleCP', 'GetConsoleMode', 'GetStringTypeA', 'GetStringTypeW', 'SetStdHandle', 'WriteConsoleA', 'GetConsoleOutputCP', 'WriteConsoleW', 'GetDateFormatA', 'GetTimeFormatA', 'GetDriveTypeA', 'SetEnvironmentVariableA', 'HeapReAlloc', 'VirtualAlloc', 'SetCurrentDirectoryA', 'HeapAlloc', 'HeapFree', 'GetTickCount', 'GetCurrentDirectoryA', 'LocalFileTimeToFileTime', 'CreateFileA', 'GetShortPathNameA', 'GetVolumeInformationA', 'GetCurrentProcess', 'DuplicateHandle', 'GetFileSize', 'SetEndOfFile', 'UnlockFile', 'LockFile', 'FlushFileBuffers', 'SetFilePointer', 'WriteFile', 'ReadFile', 'DeleteFileA', 'MoveFileA', 'GetOEMCP', 'GetCPInfo', 'InterlockedIncrement', 'SystemTimeToFileTime', 'GetThreadLocale', 'GlobalFlags', 'TlsFree', 'DeleteCriticalSection', 'LocalReAlloc', 'TlsSetValue', 'TlsAlloc', 'InitializeCriticalSection', 'GlobalHandle', 'GlobalReAlloc', 'EnterCriticalSection', 'TlsGetValue', 'LeaveCriticalSection', 'LocalAlloc', 'CloseHandle', 'GetPrivateProfileStringA', 'WritePrivateProfileStringA', 'GetPrivateProfileIntA', 'GetCurrentProcessId', 'GetCurrentThread', 'ConvertDefaultLocale', 'GetModuleFileNameA', 'EnumResourceLanguagesA', 'GetLocaleInfoA', 'lstrcmpA', 'GetDiskFreeSpaceA', 'GetFullPathNameA', 'GetTempFileNameA', 'GetFileTime', 'SetFileTime', 'GetFileAttributesA', 'FreeResource', 'GetCurrentThreadId', 'GlobalGetAtomNameA', 'GlobalAddAtomA', 'GlobalFindAtomA', 'GlobalDeleteAtom', 'lstrcmpW', 'GetVersionExA', 'GlobalFree', 'GlobalAlloc', 'FormatMessageA', 'LocalFree', 'GlobalLock', 'GlobalUnlock', 'MulDiv', 'FindFirstFileA', 'FileTimeToLocalFileTime', 'FileTimeToSystemTime', 'FindNextFileA', 'FindClose', 'FreeLibrary', 'InterlockedDecrement', 'LockResource', 'SizeofResource', 'LoadResource', 'FindResourceA', 'ExitProcess', 'GetVersion', 'CompareStringA', 'GetModuleHandleA', 'LoadLibraryA', 'GetProcAddress', 'lstrcmpiA', 'SetLastError', 'GetLastError', 'InterlockedExchange', 'GetStringTypeExA', 'MultiByteToWideChar', 'CompareStringW', 'WideCharToMultiByte', 'lstrlenA', 'FreeEnvironmentStringsA', 'GetComputerNameA', 'CopyAcceleratorTableA', 'CreateMenu', 'PostThreadMessageA', 'GetTabbedTextExtentA', 'RegisterClipboardFormatA', 'GetSysColorBrush', 'UnregisterClassA', 'LoadCursorA', 'DestroyCursor', 'SetCursorPos', 'SetCapture', 'RedrawWindow', 'InflateRect', 'UnpackDDElParam', 'ReuseDDElParam', 'LoadMenuA', 'DestroyMenu', 'ReleaseCapture', 'LoadAcceleratorsA', 'InsertMenuItemA', 'CreatePopupMenu', 'BringWindowToTop', 'SetMenu', 'TranslateAcceleratorA', 'IsZoomed', 'WindowFromPoint', 'KillTimer', 'SetTimer', 'SetRect', 'SetParent', 'GetSystemMenu', 'DeleteMenu', 'SetRectEmpty', 'IsRectEmpty', 'GetDesktopWindow', 'CreateDialogIndirectParamA', 'GetNextDlgTabItem', 'EndDialog', 'GetMessageA', 'TranslateMessage', 'GetActiveWindow', 'GetCursorPos', 'ValidateRect', 'GetWindowThreadProcessId', 'ShowOwnedPopups', 'SetCursor', 'PostQuitMessage', 'IsWindowEnabled', 'SetWindowTextA', 'IsDialogMessageA', 'SetDlgItemTextA', 'RegisterWindowMessageA', 'LoadIconA', 'SendDlgItemMessageA', 'WinHelpA', 'GetCapture', 'SetWindowsHookExA', 'CallNextHookEx', 'GetClassNameA', 'SetPropA', 'GetPropA', 'RemovePropA', 'SetFocus', 'GetWindowTextLengthA', 'GetWindowTextA', 'GetLastActivePopup', 'SetActiveWindow', 'DispatchMessageA', 'BeginDeferWindowPos', 'EndDeferWindowPos', 'GetDlgItem', 'GetTopWindow', 'DestroyWindow', 'GetMessageTime', 'GetMessagePos', 'PeekMessageA', 'MapWindowPoints', 'ScrollWindow', 'TrackPopupMenu', 'GetKeyState', 'SetScrollRange', 'GetScrollRange', 'SetScrollPos', 'GetScrollPos', 'SetForegroundWindow', 'ShowScrollBar', 'IsWindowVisible', 'GetMenu', 'PostMessageA', 'MessageBoxA', 'CreateWindowExA', 'GetClassInfoExA', 'GetClassInfoA', 'RegisterClassA', 'EqualRect', 'DeferWindowPos', 'GetScrollInfo', 'SetScrollInfo', 'PtInRect', 'DefWindowProcA', 'CallWindowProcA', 'SetWindowPos', 'OffsetRect', 'IntersectRect', 'SystemParametersInfoA', 'GetWindowPlacement', 'GetWindowRect', 'GetSystemMetrics', 'GetWindow', 'GetMenuStringA', 'AppendMenuA', 'GetMenuItemID', 'InsertMenuA', 'GetMenuItemCount', 'GetSubMenu', 'RemoveMenu', 'GetSysColor', 'EndPaint', 'BeginPaint', 'GetWindowDC', 'ClientToScreen', 'ScreenToClient', 'GrayStringA', 'DrawTextExA', 'DrawTextA', 'TabbedTextOutA', 'FillRect', 'SetWindowRgn', 'DrawIcon', 'FindWindowA', 'LockWindowUpdate', 'GetDCEx', 'DestroyIcon', 'GetClassLongA', 'GetMenuItemInfoA', 'GetDlgCtrlID', 'IsChild', 'InvalidateRect', 'IsIconic', 'AdjustWindowRectEx',Line truncated
+10759
View File
File diff suppressed because it is too large. Load diff
-4109
View File
File diff suppressed because it is too large. Load diff
+1 -1
View File
@@ -1,7 +1,7 @@
import pyinstaller_versionfile
pyinstaller_versionfile.create_versionfile(
output_file="versionfile.txt",
version='2.7.6',
version='2.7.9',
company_name="PYAS Security",
file_description="Python Antivirus Software",
internal_name="PYAS",
+1 -1
View File
@@ -15,6 +15,6 @@ Windows 8.1, 10, 11 (64-bit), Ram 1GB, Rom 1GB or higher
os, sys, time, json, psutil, ctypes, requests, subprocess, win32file, win32api, win32con, elementpath, hashlib, pefile, threading, PyQt5, PYAS_Language, PYAS_Model, PYAS_UI
## Special Thanks
360, Wix, VirusShare, mtkiao129, LenStevens
360, Wix, VirusShare, mtkiao129, LenStevens, 0607zzy
Copyright© 2020~2023 PYAS Security By 87owo