Compare commits

...
13 Commits
Author SHA1 Message Date
PYDT e33777c961 Add files via upload 2023-10-03 11:42:22 +08:00
PYDT ac14acd042 Add files via upload 2023-10-03 02:06:29 +08:00
PYDT e9f07df010 Add files via upload 2023-10-03 01:32:50 +08:00
PYDT 5d3855cdfa Add files via upload 2023-10-03 01:22:47 +08:00
PYDT 938e76fb4a Add files via upload 2023-10-02 17:49:09 +08:00
PYDT c0f6722c18 Add files via upload 2023-10-02 12:42:00 +08:00
PYDT 54e8922bc3 Add files via upload 2023-10-02 11:37:21 +08:00
PYDT 81b47dbf45 Add files via upload 2023-10-01 23:32:22 +08:00
PYDT 312401d80f Add files via upload 2023-09-26 19:27:47 +08:00
PYDT 8927ab7e36 Add files via upload 2023-09-26 17:50:21 +08:00
PYDT 6d99576e36 Add files via upload 2023-09-26 17:14:38 +08:00
PYDT 5618cd19cb Add files via upload 2023-09-26 06:41:25 +08:00
PYDT da11c6f5b6 Add files via upload 2023-09-25 10:00:56 +08:00
6 changed files with 76 additions and 85 deletions

No files matched your search

+67 -75
View File
@@ -1,7 +1,6 @@
import os, gc, sys, time, json, psutil
import subprocess, requests, msvcrt
import win32gui, win32api, win32con
import hashlib, pefile, win32file
import os, gc, sys, time, json, psutil, msvcrt
import win32gui, win32api, win32con, win32file
import requests, socket, hashlib, pefile
import xml.etree.ElementTree as xmlet
from PYAS_Scripts import scripts_list
from PYAS_Function import function_list
@@ -19,7 +18,7 @@ class MainWindow_Controller(QMainWindow):
self.setAttribute(Qt.WA_TranslucentBackground)
self.setWindowFlags(Qt.FramelessWindowHint)
self.pyas = str(sys.argv[0]).replace("\\", "/")
self.pyas_version = "2.8.4"
self.pyas_version = "2.8.5"
self.ui = Ui_MainWindow()
self.ui.setupUi(self)
self.init_tray_icon()
@@ -40,7 +39,7 @@ class MainWindow_Controller(QMainWindow):
self.protect_file_init()
self.protect_boot_init()
self.protect_reg_init()
self.protect_enh_init()
self.protect_net_init()
self.block_window_init()
def init_tray_icon(self):
@@ -51,14 +50,14 @@ class MainWindow_Controller(QMainWindow):
def init_config_path(self):
try:
if not os.path.exists("C:/Windows/SysWOW64/PYAS"):
os.makedirs("C:/Windows/SysWOW64/PYAS")
if not os.path.exists("C:/ProgramData/PYAS"):
os.makedirs("C:/ProgramData/PYAS")
except Exception as e:
self.bug_event(e)
def write_config(self, config):
try:
with open("C:/Windows/SysWOW64/PYAS/PYAS.json", "w", encoding="utf-8") as f:
with open("C:/ProgramData/PYAS/PYAS.json", "w", encoding="utf-8") as f:
f.write(json.dumps(config, indent=4, ensure_ascii=False))
except:
pass
@@ -74,12 +73,12 @@ class MainWindow_Controller(QMainWindow):
def init_config_list(self):
try:
self.whitelist = []
if os.path.exists("C:/Windows/SysWOW64/PYAS/Whitelist.txt"):
with open("C:/Windows/SysWOW64/PYAS/Whitelist.txt", "r", encoding="utf-8") as f:
if os.path.exists("C:/ProgramData/PYAS/Whitelist.ini"):
with open("C:/ProgramData/PYAS/Whitelist.ini", "r", encoding="utf-8") as f:
self.whitelist = [line.strip() for line in f.readlines()]
self.blocklist = []
if os.path.exists("C:/Windows/SysWOW64/PYAS/Blocklist.txt"):
with open("C:/Windows/SysWOW64/PYAS/Blocklist.txt", "r", encoding="utf-8") as f:
if os.path.exists("C:/ProgramData/PYAS/Blocklist.ini"):
with open("C:/ProgramData/PYAS/Blocklist.ini", "r", encoding="utf-8") as f:
self.blocklist = [line.strip() for line in f.readlines()]
except:
pass
@@ -94,9 +93,9 @@ class MainWindow_Controller(QMainWindow):
self.mbr_value = False
def init_config_json(self):
if not os.path.exists("C:/Windows/SysWOW64/PYAS/PYAS.json"):
if not os.path.exists("C:/ProgramData/PYAS/PYAS.json"):
self.write_config({"language":"en_US","high_sensitivity":0,"cloud_services":1})
with open("C:/Windows/SysWOW64/PYAS/PYAS.json", "r", encoding="utf-8") as f:
with open("C:/ProgramData/PYAS/PYAS.json", "r", encoding="utf-8") as f:
self.json = json.load(f)
self.high_sensitivity = self.json.get("high_sensitivity", 0)
if self.high_sensitivity == 1:
@@ -147,7 +146,7 @@ class MainWindow_Controller(QMainWindow):
self.ui.Protection_switch_Button_2.clicked.connect(self.protect_file_init)
self.ui.Protection_switch_Button_3.clicked.connect(self.protect_boot_init)
self.ui.Protection_switch_Button_4.clicked.connect(self.protect_reg_init)
self.ui.Protection_switch_Button_5.clicked.connect(self.protect_enh_init)
self.ui.Protection_switch_Button_5.clicked.connect(self.protect_net_init)
self.ui.high_sensitivity_switch_Button.clicked.connect(self.change_sensitive)
self.ui.cloud_services_switch_Button.clicked.connect(self.change_cloud_service)
self.ui.Add_White_list_Button.clicked.connect(self.add_white_list)
@@ -248,8 +247,8 @@ class MainWindow_Controller(QMainWindow):
self.ui.Protection_title_4.setText(self.trans("註冊表防護"))
self.ui.Protection_illustrate_4.setText(self.trans("啟用此選項可以修復註冊表項目"))
self.ui.Protection_switch_Button_4.setText(self.trans(self.ui.Protection_switch_Button_4.text()))
self.ui.Protection_title_5.setText(self.trans("增強防護"))
self.ui.Protection_illustrate_5.setText(self.trans("啟用此選項可以增強系統防護"))
self.ui.Protection_title_5.setText(self.trans("網路防護"))
self.ui.Protection_illustrate_5.setText(self.trans("啟用此選項可以監控網路通訊"))
self.ui.Protection_switch_Button_5.setText(self.trans(self.ui.Protection_switch_Button_5.text()))
self.ui.State_log.setText(self.trans("日誌:"))
self.ui.More_Tools_Back_Button.setText(self.trans("工具>"))
@@ -622,7 +621,6 @@ class MainWindow_Controller(QMainWindow):
try:
msvcrt.locking(self.virus_lock[file], msvcrt.LK_UNLCK, 0)
os.close(self.virus_lock[file])
del self.virus_lock[file]
except:
continue
self.scan_file = True
@@ -702,7 +700,7 @@ class MainWindow_Controller(QMainWindow):
def file_scan(self):
try:
file = str(QFileDialog.getOpenFileName(self,self.trans("病毒掃描"),"C:/")[0])
if file and file != self.pyas:
if file and file not in self.whitelist:
self.init_scan()
self.start_scan(file)
self.answer_scan()
@@ -735,20 +733,16 @@ class MainWindow_Controller(QMainWindow):
def start_scan(self, file):
try:
file_type = str(f".{file.split('.')[-1]}").lower()
if self.high_sensitivity == 1:
if self.high_sensitivity and file != self.pyas:
if self.api_scan(file):
self.write_scan(self.trans("惡意"),file)
elif self.pe_scan(file):
self.write_scan(self.trans("可疑"),file)
elif self.scr_scan(file):
self.write_scan(self.trans("可疑"),file)
elif file_type in slist and self.sign_scan(file):
if self.api_scan(file):
self.write_scan(self.trans("惡意"),file)
elif self.pe_scan(file):
self.write_scan(self.trans("可疑"),file)
elif self.scr_scan(file):
self.write_scan(self.trans("可疑"),file)
except:
pass
@@ -756,17 +750,15 @@ class MainWindow_Controller(QMainWindow):
for fd in os.listdir(path):
try:
file = str(os.path.join(path,fd)).replace("\\", "/")
self.ui.Virus_Scan_text.setText(self.trans(f"正在掃描: ")+file)
QApplication.processEvents()
if self.scan_file == False:
return
elif file in self.whitelist or ":/Windows" in file:
continue
elif os.path.isdir(file):
self.traverse_path(file)
elif file != self.pyas:
self.ui.Virus_Scan_text.setText(self.trans(f"正在掃描: ")+file)
QApplication.processEvents()
elif file not in self.whitelist:
self.start_scan(file)
gc.collect()
gc.collect()
except:
continue
@@ -778,6 +770,7 @@ class MainWindow_Controller(QMainWindow):
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(xmlet.fromstring(response.text).find('.//e_level').text) > 50
return False
except:
return False
@@ -793,21 +786,22 @@ class MainWindow_Controller(QMainWindow):
if os.path.isfile(text):
with open(text, "r", encoding="utf-8") as f:
text = f.read()
return any(sn in text for sn in scripts_list)
return any(sn in str(text) for sn in scripts_list)
except:
return False
def pe_scan(self, file):
try:
fn = []
with pefile.PE(file) as pe:
fn = []
for entry in pe.DIRECTORY_ENTRY_IMPORT:
for func in entry.imports:
try:
fn.append(str(func.name, "utf-8"))
except:
pass
return fn in function_list
return fn in function_list
return False
except:
return False
@@ -815,7 +809,6 @@ class MainWindow_Controller(QMainWindow):
try:
if QMessageBox.warning(self,self.trans("警告"),self.trans("您確定要修復系統檔案嗎?"),QMessageBox.Yes|QMessageBox.No) == 16384:
self.repair_system_wallpaper()
self.repair_system_explorer()
self.repair_system_restrict()
self.repair_system_file_type()
self.repair_system_file_icon()
@@ -928,19 +921,6 @@ class MainWindow_Controller(QMainWindow):
except:
pass
def repair_system_explorer(self):
try:
if not self.is_process_running("explorer.exe"):
subprocess.run("explorer.exe", check=True)
except:
pass
def is_process_running(self, name):
for proc in psutil.process_iter():
if p.name() == name:
return True
return False
def clean_system(self):
try:
if QMessageBox.warning(self,self.trans("警告"),self.trans("您確定要清理系統垃圾嗎?"),QMessageBox.Yes|QMessageBox.No) == 16384:
@@ -972,12 +952,12 @@ class MainWindow_Controller(QMainWindow):
if file and file not in self.whitelist:
if QMessageBox.warning(self,self.trans("警告"),self.trans("您確定要增加到白名單嗎?"),QMessageBox.Yes|QMessageBox.No) == 16384:
self.whitelist.append(file)
with open("C:/Windows/SysWOW64/PYAS/Whitelist.txt", "a+", encoding="utf-8") as f:
with open("C:/ProgramData/PYAS/Whitelist.ini", "a+", encoding="utf-8") as f:
f.write(f"{file}\n")
QMessageBox.information(self,self.trans("成功"),self.trans(f"成功增加到白名單: ")+file,QMessageBox.Ok)
elif file and QMessageBox.warning(self,self.trans("警告"),self.trans("您確定要取消增加到白名單嗎?"),QMessageBox.Yes|QMessageBox.No) == 16384:
self.whitelist.remove(file)
with open("C:/Windows/SysWOW64/PYAS/Whitelist.txt", "w", encoding="utf-8") as f:
with open("C:/ProgramData/PYAS/Whitelist.ini", "w", encoding="utf-8") as f:
for white_file in self.whitelist:
f.write(f'{white_file}\n')
QMessageBox.information(self,self.trans("成功"),self.trans(f"成功取消增加到白名單: ")+file,QMessageBox.Ok)
@@ -995,12 +975,12 @@ class MainWindow_Controller(QMainWindow):
if window_name not in self.blocklist:
if QMessageBox.warning(self,self.trans("警告"),self.trans(f"您確定要攔截 {window_name} 嗎?"),QMessageBox.Yes|QMessageBox.No) == 16384:
self.blocklist.append(window_name)
with open("C:/Windows/SysWOW64/PYAS/Blocklist.txt", "a+", encoding="utf-8") as f:
with open("C:/ProgramData/PYAS/Blocklist.ini", "a+", encoding="utf-8") as f:
f.write(f'{window_name}\n')
QMessageBox.information(self,self.trans("成功"),self.trans(f"成功增加到彈窗攔截: ")+window_name,QMessageBox.Ok)
elif QMessageBox.warning(self,self.trans("警告"),self.trans(f"您確定要取消攔截 {window_name} 嗎?"),QMessageBox.Yes|QMessageBox.No) == 16384:
self.blocklist.remove(window_name)
with open("C:/Windows/SysWOW64/PYAS/Blocklist.txt", "w", encoding="utf-8") as f:
with open("C:/ProgramData/PYAS/Blocklist.ini", "w", encoding="utf-8") as f:
for block_name in self.blocklist:
f.write(f'{block_name}\n')
QMessageBox.information(self,self.trans("成功"),self.trans(f"成功取消彈窗攔截: ")+window_name,QMessageBox.Ok)
@@ -1025,9 +1005,9 @@ class MainWindow_Controller(QMainWindow):
def repair_network(self):
try:
if QMessageBox.warning(self,self.trans("警告"),self.trans("您確定要修復系統網路嗎?"),QMessageBox.Yes|QMessageBox.No) == 16384:
subprocess.run("netsh winsock reset", check=True)
os.system("netsh winsock reset")
if QMessageBox.warning(self,self.trans("警告"),self.trans("使用此選項需要重啟,您確定要重啟嗎?"),QMessageBox.Yes|QMessageBox.No) == 16384:
subprocess.run("shutdown -r -t 0", check=True)
os.system("shutdown -r -t 0")
except Exception as e:
self.bug_event(e)
@@ -1129,19 +1109,20 @@ class MainWindow_Controller(QMainWindow):
QPushButton:hover{background-color:rgba(20,200,20,120);}""")
Thread(target=self.protect_reg_thread, daemon=True).start()
def protect_enh_init(self):
def protect_net_init(self):
if self.ui.Protection_switch_Button_5.text() == self.trans("已開啟"):
self.enh_protect = False
self.net_protect = False
self.ui.Protection_switch_Button_5.setText(self.trans("已關閉"))
self.ui.Protection_switch_Button_5.setStyleSheet("""
QPushButton{border:none;background-color:rgba(20,20,20,30);border-radius: 15px;}
QPushButton:hover{background-color:rgba(20,20,20,50);}""")
else:
self.enh_protect = True
self.net_protect = True
self.ui.Protection_switch_Button_5.setText(self.trans("已開啟"))
self.ui.Protection_switch_Button_5.setStyleSheet("""
QPushButton{border:none;background-color:rgba(20,200,20,100);border-radius: 15px;}
QPushButton:hover{background-color:rgba(20,200,20,120);}""")
Thread(target=self.protect_net_thread, daemon=True).start()
def protect_proc_thread(self):
existing_processes = set()
@@ -1155,18 +1136,17 @@ class MainWindow_Controller(QMainWindow):
if p.pid not in existing_processes:
existing_processes.add(p.pid)
name, file, cmd = p.name(), p.exe().replace("\\", "/"), p.cmdline()
if ":/Windows" in file and self.enh_protect:
if ":/Windows" in file or ":/Program" in file:
if "powershell" in name and self.api_scan(cmd[-1].split("'")[-2]):
p.kill()
self.send_notify(self.trans("惡意腳本攔截: ")+name)
elif "cmd.exe" in name and self.api_scan(" ".join(cmd[2:])):
p.kill()
self.send_notify(self.trans("惡意腳本攔截: ")+name)
elif self.api_scan(cmd[-1]) or self.scr_scan(cmd):
elif self.sign_scan(file) and self.api_scan(file):
p.kill()
self.send_notify(self.trans("惡意軟體攔截: ")+name)
elif ":/Program" in file and self.enh_protect:
if self.sign_scan(file) and self.api_scan(file):
elif self.scr_scan(cmd) or self.api_scan(cmd[-1]):
p.kill()
self.send_notify(self.trans("惡意軟體攔截: ")+name)
elif file != self.pyas and file not in self.whitelist:
@@ -1184,17 +1164,18 @@ class MainWindow_Controller(QMainWindow):
while self.file_protect:
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):
try:
if action and "AppData" not in file:
if action == 1 and str(f".{file.split('.')[-2]}").lower() in alist:
if action == 2 and str(f".{file.split('.')[-1]}").lower() in alist:
if self.ransom_block and self.sign_scan(self.proc.exe()):
self.proc.kill()
self.ransom_block = False
self.send_notify(self.trans("勒索軟體攔截: ")+self.proc.name())
elif action == 2 and str(f".{file.split('.')[-1]}").lower() in alist:
if self.ransom_block:
self.proc.kill()
self.ransom_block = False
self.send_notify(self.trans("勒索軟體攔截: ")+self.proc.name())
else:
self.ransom_block = True
elif "/AppData/" not in file:
self.ransom_block = True
elif action == 3 and str(f".{file.split('.')[-1]}").lower() in slist:
file = str(f"C:/Users/{file}").replace("\\", "/")
if self.sign_scan(file) and self.api_scan(file):
os.remove(file)
self.send_notify(self.trans("惡意軟體刪除: ")+file)
gc.collect()
except:
pass
@@ -1202,7 +1183,7 @@ class MainWindow_Controller(QMainWindow):
def protect_boot_thread(self):
while self.mbr_protect and self.mbr_value:
try:
time.sleep(0.2)
time.sleep(0.5)
with open(r"\\.\PhysicalDrive0", "r+b") as f:
if self.mbr_value[510:512] == b'\x55\xAA':
if f.read(512) != self.mbr_value:
@@ -1210,21 +1191,32 @@ class MainWindow_Controller(QMainWindow):
f.write(self.mbr_value)
self.proc.kill()
self.send_notify(self.trans("惡意行為攔截: ")+self.proc.name())
else:
elif self.sign_scan(self.proc.exe()):
self.proc.kill()
self.send_notify(self.trans("惡意行為攔截: ")+self.proc.name())
self.init_config_boot()
except:
pass
def protect_reg_thread(self):
while self.reg_protect:
try:
time.sleep(0.2)
time.sleep(0.5)
self.repair_system_image()
self.repair_system_restrict()
self.repair_system_file_type()
self.repair_system_file_icon()
self.repair_system_image()
except:
pass
def protect_net_thread(self):
while self.net_protect:
try:
time.sleep(0.5)
for conn in self.proc.connections():
local_ip = socket.gethostbyname(socket.gethostname())
if local_ip == conn.laddr.ip and self.sign_scan(self.proc.exe()):
self.proc.kill()
self.send_notify(self.trans("網路通訊攔截: ")+self.proc.name())
except:
pass
+1 -1
View File
@@ -6,4 +6,4 @@ alist = [".ppt",".pptx",".wps",".txt",".rtf",
".jpg",".jpeg",".png",".webp",".gif",
".mp3",".wav",".aac",".ogg",".flac",
".mp4",".avi",".mov",".wmv",".mkv",
".zip",".7z",".rar",".exe",".dll"]
".zip",".7z",".rar",".gz",".tar"]
+1 -1
View File
@@ -1 +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
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
+5 -6
View File
@@ -3,7 +3,7 @@ translate_dict = {"zh_TW": {"已开启":"已開啟","已关闭":"已關閉","On"
"軟體":"软件","檔案":"文件","確定":"确认","設定":"设置","關於":"关于",
"錯誤":"错误","實時":"实时","發現":"发现","關閉":"关闭","裝置":"设备",
"總數":"总数","註冊":"注册","圖標":"图标","路徑":"路径","網路":"网络",
"位元":"字节","彈窗":"弹窗","靈敏":"敏感","誤報":"误报","簽":"签",
"位元":"字节","彈窗":"弹窗","靈敏":"敏感","誤報":"误报","訊":"讯",
"項":"项","掃":"扫","試":"试","黃":"黄","嗎":"吗","防":"保","鑰":"钥",
"當":"当","後":"后","護":"护","導":"导","區":"区","復":"复","攔":"拦",
"請":"请","統":"统","刪":"删","進":"进","個":"个","選":"选","啟":"启",
@@ -24,7 +24,7 @@ translate_dict = {"zh_TW": {"已开启":"已開啟","已关闭":"已關閉","On"
"確定要":"Sure Want To ","靈敏度":"Sensitivity ","更新":"Update",
"白色主題":"White","黑色主題":"Black","黃色主題":"Yellow","紅色主題":"Red",
"藍色主題":"Blue","綠色主題":"Green","語言":"Language ","製作":"Make",
"測試人員":"Testers","版本資訊":"Information","無效簽名":"Unsign ",
"測試人員":"Testers","版本資訊":"Information","通訊":"Communication ",
"註冊表":"Registry ","退出":"Quit ","檔案":"File ","當前":"Currently ",
"狀態":"State ","掃描":"Scan ","工具":"Tools ","防護":"Protect ",
"失敗":"Failed ","請":"Please ","路徑":"Path ","方式":"Method ",
@@ -43,10 +43,9 @@ translate_dict = {"zh_TW": {"已开启":"已開啟","已关闭":"已關閉","On"
"管理":"Manage","所有":"All ","全盤":"Full ","取消":"Cancel ",
"垃圾":"Junk ","位元":"byte ","本機":"Computer ","停止":"Stop ",
"增加到":"Add File To ","白名單":"White List ","軟體":"Software ",
"增加":"Add","移除":"Delete","項目":"Items ","生成":"Create ",
"增加":"Add","移除":"Delete","項目":"Items ","生成":"Create ","稱":"",
"開啟":"Open ","您":"You ","此":"This ","並":"And ","未":"Not ",
"高":"High ","新":"New ","和":"And ","可能會":"Possible ","會":"Can ",
"日誌":"Log","已":"Has ","彈窗":"Window ","要":"To ","驅動":"Drive ",
"的":"","顯示":"","個":"","嗎":"","中":"","了":"","行":"","稱":"",
"密鑰":"Key ","檢測":"Detect ","誤報":"False Positive ","立即":"",
" ":" "}}
"的":"","顯示":"","個":"","嗎":"","中":"","了":"","行":"","立即":"",
"密鑰":"Key ","檢測":"Detect ","誤報":"False Positive "," ":" "}}
+1 -1
View File
@@ -1 +1 @@
scripts_list = ["%0|%0","ExclusionPath","cmdkey","eiculwo"]
scripts_list = ["%0|%0","ExclusionPath","cmdkey","eiculwo","random","bypass"]
+1 -1
View File
@@ -1,7 +1,7 @@
import pyinstaller_versionfile
pyinstaller_versionfile.create_versionfile(
output_file="versionfile.txt",
version='2.8.4',
version='2.8.5',
company_name="PYAS Security",
file_description="Python Antivirus Software",
internal_name="PYAS",