Add files via upload
This commit is contained in:
3 files changed
+99
-100
No files matched your search
@@ -9,10 +9,10 @@
|
||||
|
||||
###################################### 加載模組 #####################################
|
||||
|
||||
import xml.etree.ElementTree as ET
|
||||
import win32file, win32api, win32con
|
||||
import requests, subprocess, cryptocode
|
||||
import os, sys, time, json, socket, psutil
|
||||
import requests, subprocess, cryptocode
|
||||
import win32file, win32api, win32con
|
||||
import xml.etree.ElementTree as ET
|
||||
from hashlib import md5, sha1, sha256
|
||||
from pefile import PE, DIRECTORY_ENTRY
|
||||
from PYAS_Language import translations
|
||||
@@ -38,8 +38,8 @@ class MainWindow_Controller(QtWidgets.QMainWindow):
|
||||
self.init_config()
|
||||
self.init_config_ui()
|
||||
self.setup_control()
|
||||
self.show_pyas_ui()
|
||||
self.protect_start()
|
||||
self.showNormal()
|
||||
|
||||
def tray_icon_start(self):
|
||||
self.tray_icon = QSystemTrayIcon(self)
|
||||
@@ -302,8 +302,8 @@ class MainWindow_Controller(QtWidgets.QMainWindow):
|
||||
self.ui.Privacy_Tools_Back.setText(self.text_Translate("返回"))
|
||||
self.ui.Delete_Private_File_Button.setText(self.text_Translate("隱私檔案粉碎"))
|
||||
self.ui.Develop_Tools_Back.setText(self.text_Translate("返回"))
|
||||
self.ui.Customize_REG_Command_Button.setText(self.text_Translate("自訂註冊表"))
|
||||
self.ui.Customize_CMD_Command_Button.setText(self.text_Translate("自訂命令"))
|
||||
self.ui.Customize_REG_Command_Button.setText(self.text_Translate("註冊表編輯器"))
|
||||
self.ui.Customize_CMD_Command_Button.setText(self.text_Translate("命令提示字元"))
|
||||
self.ui.Analyze_EXE_hash_Button.setText(self.text_Translate("分析檔案哈希"))
|
||||
self.ui.Analyze_EXE_Bit_Button.setText(self.text_Translate("分析檔案位元"))
|
||||
self.ui.Analyze_EXE_Funtion_Button.setText(self.text_Translate("分析檔案函數"))
|
||||
@@ -356,7 +356,7 @@ class MainWindow_Controller(QtWidgets.QMainWindow):
|
||||
self.ui.cloud_services_illustrate.setText(self.text_Translate("啟用此選項可以連接雲端掃描服務"))
|
||||
self.ui.cloud_services_switch_Button.setText(self.text_Translate(self.ui.cloud_services_switch_Button.text()))
|
||||
self.ui.Setting_Back.setText(self.text_Translate("返回"))
|
||||
self.ui.Language_title.setText(self.text_Translate("語言"))
|
||||
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("許可條款:"))
|
||||
self.ui.Theme_title.setText(self.text_Translate("顯色主題"))
|
||||
@@ -630,15 +630,10 @@ class MainWindow_Controller(QtWidgets.QMainWindow):
|
||||
pat2.drawRoundedRect(rect, 1, 1)
|
||||
|
||||
def onTrayIconActivated(self, reason):
|
||||
if reason == QSystemTrayIcon.Trigger or reason == QSystemTrayIcon.DoubleClick:
|
||||
if reason == QSystemTrayIcon.Trigger:
|
||||
self.showNormal()
|
||||
while self.pyas_opacity < 100:
|
||||
time.sleep(0.001)
|
||||
self.pyas_opacity += 1
|
||||
self.setWindowOpacity(self.pyas_opacity/100)
|
||||
QApplication.processEvents()
|
||||
|
||||
def show_pyas_ui(self):
|
||||
def showNormal(self):
|
||||
self.show()
|
||||
while self.pyas_opacity < 100:
|
||||
time.sleep(0.001)
|
||||
@@ -646,9 +641,17 @@ class MainWindow_Controller(QtWidgets.QMainWindow):
|
||||
self.setWindowOpacity(self.pyas_opacity/100)
|
||||
QApplication.processEvents()
|
||||
|
||||
def showMinimized(self):
|
||||
while self.pyas_opacity > 0:
|
||||
time.sleep(0.001)
|
||||
self.pyas_opacity -= 1
|
||||
self.setWindowOpacity(self.pyas_opacity/100)
|
||||
QApplication.processEvents()
|
||||
self.hide()
|
||||
self.system_notification(self.text_Translate("PYAS 已最小化到托盤圖標"))
|
||||
|
||||
def closeEvent(self, event):
|
||||
question = QMessageBox.warning(self,self.text_Translate("警告"),self.text_Translate("您確定要退出 PYAS 和相關防護嗎?"),QMessageBox.Yes|QMessageBox.No,QMessageBox.Yes)
|
||||
if question == 16384:
|
||||
if QMessageBox.warning(self,self.text_Translate("警告"),self.text_Translate("您確定要退出 PYAS 和相關防護嗎?"),QMessageBox.Yes|QMessageBox.No) == 16384:
|
||||
self.proc_protect = False
|
||||
self.file_protect = False
|
||||
self.mbr_protect = False
|
||||
@@ -661,8 +664,7 @@ class MainWindow_Controller(QtWidgets.QMainWindow):
|
||||
self.tray_icon.hide()
|
||||
self.hide()
|
||||
app.quit()
|
||||
else:
|
||||
event.ignore()
|
||||
event.ignore()
|
||||
|
||||
###################################### 錯誤回報 #####################################
|
||||
|
||||
@@ -699,11 +701,12 @@ class MainWindow_Controller(QtWidgets.QMainWindow):
|
||||
def ShowMenu(self):
|
||||
self.WindowMenu = QMenu()
|
||||
Main_Settings = QAction(self.text_Translate("設定"),self)
|
||||
Main_Update = QAction(self.text_Translate("更新"),self)
|
||||
Main_About = QAction(self.text_Translate("關於"),self)
|
||||
self.WindowMenu.addAction(Main_Settings)
|
||||
self.WindowMenu.addAction(Main_Update)
|
||||
self.WindowMenu.addAction(Main_About)
|
||||
pos = QtCore.QPoint(0, 30)
|
||||
Qusetion = self.WindowMenu.exec_(self.ui.Menu_Button.mapToGlobal(pos))
|
||||
Qusetion = self.WindowMenu.exec_(self.ui.Menu_Button.mapToGlobal(QtCore.QPoint(0, 30)))
|
||||
if Qusetion == Main_About:
|
||||
if self.ui.About_widget.isHidden():
|
||||
self.ui.About_widget.show()
|
||||
@@ -721,6 +724,8 @@ class MainWindow_Controller(QtWidgets.QMainWindow):
|
||||
self.ui.Window_widget.raise_()
|
||||
self.Change_animation_3(self.ui.Setting_widget,0.5)
|
||||
self.Change_animation5(self.ui.Setting_widget,10,50,831,481)
|
||||
elif Qusetion == Main_Update:
|
||||
pass
|
||||
|
||||
def high_sensitivity_switch(self):
|
||||
sw_state = self.ui.high_sensitivity_switch_Button.text()
|
||||
@@ -906,8 +911,7 @@ class MainWindow_Controller(QtWidgets.QMainWindow):
|
||||
self.ui.Virus_Scan_choose_Button.hide()
|
||||
self.ui.Virus_Scan_Break_Button.show()
|
||||
QApplication.processEvents()
|
||||
sflist = [".exe",".dll",".com",".msi",".js",".vbs",".xls",".xlsx",".doc",".docx"]
|
||||
self.traverse_path(path,sflist)
|
||||
self.traverse_path(path,[".exe",".dll",".com",".msi",".js",".vbs",".xls",".xlsx",".doc",".docx"])
|
||||
self.answer_scan()
|
||||
else:
|
||||
self.ui.Virus_Scan_text.setText(self.text_Translate("請選擇掃描方式"))
|
||||
@@ -933,10 +937,9 @@ class MainWindow_Controller(QtWidgets.QMainWindow):
|
||||
self.Virus_List_output=QStringListModel()
|
||||
self.Virus_List_output.setStringList(self.Virus_List)
|
||||
self.ui.Virus_Scan_output.setModel(self.Virus_List_output)
|
||||
sflist = [".exe",".dll",".com",".msi",".js",".vbs",".xls",".xlsx",".doc",".docx"]
|
||||
for d in range(26):
|
||||
try:
|
||||
self.traverse_path(str(chr(65+d))+":/",sflist)
|
||||
self.traverse_path(str(chr(65+d))+":/",[".exe",".dll",".com",".msi",".js",".vbs",".xls",".xlsx",".doc",".docx"])
|
||||
except:
|
||||
pass
|
||||
self.answer_scan()
|
||||
@@ -974,38 +977,32 @@ class MainWindow_Controller(QtWidgets.QMainWindow):
|
||||
|
||||
def Repair_System_Files(self):
|
||||
try:
|
||||
question = QMessageBox.warning(self,self.text_Translate("修復系統檔案"),self.text_Translate("您確定要修復系統檔案嗎?"),QMessageBox.Yes|QMessageBox.No,QMessageBox.Yes)
|
||||
if question == 16384:
|
||||
if QMessageBox.warning(self,self.text_Translate("修復系統檔案"),self.text_Translate("您確定要修復系統檔案嗎?"),QMessageBox.Yes|QMessageBox.No) == 16384:
|
||||
subprocess.run("sfc /scannow", shell=True)
|
||||
except Exception as e:
|
||||
self.pyas_bug_log(e)
|
||||
|
||||
def Clean_System_Files(self):
|
||||
try:
|
||||
question = QMessageBox.warning(self,self.text_Translate("清理系統檔案"),self.text_Translate("您確定要清理系統檔案嗎?"),QMessageBox.Yes|QMessageBox.No,QMessageBox.Yes)
|
||||
if question == 16384:
|
||||
if QMessageBox.warning(self,self.text_Translate("清理系統檔案"),self.text_Translate("您確定要清理系統檔案嗎?"),QMessageBox.Yes|QMessageBox.No) == 16384:
|
||||
subprocess.run("cleanmgr", check=True)
|
||||
except Exception as e:
|
||||
self.pyas_bug_log(e)
|
||||
|
||||
def Enable_Safe_Mode(self):
|
||||
try:
|
||||
question = QMessageBox.warning(self,self.text_Translate("啟用安全模式"),self.text_Translate("您確定要啟用安全模式嗎?"),QMessageBox.Yes|QMessageBox.No,QMessageBox.Yes)
|
||||
if question == 16384:
|
||||
if QMessageBox.warning(self,self.text_Translate("啟用安全模式"),self.text_Translate("您確定要啟用安全模式嗎?"),QMessageBox.Yes|QMessageBox.No) == 16384:
|
||||
subprocess.run("bcdedit /set {default} safeboot minimal", check=True)
|
||||
question = QMessageBox.warning(self,"reboot",self.text_Translate("使用此選項需要重啟,您確定要重啟嗎?"),QMessageBox.Yes|QMessageBox.No,QMessageBox.Yes)
|
||||
if question == 16384:
|
||||
subprocess.run("shutdown -r -t 0", check=True)
|
||||
if QMessageBox.warning(self,self.text_Translate("重啟"),self.text_Translate("使用此選項需要重啟,您確定要重啟嗎?"),QMessageBox.Yes|QMessageBox.No) == 16384:
|
||||
subprocess.run("shutdown -r -t 0", check=True)
|
||||
except Exception as e:
|
||||
self.pyas_bug_log(e)
|
||||
|
||||
def Disable_Safe_Mode(self):
|
||||
try:
|
||||
question = QMessageBox.warning(self,self.text_Translate("禁用安全模式"),self.text_Translate("您確定要禁用安全模式嗎?"),QMessageBox.Yes|QMessageBox.No,QMessageBox.Yes)
|
||||
if question == 16384:
|
||||
if QMessageBox.warning(self,self.text_Translate("禁用安全模式"),self.text_Translate("您確定要禁用安全模式嗎?"),QMessageBox.Yes|QMessageBox.No) == 16384:
|
||||
subprocess.run("bcdedit /deletevalue {current} safeboot", check=True)
|
||||
question = QMessageBox.warning(self,"reboot",self.text_Translate("使用此選項需要重啟,您確定要重啟嗎?"),QMessageBox.Yes|QMessageBox.No,QMessageBox.Yes)
|
||||
if question == 16384:
|
||||
if QMessageBox.warning(self,self.text_Translate("重啟"),self.text_Translate("使用此選項需要重啟,您確定要重啟嗎?"),QMessageBox.Yes|QMessageBox.No) == 16384:
|
||||
subprocess.run("shutdown -r -t 0", check=True)
|
||||
except Exception as e:
|
||||
self.pyas_bug_log(e)
|
||||
@@ -1013,15 +1010,20 @@ class MainWindow_Controller(QtWidgets.QMainWindow):
|
||||
def System_Info_update(self):
|
||||
try:
|
||||
version = sys.getwindowsversion()
|
||||
self.ui.System_Info_View.setText(f"CPU Core: {os.cpu_count()}\nSYS Info: {sys.platform}\nSYS Vers: {version.major}.{version.minor} build {version.build}\nSYS Name: {os.getlogin()}")
|
||||
core = f'{os.cpu_count()}'
|
||||
cpuu = f'{str(psutil.cpu_percent())}%'
|
||||
ramu = f'{str(psutil.virtual_memory().percent)}%'
|
||||
sysp = f'{sys.platform}'
|
||||
sysv = f'{version.major}.{version.minor} build {version.build}'
|
||||
sysn = f'{os.getlogin()}'
|
||||
self.ui.System_Info_View.setText(f"CPU Core: {core}\nCPU Used: {cpuu}\nRAM Used: {ramu}\nSYS Info: {sysp}\nSYS Vers: {sysv}\nSYS Name: {sysn}")
|
||||
except Exception as e:
|
||||
self.pyas_bug_log(e)
|
||||
|
||||
def Delete_Private_File(self):
|
||||
file, filetype = QFileDialog.getOpenFileName(self,self.text_Translate("刪除檔案"),"C:/","")
|
||||
if file != "" and file != str(sys.argv[0]):
|
||||
question = QMessageBox.warning(self,self.text_Translate("刪除檔案"),self.text_Translate("您確定要刪除此檔案嗎?"),QMessageBox.Yes|QMessageBox.No,QMessageBox.Yes)
|
||||
if question == 16384:
|
||||
if QMessageBox.warning(self,self.text_Translate("刪除檔案"),self.text_Translate("您確定要刪除此檔案嗎?"),QMessageBox.Yes|QMessageBox.No) == 16384:
|
||||
try:
|
||||
os.remove(file)
|
||||
QMessageBox.information(self,self.text_Translate("刪除成功"),self.text_Translate("成功: 刪除成功"),QMessageBox.Ok)
|
||||
@@ -1044,19 +1046,11 @@ class MainWindow_Controller(QtWidgets.QMainWindow):
|
||||
Value_Data = str(self.ui.Value_Data_input.text())
|
||||
Value_Type = str(self.ui.Value_Type_input.text())
|
||||
Value_HEKY = str(self.ui.Value_HEKY_input.text())
|
||||
heky_dict = {"HKEY_CLASSES_ROOT": win32con.HKEY_CLASSES_ROOT,"HKEY_CURRENT_USER": win32con.HKEY_CURRENT_USER,"HKEY_LOCAL_MACHINE": win32con.HKEY_LOCAL_MACHINE,"HKEY_USERS": win32con.HKEY_USERS,"HKEY_CURRENT_CONFIG": win32con.HKEY_CURRENT_CONFIG}
|
||||
if Value_HEKY in heky_dict:
|
||||
Value_HEKY = heky_dict[Value_HEKY]
|
||||
else:
|
||||
QMessageBox.critical(self, self.text_Translate("錯誤"), self.text_Translate("錯誤: 您輸入了錯誤的HEKY"), QMessageBox.Ok)
|
||||
continue_v = False
|
||||
value_types_dict = {"REG_BINARY": win32con.REG_BINARY,"REG_DWORD": win32con.REG_DWORD,"REG_DWORD_LITTLE_ENDIAN": win32con.REG_DWORD_LITTLE_ENDIAN,"REG_DWORD_BIG_ENDIAN": win32con.REG_DWORD_BIG_ENDIAN,"REG_EXPAND_SZ": win32con.REG_EXPAND_SZ,"REG_LINK": win32con.REG_LINK,"REG_MULTI_SZ": win32con.REG_MULTI_SZ,"REG_NONE": win32con.REG_NONE,"REG_QWORD": win32con.REG_QWORD,"REG_QWORD_LITTLE_ENDIAN": win32con.REG_QWORD_LITTLE_ENDIAN,"REG_SZ": win32con.REG_SZ}
|
||||
if Value_Type in value_types_dict:
|
||||
Value_Type = value_types_dict[Value_Type]
|
||||
else:
|
||||
QMessageBox.critical(self, self.text_Translate("錯誤"), self.text_Translate("錯誤: 您輸入了錯誤的TYPE"), QMessageBox.Ok)
|
||||
continue_v = False
|
||||
if continue_v:
|
||||
hkey_dict = {"HKEY_CLASSES_ROOT": win32con.HKEY_CLASSES_ROOT,"HKEY_CURRENT_USER": win32con.HKEY_CURRENT_USER,"HKEY_LOCAL_MACHINE": win32con.HKEY_LOCAL_MACHINE,"HKEY_USERS": win32con.HKEY_USERS,"HKEY_CURRENT_CONFIG": win32con.HKEY_CURRENT_CONFIG}
|
||||
value_dict = {"REG_BINARY": win32con.REG_BINARY,"REG_DWORD": win32con.REG_DWORD,"REG_DWORD_LITTLE_ENDIAN": win32con.REG_DWORD_LITTLE_ENDIAN,"REG_DWORD_BIG_ENDIAN": win32con.REG_DWORD_BIG_ENDIAN,"REG_EXPAND_SZ": win32con.REG_EXPAND_SZ,"REG_LINK": win32con.REG_LINK,"REG_MULTI_SZ": win32con.REG_MULTI_SZ,"REG_NONE": win32con.REG_NONE,"REG_QWORD": win32con.REG_QWORD,"REG_QWORD_LITTLE_ENDIAN": win32con.REG_QWORD_LITTLE_ENDIAN,"REG_SZ": win32con.REG_SZ}
|
||||
if Value_HEKY in hkey_dict and Value_Type in value_dict:
|
||||
Value_HEKY = hkey_dict[Value_HEKY]
|
||||
Value_Type = value_dict[Value_Type]
|
||||
if QMessageBox.warning(self,self.text_Translate("警告"),self.text_Translate("您確定要新增值或是修改值嗎?"),QMessageBox.Yes|QMessageBox.No) == 16384:
|
||||
try:
|
||||
key = win32api.RegOpenKey(Value_HEKY,Value_Path,0,win32con.KEY_ALL_ACCESS)
|
||||
@@ -1065,6 +1059,8 @@ class MainWindow_Controller(QtWidgets.QMainWindow):
|
||||
QMessageBox.information(self,self.text_Translate("成功"),self.text_Translate("成功: 成功的創建或修改註冊表值"),QMessageBox.Ok)
|
||||
except Exception as e:
|
||||
self.pyas_bug_log(e)
|
||||
else:
|
||||
QMessageBox.critical(self, self.text_Translate("錯誤"), self.text_Translate("錯誤: 您輸入了錯誤的值"), QMessageBox.Ok)
|
||||
|
||||
def Analyze_EXE(self,button):
|
||||
if button == self.ui.Analyze_EXE_Funtion_Button:
|
||||
@@ -1079,8 +1075,8 @@ class MainWindow_Controller(QtWidgets.QMainWindow):
|
||||
self.ui.Analyze_EXE_Output.append(str(func.name, "utf-8"))
|
||||
self.Change_Tools(self.ui.Analyze_EXE_widget)
|
||||
QApplication.processEvents()
|
||||
except:
|
||||
pass
|
||||
except Exception as e:
|
||||
self.pyas_bug_log(e)
|
||||
elif button == self.ui.Analyze_EXE_hash_Button:
|
||||
file, filetype= QFileDialog.getOpenFileName(self,self.text_Translate("分析檔案哈希值"),"C:/","All File *.*")
|
||||
if file != "":
|
||||
@@ -1094,8 +1090,8 @@ class MainWindow_Controller(QtWidgets.QMainWindow):
|
||||
self.ui.Analyze_EXE_Output.append(f"MD5: {readable_hash}\nSHA1: {readable_hash2}\nSHA256: {readable_hash3}")
|
||||
self.Change_Tools(self.ui.Analyze_EXE_widget)
|
||||
QApplication.processEvents()
|
||||
except:
|
||||
pass
|
||||
except Exception as e:
|
||||
self.pyas_bug_log(e)
|
||||
else:
|
||||
file, filetype= QFileDialog.getOpenFileName(self,self.text_Translate("分析檔案位元"),"C:/","EXE OR DLL File *.exe *.dll")
|
||||
if file != "":
|
||||
@@ -1107,8 +1103,8 @@ class MainWindow_Controller(QtWidgets.QMainWindow):
|
||||
self.ui.Analyze_EXE_Output.append(f"{section.Name.decode()} {hex(section.VirtualAddress)} {hex(section.Misc_VirtualSize)} {section.Characteristics}")
|
||||
self.Change_Tools(self.ui.Analyze_EXE_widget)
|
||||
QApplication.processEvents()
|
||||
except:
|
||||
pass
|
||||
except Exception as e:
|
||||
self.pyas_bug_log(e)
|
||||
|
||||
def find_file_input(self):
|
||||
try:
|
||||
@@ -1127,7 +1123,7 @@ class MainWindow_Controller(QtWidgets.QMainWindow):
|
||||
QApplication.processEvents()
|
||||
self.Change_Tools(self.ui.Look_for_File_widget)
|
||||
else:
|
||||
QMessageBox.critical(self,self.text_Translate("錯誤"),self.text_Translate("錯誤: 未找到檔案"),QMessageBox.Ok)
|
||||
QMessageBox.critical(self,self.text_Translate("錯誤"),self.text_Translate(f"錯誤: 未找到檔案 {file_name}"),QMessageBox.Ok)
|
||||
except Exception as e:
|
||||
self.pyas_bug_log(e)
|
||||
|
||||
@@ -1186,7 +1182,7 @@ class MainWindow_Controller(QtWidgets.QMainWindow):
|
||||
try:
|
||||
s = socket.socket(socket.AF_INET, socket.SOCK_DGRAM)
|
||||
s.connect(("8.8.8.8", 80))
|
||||
QMessageBox.information(self,self.text_Translate("位置查詢"),self.text_Translate(f"您的IP 配置是:{s.getsockname()[0]}"),QMessageBox.Ok)
|
||||
QMessageBox.information(self,self.text_Translate("位置查詢"),self.text_Translate(f"您的 IP 配置是:{s.getsockname()[0]}"),QMessageBox.Ok)
|
||||
s.close()
|
||||
except Exception as e:
|
||||
self.pyas_bug_log(e)
|
||||
@@ -1408,7 +1404,7 @@ class MainWindow_Controller(QtWidgets.QMainWindow):
|
||||
##################################### 初始設定 #####################################
|
||||
|
||||
if __name__ == '__main__':
|
||||
pyas_version, pyae_version = "2.6.9", "2.3.7"
|
||||
pyas_version, pyae_version = "2.7.0", "2.3.7"
|
||||
QtCore.QCoreApplication.setAttribute(Qt.AA_EnableHighDpiScaling)
|
||||
QtGui.QGuiApplication.setAttribute(Qt.HighDpiScaleFactorRoundingPolicy.PassThrough)
|
||||
app = QtWidgets.QApplication(sys.argv)
|
||||
|
||||
+33
-30
@@ -3,7 +3,9 @@ translations = {"zh_TW": {"已开启":"已開啟","已关闭":"已關閉","On":"
|
||||
"軟體":"软件","檔案":"文件","確定":"确认","設定":"设置","關於":"关于",
|
||||
"錯誤":"错误","實時":"实时","發現":"发现","本機":"电脑","資料":"数据",
|
||||
"誤殺":"误杀","開發":"开发","關閉":"关闭","資訊":"资讯","裝置":"设备",
|
||||
"總數":"总数","註冊":"注册","風險":"风险","路徑":"路径","網路":"网络",
|
||||
"總數":"总数","註冊":"注册","圖標":"图标","路徑":"路径","網路":"网络",
|
||||
"編輯":"编辑",
|
||||
"項":"项","掃":"扫","試":"试","黃":"黄","嗎":"吗","防":"保","鑰":"钥",
|
||||
"當":"当","後":"后","護":"护","導":"导","區":"区","復":"复","攔":"拦",
|
||||
"請":"请","統":"统","刪":"删","進":"进","個":"个","選":"选","啟":"启",
|
||||
"監":"监","並":"并","徑":"径","盤":"盘","隱":"隐","動":"动","狀":"状",
|
||||
@@ -12,42 +14,43 @@ translations = {"zh_TW": {"已开启":"已開啟","已关闭":"已關閉","On":"
|
||||
"類":"类","輸":"输","執":"执","數":"数","尋":"寻","網":"网","詢":"询",
|
||||
"製":"制","員":"员","許":"许","條":"条","藍":"蓝","紅":"红","綠":"绿",
|
||||
"態":"态","擇":"择","務":"务","連":"连","檢":"检","測":"测","庫":"库",
|
||||
"簽":"签","無":"无","關":"关","防":"保","鑰":"钥","黃":"黄","嗎":"吗",
|
||||
"項":"项","掃":"扫","試":"试"},
|
||||
"en_US": {"已開啟":"On","已關閉":"Off","已开启":"On","已关闭":"Off","啟用":"Enable ",
|
||||
"正在掃描":"Scanning ","正在刪除":"Deleting ","正在尋找":"Searching ",
|
||||
"正在檢測":"Checking ","無法確定":"Can't Confirm ","可疑":"Suspicious ",
|
||||
"簽":"签","無":"无","關":"关"},
|
||||
"en_US": {"已開啟":"On","已關閉":"Off","已开启":"On","已关闭":"Off",",":", ",
|
||||
"啟用":"Enable ","禁用":"Disable ","正在初始化中":"Initializing ",
|
||||
"正在掃描":"Scanning ","正在檢測":"Checking ","正在尋找":"Searching ",
|
||||
"正在刪除":"Deleting ","立即刪除":"Delete Now","安全模式":"Safe Mode",
|
||||
"最小化到":"Minimized To ","密鑰錯誤":"Key Error","可疑":"Suspicious ",
|
||||
"確定要":"Sure Want To ","官方網站":"Website","許可條款":"License Terms",
|
||||
"白色主題":"White","黑色主題":"Black","黃色主題":"Yellow","紅色主題":"Red",
|
||||
"藍色主題":"Blue","綠色主題":"Green","語言":"Language ","製作":"Make",
|
||||
"測試人員":"Testers","版本資訊":"Information","提示字元":"Prompt",
|
||||
"靈敏度":"Sensitivity ","位置查詢":"Location Query","無簽名":"Unsign ",
|
||||
"註冊表":"Registry ","編輯器":"Editor","實時":"Real-Time ","退出":"Quit ",
|
||||
"狀態":"State ","掃描":"Scan ","工具":"Tools ","防護":"Protect ",
|
||||
"禁用":"Disable ","系統":"System ","雲端":"Cloud ","重啟":"Reboot ",
|
||||
"輸入了":"Input ","不是有效":"Is Not A Valid ","命令":"Command ",
|
||||
"創建":"Create ","日期":"Date ","檔案":"File ","當前":"Currently ",
|
||||
"失敗":"Failed ","請":"Please ","路徑":"Path ","方式":"Method ",
|
||||
"需要":"Need ","病毒":"Virus ","選擇":"Select ","返回":"Back",
|
||||
"裝置":"Device ","發現":"Found ",",":", ","密鑰錯誤":"Key Error",
|
||||
"找到":"Find ","受到":"Been ","錯誤":"Error ","完成":"Complete ",
|
||||
"修復":"Repair ","正在初始化中":"Initializing ","實時":"Real-Time ",
|
||||
"立即刪除":"Delete Now","安全模式":"Safe Mode","不安全":"Unsafe",
|
||||
"確定要":"Sure Want To ","成功":"Success ","清理":"Cleanup ",
|
||||
"確定":"OK","執行":"Execute ","警告":"Warning ","輸入了":"Input ",
|
||||
"搜尋":"Search ","不是有效":"Is Not A Valid ","命令":"Command",
|
||||
"修改":"Modify ","用戶":"User ","使用":"Use ","哈希":"Hash",
|
||||
"托盤":"Tray ","圖標":"Icon ","不安全":"Unsafe","引擎":"Engine ",
|
||||
"系統":"System ","雲端":"Cloud ","重啟":"Reboot ","修復":"Repair ",
|
||||
"裝置":"Device ","發現":"Found ","成功":"Success ","清理":"Cleanup ",
|
||||
"確定":"OK","執行":"Execute ","警告":"Warning ","搜尋":"Search ",
|
||||
"修改":"Modify ","用戶":"User ","使用":"Use ","哈希":"Hashes",
|
||||
"更多":"More","重置":"Reset ","網路":"Network ","配置":"Config ",
|
||||
"選項":"Options ","監控":"Monitor ","連接":"Connect ","可以":"To ",
|
||||
"進程":"Process ","攔截":"Block ","引導":"Boot ","刪除":"Delete ",
|
||||
"分區":"Partition ","設定":"Setting","關於":"About","模式":"Mode ",
|
||||
"靈敏度":"Sensitivity ","提高":"Improve ","安全":"Security ","行":"",
|
||||
"無簽名":"Unsign ","引擎":"Engine ","風險":"Risk ","立即":"",
|
||||
"白色主題":"White","黑色主題":"Black","黃色主題":"Yellow","紅色主題":"Red",
|
||||
"藍色主題":"Blue","綠色主題":"Green","語言":"Language ","製作":"Make",
|
||||
"但":"But ","註冊表":"Regedit ","顯色":"Color ","主題":"Themes ",
|
||||
"介面":"GUI ","核心":"Core ","服務":"Services ","測試人員":"Testers",
|
||||
"官方網站":"Website","許可條款":"License Terms","全盤":"Full ",
|
||||
"分區":"Partition ","設定":"Settings","關於":"About ","模式":"Mode ",
|
||||
"提高":"Improve ","安全":"Security ","顯色":"Color ","主題":"Themes ",
|
||||
"風險":"Risk ","介面":"GUI ","核心":"Core ","服務":"Services ",
|
||||
"隱私":"Privacy ","更多":"More ","開發":"Devs ","管理":"Manage",
|
||||
"垃圾":"Junk ","輸出":"Output ","版本資訊":"Information","位元":"Bits",
|
||||
"粉碎":"Shredding","自訂":"Customize ","分析":"Analyze ","函數":"Func",
|
||||
"變更":"Change ","位置查詢":"Location Query","總數":"Total","結束":"End ",
|
||||
"本機":"Computer ","加密":"Encrypt ","解密":"Decrypt ","文字":"Text",
|
||||
"類型":"Type","資料":"Data","日誌":"Log","停止":"Stop ","值":"Value ",
|
||||
"前":"Before","後":"After","密碼":"Password ","此":"This ","名":"Name",
|
||||
"高":"High ","新":"New ","稱":"","是":"Is ","中":"","到":"For ",
|
||||
"您":"You ","未":"Not ","已":"Has ","個":"","的":"","並":"And ","嗎":"",
|
||||
"退出":"Quit ","和":"And ","相關":"Related ","開啟":"Open ","會":"Can "," ":" "}}
|
||||
"垃圾":"Junk ","輸出":"Output ","位元":"Bits","本機":"Computer ",
|
||||
"變更":"Change ","總數":"Total","結束":"End ","文字":"Text",
|
||||
"加密":"Encrypt ","解密":"Decrypt ","類型":"Type","資料":"Data",
|
||||
"更新":"Update","規則":"Rules","密碼":"Password ","相關":"Related ",
|
||||
"全盤":"Full ","日誌":"Log","停止":"Stop ","前":"Before","後":"After",
|
||||
"值":"Value ","此":"This ","名":"Name","開啟":"Open ","您":"You ",
|
||||
"但":"But ","並":"And ","嗎":"","高":"High ","新":"New ","是":"Is ",
|
||||
"到":"For ","未":"Not ","已":"Has ","和":"And ","會":"Can ",
|
||||
"個":"","顯示":"","的":"","立即":"","中":"","行":"","稱":""," ":" "}}
|
||||
@@ -1,10 +1,10 @@
|
||||
import pyinstaller_versionfile
|
||||
pyinstaller_versionfile.create_versionfile(
|
||||
output_file="versionfile.txt",
|
||||
version='2.6.9',
|
||||
company_name="PYAS Security",
|
||||
file_description="Python Antivirus Software",
|
||||
internal_name="PYAS",
|
||||
legal_copyright="© PYAS Security",
|
||||
original_filename="PYAS.exe",
|
||||
product_name="PYAS")
|
||||
output_file="versionfile.txt",
|
||||
version='2.7.0',
|
||||
company_name="PYAS Security",
|
||||
file_description="Python Antivirus Software",
|
||||
internal_name="PYAS",
|
||||
legal_copyright="© PYAS Security",
|
||||
original_filename="PYAS.exe",
|
||||
product_name="PYAS")
|
||||
Reference in new issue
Block a user