Compare commits

...
72 Commits
Author SHA1 Message Date
PYDT cb7875c320 Add files via upload 2024-01-04 10:08:12 +08:00
PYDT 7960a57fc0 Add files via upload 2024-01-03 23:08:28 +08:00
PYDT a23f693921 Delete PYAS_Function.zip 2024-01-03 22:55:51 +08:00
PYDT c49cb8bc4a Delete PYAS_Compress.py 2024-01-03 22:55:39 +08:00
PYDT 02c425cfc0 Add files via upload 2024-01-03 11:50:11 +08:00
PYDT be96ba0a0e Add files via upload 2024-01-02 11:19:37 +08:00
PYDT df5e00977a Add files via upload 2024-01-02 07:53:56 +08:00
PYDT f055650365 Add files via upload 2024-01-02 07:21:14 +08:00
PYDT b0baddda3b Delete PYAS_Function.7z 2024-01-02 07:20:32 +08:00
PYDT 69359cba05 Delete PYAS_Function_Virus.7z 2024-01-02 00:16:56 +08:00
PYDT 8b0b29e39b Delete PYAS_Function_Safe.7z 2024-01-02 00:16:45 +08:00
PYDT 21ac50667d Add files via upload 2024-01-02 00:16:07 +08:00
PYDT b843a438ba Add files via upload 2024-01-01 03:59:04 +08:00
PYDT 441cc30c0b Add files via upload 2024-01-01 03:42:15 +08:00
PYDT 85adf5dc80 Add files via upload 2023-12-31 20:55:32 +08:00
PYDT 0c48f0981d Delete PYML.py 2023-12-31 17:30:22 +08:00
PYDT 88b646e41c Delete PYAS_Database.7z 2023-12-31 17:30:03 +08:00
PYDT dc4c3e0a99 Add files via upload 2023-12-31 17:29:47 +08:00
PYDT 262f6d55a0 Add files via upload 2023-12-29 11:22:07 +08:00
PYDT 2d68400670 Delete PYAS_Function.7z 2023-12-29 09:42:48 +08:00
PYDT 8acaae3f0d Add files via upload 2023-12-29 09:42:10 +08:00
PYDT a5cb26528f Add files via upload 2023-12-15 08:58:39 +08:00
PYDT ac2520a03f Add files via upload 2023-12-15 08:43:04 +08:00
PYDT 9c15cc7b33 Add files via upload 2023-12-14 22:49:20 +08:00
PYDT c38f460163 Add files via upload 2023-12-14 22:25:15 +08:00
PYDT 9bda8c9e77 Add files via upload 2023-12-14 15:48:01 +08:00
PYDT 558be68bad Add files via upload 2023-12-14 15:25:36 +08:00
PYDT 6b9d27ce9b Add files via upload 2023-12-14 09:57:22 +08:00
PYDT 412745eede Add files via upload 2023-12-14 09:44:59 +08:00
PYDT 91ea771af1 Add files via upload 2023-12-14 07:17:45 +08:00
PYDT 238ab03db3 Add files via upload 2023-12-14 07:16:10 +08:00
PYDT 2d63da193d Add files via upload 2023-12-13 09:31:18 +08:00
PYDT fa4c20a241 Add files via upload 2023-12-12 18:00:47 +08:00
PYDT 6294fc33d1 Add files via upload 2023-12-11 18:17:39 +08:00
PYDT c4cf48a94b Add files via upload 2023-12-11 09:12:24 +08:00
PYDT 2934c7eb57 Add files via upload 2023-12-11 07:53:44 +08:00
PYDT 46ce454105 Add files via upload 2023-12-10 18:02:52 +08:00
PYDT 9ab06a0ea9 Add files via upload 2023-12-10 12:33:37 +08:00
PYDT e6f742380a Add files via upload 2023-12-09 17:43:10 +08:00
PYDT 2686812470 Add files via upload 2023-12-09 17:01:08 +08:00
PYDT cd11b5b7b2 Add files via upload 2023-12-08 21:28:06 +08:00
PYDT aae35dc640 Add files via upload 2023-12-08 18:21:31 +08:00
PYDT f0b669ff85 Add files via upload 2023-12-08 08:18:32 +08:00
PYDT 237605bb9f Add files via upload 2023-12-07 16:17:34 +08:00
PYDT 1778046581 Add files via upload 2023-12-07 09:45:20 +08:00
PYDT ff10adfabb Add files via upload 2023-12-06 14:35:52 +08:00
PYDT 1cb0f8d7ba Add files via upload 2023-12-06 14:29:34 +08:00
PYDT 5813bbdcd1 Add files via upload 2023-12-06 09:52:59 +08:00
PYDT b38e5b177e Add files via upload 2023-12-06 09:08:11 +08:00
PYDT 9d66cf248c Add files via upload 2023-12-06 06:37:25 +08:00
PYDT ebcf90d426 Add files via upload 2023-12-05 15:58:41 +08:00
PYDT 51904db187 Add files via upload 2023-12-05 15:15:21 +08:00
PYDT 4fc8755b8d Add files via upload 2023-12-05 11:27:36 +08:00
PYDT 7afcbfaa26 Add files via upload 2023-12-05 09:16:49 +08:00
PYDT 55cb96d978 Add files via upload 2023-12-05 08:44:24 +08:00
PYDT a1de099974 Add files via upload 2023-12-04 21:24:39 +08:00
PYDT a0238732fe Add files via upload 2023-12-04 19:59:48 +08:00
PYDT 6c100b0679 Add files via upload 2023-12-04 19:25:29 +08:00
PYDT e4d159840f Add files via upload 2023-12-04 19:25:10 +08:00
PYDT 0375b3ff02 Add files via upload 2023-12-04 17:01:02 +08:00
PYDT 746bae5103 Add files via upload 2023-12-04 14:10:23 +08:00
PYDT 70eb2c4500 Add files via upload 2023-12-03 23:18:21 +08:00
PYDT 69175f3ae1 Add files via upload 2023-12-02 20:21:07 +08:00
PYDT ed5fab2c54 Add files via upload 2023-12-01 22:26:39 +08:00
PYDT 1425ff8e6c Add files via upload 2023-12-01 19:43:30 +08:00
PYDT 832ab549a1 Add files via upload 2023-12-01 09:25:11 +08:00
PYDT 4ec1661c26 Add files via upload 2023-12-01 08:26:16 +08:00
PYDT ea27712b62 Add files via upload 2023-12-01 08:25:59 +08:00
PYDT 6f65efe2d8 Add files via upload 2023-11-30 21:11:48 +08:00
PYDT 8edcf60baf Add files via upload 2023-11-30 17:23:46 +08:00
PYDT 74f6aec367 Add files via upload 2023-11-30 16:02:10 +08:00
PYDT 62c65a766a Add files via upload 2023-11-30 15:09:35 +08:00
7 changed files with 119 additions and 110 deletions

No files matched your search

+64 -54
View File
@@ -1,10 +1,11 @@
import os, gc, sys, time, json, psutil import os, gc, sys, time, json, psutil
import hashlib, pefile, socket, msvcrt import hashlib, pefile, socket, msvcrt
import xml.etree.ElementTree as xmlet
import requests, pyperclip, win32file import requests, pyperclip, win32file
import win32gui, win32api, win32con import win32gui, win32api, win32con
import xml.etree.ElementTree as xmlet
from PYAS_Function import function_list
from PYAS_Extension import slist, alist from PYAS_Extension import slist, alist
from PYAS_Function_Safe import func_safe
from PYAS_Function_Virus import func_virus
from PYAS_Language import translate_dict from PYAS_Language import translate_dict
from PYAS_Interface import Ui_MainWindow from PYAS_Interface import Ui_MainWindow
from threading import Thread from threading import Thread
@@ -18,7 +19,7 @@ class MainWindow_Controller(QMainWindow):
self.setAttribute(Qt.WA_TranslucentBackground) self.setAttribute(Qt.WA_TranslucentBackground)
self.setWindowFlags(Qt.FramelessWindowHint) self.setWindowFlags(Qt.FramelessWindowHint)
self.pyas = str(sys.argv[0]).replace("\\", "/") self.pyas = str(sys.argv[0]).replace("\\", "/")
self.pyas_version = "2.9.4" self.pyas_version = "2.9.8"
self.ui = Ui_MainWindow() self.ui = Ui_MainWindow()
self.ui.setupUi(self) self.ui.setupUi(self)
self.init_tray_icon() self.init_tray_icon()
@@ -268,7 +269,7 @@ class MainWindow_Controller(QMainWindow):
self.ui.Window_Block_Button.setText(self.trans("軟體彈窗攔截")) self.ui.Window_Block_Button.setText(self.trans("軟體彈窗攔截"))
self.ui.Repair_System_Network_Button.setText(self.trans("系統網路修復")) self.ui.Repair_System_Network_Button.setText(self.trans("系統網路修復"))
self.ui.About_Back.setText(self.trans("返回")) self.ui.About_Back.setText(self.trans("返回"))
self.ui.PYAS_Version.setText(self.trans(f"PYAS V{self.pyas_version} (ML Engine)")) self.ui.PYAS_Version.setText(self.trans(f"PYAS V{self.pyas_version}"))
self.ui.GUI_Made_title.setText(self.trans("介面製作:")) self.ui.GUI_Made_title.setText(self.trans("介面製作:"))
self.ui.GUI_Made_Name.setText(self.trans("mtkiao")) self.ui.GUI_Made_Name.setText(self.trans("mtkiao"))
self.ui.Core_Made_title.setText(self.trans("核心製作:")) self.ui.Core_Made_title.setText(self.trans("核心製作:"))
@@ -304,21 +305,21 @@ class MainWindow_Controller(QMainWindow):
if self.ui.Theme_White.isChecked(): if self.ui.Theme_White.isChecked():
self.ui.Window_widget.setStyleSheet("""QWidget#Window_widget {background-color:rgb(240,240,240);}""") self.ui.Window_widget.setStyleSheet("""QWidget#Window_widget {background-color:rgb(240,240,240);}""")
self.ui.Navigation_Bar.setStyleSheet("""QWidget#Navigation_Bar {background-color:rgb(230,230,230);}""") self.ui.Navigation_Bar.setStyleSheet("""QWidget#Navigation_Bar {background-color:rgb(230,230,230);}""")
elif self.ui.Theme_Red.isChecked():
self.ui.Window_widget.setStyleSheet("""QWidget#Window_widget {background-color:rgb(255,150,150);}""")
self.ui.Navigation_Bar.setStyleSheet("""QWidget#Navigation_Bar {background-color:rgb(255,140,140);}""")
elif self.ui.Theme_Black.isChecked(): elif self.ui.Theme_Black.isChecked():
self.ui.Window_widget.setStyleSheet("""QWidget#Window_widget {background-color:rgb(150,150,150);}""") self.ui.Window_widget.setStyleSheet("""QWidget#Window_widget {background-color:rgb(230,230,230);}""")
self.ui.Navigation_Bar.setStyleSheet("""QWidget#Navigation_Bar {background-color:rgb(140,140,140);}""") self.ui.Navigation_Bar.setStyleSheet("""QWidget#Navigation_Bar {background-color:rgb(220,220,220);}""")
elif self.ui.Theme_Red.isChecked():
self.ui.Window_widget.setStyleSheet("""QWidget#Window_widget {background-color:rgb(250,230,230);}""")
self.ui.Navigation_Bar.setStyleSheet("""QWidget#Navigation_Bar {background-color:rgb(250,220,220);}""")
elif self.ui.Theme_Green.isChecked(): elif self.ui.Theme_Green.isChecked():
self.ui.Window_widget.setStyleSheet("""QWidget#Window_widget {background-color:rgb(150,255,150);}""") self.ui.Window_widget.setStyleSheet("""QWidget#Window_widget {background-color:rgb(230,250,230);}""")
self.ui.Navigation_Bar.setStyleSheet("""QWidget#Navigation_Bar {background-color:rgb(130,255,130);}""") self.ui.Navigation_Bar.setStyleSheet("""QWidget#Navigation_Bar {background-color:rgb(220,250,220);}""")
elif self.ui.Theme_Yellow.isChecked(): elif self.ui.Theme_Yellow.isChecked():
self.ui.Window_widget.setStyleSheet("""QWidget#Window_widget {background-color:rgb(255,255,150);}""") self.ui.Window_widget.setStyleSheet("""QWidget#Window_widget {background-color:rgb(250,250,230);}""")
self.ui.Navigation_Bar.setStyleSheet("""QWidget#Navigation_Bar {background-color:rgb(240,240,140);}""") self.ui.Navigation_Bar.setStyleSheet("""QWidget#Navigation_Bar {background-color:rgb(250,250,220);}""")
elif self.ui.Theme_Blue.isChecked(): elif self.ui.Theme_Blue.isChecked():
self.ui.Window_widget.setStyleSheet("""QWidget#Window_widget {background-color:rgb(0,200,255);}""") self.ui.Window_widget.setStyleSheet("""QWidget#Window_widget {background-color:rgb(230,250,250);}""")
self.ui.Navigation_Bar.setStyleSheet("""QWidget#Navigation_Bar {background-color:rgb(0,190,255);}""") self.ui.Navigation_Bar.setStyleSheet("""QWidget#Navigation_Bar {background-color:rgb(220,250,250);}""")
def change_animation(self,widget): def change_animation(self,widget):
x, y = 170, widget.pos().y() x, y = 170, widget.pos().y()
@@ -549,11 +550,11 @@ class MainWindow_Controller(QMainWindow):
except: except:
pass pass
def send_notify(self,text): def send_notify(self, text):
try: try:
now_time = time.strftime('%Y/%m/%d %H:%M:%S') now_time = time.strftime('%Y/%m/%d %H:%M:%S')
self.ui.State_output.append(f"[{now_time}] {text}")
self.tray_icon.showMessage(now_time, text, 5000) self.tray_icon.showMessage(now_time, text, 5000)
QMetaObject.invokeMethod(self.ui.State_output, "append", Qt.QueuedConnection, Q_ARG(str, f"[{now_time}] {text}"))
except: except:
pass pass
@@ -780,7 +781,7 @@ class MainWindow_Controller(QMainWindow):
self.write_scan(self.trans("惡意"),file) self.write_scan(self.trans("惡意"),file)
elif self.pe_scan(file): elif self.pe_scan(file):
self.write_scan(self.trans("可疑"),file) self.write_scan(self.trans("可疑"),file)
elif file_type in slist and self.sign_scan(file): elif file_type in slist and file != self.pyas:
if self.api_scan(file): if self.api_scan(file):
self.write_scan(self.trans("惡意"),file) self.write_scan(self.trans("惡意"),file)
elif self.pe_scan(file): elif self.pe_scan(file):
@@ -811,6 +812,7 @@ class MainWindow_Controller(QMainWindow):
if self.cloud_services == 1: if self.cloud_services == 1:
with open(file, "rb") as f: with open(file, "rb") as f:
text = str(hashlib.md5(f.read()).hexdigest()) text = str(hashlib.md5(f.read()).hexdigest())
QApplication.processEvents()
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--' 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) response = requests.post('http://qup.f.360.cn/file_health_info.php', data=strBody, timeout=3)
return response.status_code == 200 and float(xmlet.fromstring(response.text).find('.//e_level').text) > 50 return response.status_code == 200 and float(xmlet.fromstring(response.text).find('.//e_level').text) > 50
@@ -835,13 +837,27 @@ class MainWindow_Controller(QMainWindow):
fn.append(str(func.name, "utf-8")) fn.append(str(func.name, "utf-8"))
except: except:
pass pass
for vfl in function_list: max_vfl = []
for vfl in func_virus:
QApplication.processEvents() QApplication.processEvents()
similarity = len(set(fn)&set(vfl))/len(set(fn)|set(vfl)) max_vfl.append(len(set(fn)&set(vfl))/len(set(fn)|set(vfl)))
if self.high_sensitivity and similarity >= 0.9: max_sfl = []
return True for sfl in func_safe:
elif "_CorExeMain" not in fn and similarity == 1.0: QApplication.processEvents()
return True max_sfl.append(len(set(fn)&set(sfl))/len(set(fn)|set(sfl)))
if self.high_sensitivity:
return max(max_vfl) >= max(max_sfl)
return max(max_vfl) - max(max_sfl) >= 0.1
except:
return False
def proc_scan(self, pid):
try:
for entry in psutil.Process(pid).memory_maps():
file = entry.path.replace("\\", "/")
if ":/Windows" not in file and ":/Program" not in file:
if self.api_scan(file) or self.pe_scan(file):
return True
return False return False
except: except:
return False return False
@@ -1176,48 +1192,41 @@ class MainWindow_Controller(QMainWindow):
time.sleep(0.05) time.sleep(0.05)
for p in psutil.process_iter(): for p in psutil.process_iter():
try: try:
name, file, cmd = p.name(), p.exe().replace("\\", "/"), p.cmdline() if p.pid not in existing_processes:
if p.pid not in existing_processes and file not in self.whitelist:
existing_processes.add(p.pid) existing_processes.add(p.pid)
psutil.Process(p.pid).suspend() name, file, cmd = p.name(), p.exe().replace("\\", "/"), p.cmdline()
if ":/Windows" in file and "powershell" in name: if file != self.pyas and file not in self.whitelist:
file = str(cmd[-1].split("'")[-2]).replace("\\", "/") psutil.Process(p.pid).suspend()
elif ":/Windows" in file and "cmd.exe" in name: if "powershell" in name and self.api_scan(cmd[-1].split("'")[-2]):
file = str(" ".join(cmd[2:])).replace("\\", "/") p.kill()
elif ":/Windows" in file and "msiexec.exe" in name: self.send_notify(self.trans("惡意腳本攔截: ")+str(cmd[-1].split("'")[-2]))
file = str(cmd[-1]).replace("\\", "/") elif "cmd.exe" in name and self.api_scan(" ".join(cmd[2:])):
elif ":/Windows" in file and "cscript.exe" in name: p.kill()
file = str(cmd[-1]).replace("\\", "/") self.send_notify(self.trans("惡意腳本攔截: ")+str(" ".join(cmd[2:])))
elif ":/Windows" in file and "wscript.exe" in name: elif ":/Windows" in file and self.api_scan(cmd[-1]):
file = str(cmd[-1]).replace("\\", "/") p.kill()
if ":/Windows" in file or ":/Program" in file: self.send_notify(self.trans("惡意軟體攔截: ")+str(cmd[-1]))
if self.sign_scan(file) and self.api_scan(file): elif self.proc_scan(p.pid):
p.kill() p.kill()
self.send_notify(self.trans("惡意軟體攔截: ")+file) self.send_notify(self.trans("惡意軟體攔截: ")+file)
elif self.api_scan(file) or self.pe_scan(file): elif self.sign_scan(file):
p.kill() self.proc = p
self.send_notify(self.trans("惡意軟體攔截: ")+file) psutil.Process(p.pid).resume()
elif file != self.pyas and self.sign_scan(file): gc.collect()
self.proc = p
psutil.Process(p.pid).resume()
gc.collect()
except: except:
pass pass
def protect_file_thread(self): def protect_file_thread(self):
hDir = win32file.CreateFile("C:/Users/",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) hDir = win32file.CreateFile("C:/Users/",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.ransom_block = False
while self.file_protect: while self.file_protect:
for action, file in win32file.ReadDirectoryChangesW(hDir,1048576,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): for action, file in win32file.ReadDirectoryChangesW(hDir,1048576,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):
try: try:
full_path = str(f"C:/Users/{file}").replace("\\", "/") full_path = str(f"C:/Users/{file}").replace("\\", "/")
file_type = str(f".{full_path.split('.')[-1]}").lower() file_type = str(f".{full_path.split('.')[-1]}").lower()
if action == 2 and "/AppData/" not in full_path and file_type in alist: if action == 3 and file_type in slist and os.path.getsize(full_path) <= 20971520:
if self.ransom_block: if os.path.isfile(full_path) and self.api_scan(full_path):
self.proc.kill() os.remove(full_path)
self.ransom_block = False self.send_notify(self.trans("惡意軟體刪除: ")+full_path)
self.send_notify(self.trans("勒索軟體攔截: ")+self.proc.exe().replace("\\", "/"))
self.ransom_block = True
except: except:
pass pass
@@ -1252,8 +1261,9 @@ class MainWindow_Controller(QMainWindow):
while self.net_protect: while self.net_protect:
try: try:
time.sleep(0.5) time.sleep(0.5)
local = socket.gethostbyname(socket.gethostname())
for conn in self.proc.connections(): for conn in self.proc.connections():
if socket.gethostbyname(socket.gethostname()) == conn.laddr.ip: if conn.laddr.ip == local:
self.proc.kill() self.proc.kill()
self.send_notify(self.trans("網路通訊攔截: ")+self.proc.exe().replace("\\", "/")) self.send_notify(self.trans("網路通訊攔截: ")+self.proc.exe().replace("\\", "/"))
except: except:
+1 -2
View File
@@ -1,6 +1,5 @@
slist = [".exe",".dll",".com",".msi",".scr", slist = [".exe",".dll",".com",".msi",".scr",
".bat",".cmd",".ps1",".vbs",".jar", ".js",".bat",".cmd",".ps1",".vbs"]
".js",".elf",".doc",".xls",".xlsx"]
alist = [".ppt",".pptx",".wps",".txt",".rtf", alist = [".ppt",".pptx",".wps",".txt",".rtf",
".pdf",".xls",".xlsx",".doc",".docx", ".pdf",".xls",".xlsx",".doc",".docx",
BIN
View File
Binary file not shown.
Binary file not shown.
Binary file not shown.
+53 -53
View File
@@ -1,53 +1,53 @@
translate_dict = {"zh_TW": {"已开启":"已開啟","已关闭":"已關閉","On":"已開啟","Off":"已關閉"}, translate_dict = {
"zh_CN": {"已開啟":"已开启","已關閉":"已关闭","On":"已开启","Off":"已关闭", "zh_TW": {"已开启":"已開啟","已关闭":"已關閉","On":"已開啟","Off":"已關閉"},
"軟體":"软件","檔案":"文件","確定":"确认","設定":"设置","關於":"关于", "zh_CN": {"已開啟":"已开启","已關閉":"已关闭","On":"已开启","Off":"已关闭",
"錯誤":"错误","實時":"实时","發現":"发现","關閉":"关闭","裝置":"设备", "軟體":"软件","檔案":"文件","確定":"确认","設定":"设置","關於":"关于",
"總數":"总数","註冊":"注册","圖標":"图标","路徑":"路径","網路":"网络", "錯誤":"错误","實時":"实时","發現":"发现","關閉":"关闭","裝置":"设备",
"位元":"字节","彈窗":"弹窗","靈敏":"敏感","誤報":"误报","複製":"复制", "總數":"总数","註冊":"注册","圖標":"图标","路徑":"路径","網路":"网络",
"訊":"讯","項":"项","掃":"扫","試":"试","黃":"黄","嗎":"吗","防":"保", "位元":"字节","彈窗":"弹窗","靈敏":"敏感","誤報":"误报","複製":"复制",
"鑰":"钥","當":"当","後":"后","護":"护","導":"导","區":"区","復":"复", "訊":"讯","項":"项","掃":"扫","試":"试","黃":"黄","嗎":"吗","防":"保",
"攔":"拦","請":"请","統":"统","刪":"删","進":"进","個":"个","選":"选", "鑰":"钥","當":"当","後":"后","護":"护","導":"导","區":"区","復":"复",
"啟":"启","監":"监","並":"并","徑":"径","盤":"盘","隱":"隐","動":"动", "攔":"拦","請":"请","統":"统","刪":"删","進":"进","個":"个","選":"选",
"狀":"状","誌":"志","這":"这","會":"会","題":"题","擇":"择","語":"语", "啟":"启","監":"监","並":"并","徑":"径","盤":"盘","隱":"隐","動":"动",
"無":"无","顯":"显","變":"变","戶":"户","碼":"码","雲":"云","訂":"订", "狀":"状","誌":"志","這":"这","會":"会","題":"题","擇":"择","語":"语",
"稱":"称","類":"类","輸":"输","執":"执","數":"数","尋":"寻","網":"网", "無":"无","顯":"显","變":"变","戶":"户","碼":"码","雲":"云","訂":"订",
"詢":"询","製":"制","員":"员","許":"许","條":"条","藍":"蓝","紅":"红", "稱":"称","類":"类","輸":"输","執":"执","數":"数","尋":"寻","網":"网",
"綠":"绿","態":"态","務":"务","連":"连","檢":"检","測":"测","關":"关", "詢":"询","製":"制","員":"员","許":"许","條":"条","藍":"蓝","紅":"红",
"強":"强","驅":"驱","為":"为","腳":"脚","增":"增","單":"单","開":"开", "綠":"绿","態":"态","務":"务","連":"连","檢":"检","測":"测","關":"关",
"惡":"恶",}, "強":"强","驅":"驱","為":"为","腳":"脚","增":"增","單":"单","開":"开",
"en_US": {"已開啟":"On","已關閉":"Off","已开启":"On","已关闭":"Off",",":", ", "惡":"恶","介":"界"},
"立即刪除":"Delete Now","安全模式":"Safe Mode","官方網站":"Website", "en_US": {"已開啟":"On","已關閉":"Off","已开启":"On","已关闭":"Off",",":", ",
"惡意檔案":"Virus ","惡意軟體":"Malware ","勒索軟體":"Ransom ", "立即刪除":"Delete Now","安全模式":"Safe Mode","官方網站":"Website",
"惡意腳本":"Script ","惡意行為":"Behavior ","可疑軟體":"Suspicious ", "惡意檔案":"Virus ","惡意軟體":"Malware ","勒索軟體":"Ransom ",
"許可條款":"License Terms","惡意":"Malicious","可疑":"Suspicious", "惡意腳本":"Script ","惡意行為":"Behavior ","可疑軟體":"Suspicious ",
"啟用":"Enable ","禁用":"Disable ","正在初始化中":"Initializing ", "許可條款":"License Terms","惡意":"Malicious","可疑":"Suspicious",
"正在掃描":"Scanning ","正在刪除":"Deleting ","最小化到":"Minimize To ", "啟用":"Enable ","禁用":"Disable ","正在初始化中":"Initializing ",
"確定要":"Sure Want To ","靈敏度":"Sensitivity ","更新":"Update", "正在掃描":"Scanning ","正在刪除":"Deleting ","最小化到":"Minimize To ",
"白色主題":"White","黑色主題":"Black","黃色主題":"Yellow","紅色主題":"Red", "確定要":"Sure Want To ","靈敏度":"Sensitivity ","更新":"Update",
"藍色主題":"Blue","綠色主題":"Green","語言":"Language ","製作":"Make", "白色主題":"White","黑色主題":"Black","黃色主題":"Yellow","紅色主題":"Red",
"測試人員":"Testers","版本資訊":"Information","通訊":"Communication ", "藍色主題":"Blue","綠色主題":"Green","語言":"Language ","製作":"Make",
"註冊表":"Registry ","退出":"Quit ","檔案":"File ","當前":"Currently ", "測試人員":"Testers","版本資訊":"Information","通訊":"Communication ",
"狀態":"State ","掃描":"Scan ","工具":"Tools ","防護":"Protect ", "註冊表":"Registry ","退出":"Quit ","檔案":"File ","當前":"Currently ",
"失敗":"Failed ","請":"Please ","路徑":"Path ","方式":"Method ", "狀態":"State ","掃描":"Scan ","工具":"Tools ","防護":"Protect ",
"需要":"Need ","病毒":"Virus ","選擇":"Select ","返回":"Back", "失敗":"Failed ","請":"Please ","路徑":"Path ","方式":"Method ",
"受到":"Been ","錯誤":"Error","完成":"Complete ","引擎":"Engine ", "需要":"Need ","病毒":"Virus ","選擇":"Select ","返回":"Back",
"托盤":"Tray ","圖標":"Icon ","不安全":"Unsafe","增強":"Enhanced ", "受到":"Been ","錯誤":"Error","完成":"Complete ","引擎":"Engine ",
"系統":"System ","雲端":"Cloud ","重啟":"Reboot ","修復":"Repair ", "托盤":"Tray ","圖標":"Icon ","不安全":"Unsafe","增強":"Enhanced ",
"裝置":"Device ","發現":"Found ","成功":"Success ","清理":"Cleanup ", "系統":"System ","雲端":"Cloud ","重啟":"Reboot ","修復":"Repair ",
"確定":"OK","執行":"Execute ","警告":"Warning ","使用":"Use ", "裝置":"Device ","發現":"Found ","成功":"Success ","清理":"Cleanup ",
"網路":"Network ","變更":"Change ","總數":"Total","結束":"End ", "確定":"OK","執行":"Execute ","警告":"Warning ","使用":"Use ",
"選項":"Options ","監控":"Monitor ","連接":"Connect ","可以":"To ", "網路":"Network ","變更":"Change ","總數":"Total","結束":"End ",
"進程":"Process ","攔截":"Block ","引導":"Boot ","刪除":"Delete ", "選項":"Options ","監控":"Monitor ","連接":"Connect ","可以":"To ",
"分區":"Partition ","設定":"Settings","關於":"About","模式":"Mode ", "進程":"Process ","攔截":"Block ","引導":"Boot ","刪除":"Delete ",
"提高":"Improve ","安全":"Security ","顯色":"Color ","主題":"Themes ", "分區":"Partition ","設定":"Settings","關於":"About","模式":"Mode ",
"風險":"Risk ","介面":"GUI ","核心":"Core ","服務":"Services ", "提高":"Improve ","安全":"Security ","顯色":"Color ","主題":"Themes ",
"管理":"Manage","所有":"All ","全盤":"Full ","取消":"Cancel ", "風險":"Risk ","介面":"GUI ","核心":"Core ","服務":"Services ",
"垃圾":"Junk ","位元":"byte ","本機":"Computer ","停止":"Stop ", "管理":"Manage","所有":"All ","您":"You ","取消":"Cancel ","未":"Not ",
"增加到":"Add File To ","白名單":"White List ","軟體":"Software ", "垃圾":"Junk ","位元":"byte ","本機":"Computer ","停止":"Stop ",
"增加":"Add","移除":"Delete","項目":"Items ","生成":"Create ","稱":"", "增加到":"Add File To ","白名單":"White List ","軟體":"Software ",
"開啟":"Open ","您":"You ","此":"This ","並":"And ","未":"Not ", "增加":"Add","移除":"Delete","項目":"Items ","生成":"Create ","稱":"",
"高":"High ","新":"New ","和":"And ","可能會":"Possible ","會":"Can ", "複製":"Copy ","開啟":"Open ","此":"This ","並":"And ","全盤":"Full ",
"日誌":"Log","已":"Has ","彈窗":"Window ","要":"To ","驅動":"Drive ", "高":"High ","新":"New ","和":"And ","可能會":"Possible ","會":"Can ",
"的":"","顯示":"","個":"","嗎":"","中":"","了":"","行":"","立即":"", "日誌":"Log","已":"Has ","彈窗":"Window ","要":"To ","驅動":"Drive ",
"密鑰":"Key ","檢測":"Detect ","誤報":"False Positive "," ":" ", "的":"","顯示":"","個":"","嗎":"","中":"","了":"","行":"","立即":"",
"複製":"Copy "}} "密鑰":"Key ","檢測":"Detect ","誤報":"False Positive "," ":" "}}
+1 -1
View File
@@ -1,7 +1,7 @@
import pyinstaller_versionfile import pyinstaller_versionfile
pyinstaller_versionfile.create_versionfile( pyinstaller_versionfile.create_versionfile(
output_file="versionfile.txt", output_file="versionfile.txt",
version='2.9.4', version='2.9.8',
company_name="PYAS Security", company_name="PYAS Security",
file_description="Python Antivirus Software", file_description="Python Antivirus Software",
internal_name="PYAS", internal_name="PYAS",