|
|
|
@@ -1,13 +1,13 @@
|
|
|
|
|
####################################################################################
|
|
|
|
|
# Coding Python 3.8 UTF-8 (Python IDLE)
|
|
|
|
|
#
|
|
|
|
|
# PYAS Ver: PYAS V2.2.2 (2020.12.17)
|
|
|
|
|
# PYAS Ver: PYAS V2.2.7 (2020.12.17)
|
|
|
|
|
# PYAE Ver: PYAE V1.2.5 (2022.03.04)
|
|
|
|
|
# Support: Windows 7,8,10,11 64-bit
|
|
|
|
|
#
|
|
|
|
|
# PYAS Git: https://github.com/87owo/PYAS
|
|
|
|
|
# PYAS Web: https://xiaomi69ai.wixsite.com/pyas
|
|
|
|
|
# PYDT Web: https://xiaomi69ai.wixsite.com/pydt
|
|
|
|
|
# PYAS Web: https://pyantivirus.wixsite.com/pyas
|
|
|
|
|
# PYDT Web: https://pyantivirus.wixsite.com/pydt
|
|
|
|
|
#
|
|
|
|
|
# PYAS is managed by PYDT (Python Development Team)
|
|
|
|
|
# Copyright© 2020-2022 PYAS Python Antivirus Software.
|
|
|
|
@@ -15,12 +15,12 @@
|
|
|
|
|
|
|
|
|
|
#載入模組套件
|
|
|
|
|
try:
|
|
|
|
|
import os, time, sys, psutil, socket, subprocess, platform, cryptocode, webbrowser, threading, pygame, pathlib, virustotal_python, win32api, win32con
|
|
|
|
|
import os, time, sys, psutil, socket, subprocess, platform, cryptocode, webbrowser, threading, pygame, virustotal_python, win32api, win32con
|
|
|
|
|
from cv2 import VideoCapture
|
|
|
|
|
from ctypes import windll
|
|
|
|
|
import requests as req
|
|
|
|
|
from pefile import PE
|
|
|
|
|
from hashlib import md5
|
|
|
|
|
from hashlib import md5, sha1, sha256
|
|
|
|
|
from tkinter import messagebox, filedialog
|
|
|
|
|
from tkinter import *
|
|
|
|
|
except Exception as e:
|
|
|
|
@@ -29,7 +29,7 @@ except Exception as e:
|
|
|
|
|
####################################################################################
|
|
|
|
|
|
|
|
|
|
#版本資訊
|
|
|
|
|
pyas_version = '2.2.2'
|
|
|
|
|
pyas_version = '2.2.7'
|
|
|
|
|
pyae_version = '1.2.5'
|
|
|
|
|
dev_edition_times = 0
|
|
|
|
|
pyas_copyright = 'Copyright© 2020-2022 PYAS Python Antivirus Software.'
|
|
|
|
@@ -135,7 +135,7 @@ The software is forbidden to be sold or copied by others without permission. You
|
|
|
|
|
You can get the software directly from the official website of PYAS antivirus software, or you can get it through the official GitHub.
|
|
|
|
|
If you have obtained this software from a third-party application store that has not been authorized by the official website of PYAS antivirus software,
|
|
|
|
|
Then we cannot guarantee that the software can be used normally, and we are not responsible for any related losses caused to you.
|
|
|
|
|
Official website: https://xiaomi69ai.wixsite.com/pyas
|
|
|
|
|
Official website: https://pyantivirus.wixsite.com/pyas
|
|
|
|
|
Official Git: https://github.com/87owo/PYAS
|
|
|
|
|
3.Personal information and privacy protection.
|
|
|
|
|
You can register your email and name on the official website of PYAS anti-virus software, which will be used for feedback contact.
|
|
|
|
@@ -233,7 +233,7 @@ def pyas_scan_answer_en():
|
|
|
|
|
#定義更新選項
|
|
|
|
|
def software_update_en():
|
|
|
|
|
pyas_clear()
|
|
|
|
|
webbrowser.open('https://xiaomi69ai.wixsite.com/pyas?lang=en')
|
|
|
|
|
webbrowser.open('https://pyantivirus.wixsite.com/pyas?lang=en')
|
|
|
|
|
|
|
|
|
|
def engine_update_en():
|
|
|
|
|
if messagebox.askokcancel('Warning','Update Antivirus Engine ,Do You want to continue?', default="cancel", icon="warning"):
|
|
|
|
@@ -310,11 +310,16 @@ def pyas_protect_init_en():
|
|
|
|
|
pygame.mixer.music.load('Library/PYAS/Audio/Virusfound.ogg')
|
|
|
|
|
pygame.mixer.music.play()
|
|
|
|
|
else:
|
|
|
|
|
pyas_clear()
|
|
|
|
|
textPad.insert("insert", 'Malware blocking failed: '+str(p.name()))
|
|
|
|
|
try:
|
|
|
|
|
os.remove(str(p.exe()))
|
|
|
|
|
except:
|
|
|
|
|
pass
|
|
|
|
|
except:
|
|
|
|
|
pass
|
|
|
|
|
except:# Exception as e:
|
|
|
|
|
pass#print(e)
|
|
|
|
|
continue#print(e)
|
|
|
|
|
|
|
|
|
|
####################################################################################
|
|
|
|
|
|
|
|
|
@@ -387,6 +392,7 @@ def pyas_file_scan_en():
|
|
|
|
|
root.update()
|
|
|
|
|
if str(function.name) in rfn:
|
|
|
|
|
fts = fts + 1
|
|
|
|
|
PE.close(pe)
|
|
|
|
|
if fts != 0:
|
|
|
|
|
pyas_scan_write_en(file)
|
|
|
|
|
fts = 0
|
|
|
|
@@ -458,6 +464,7 @@ def pyas_scan_path_en(path,rfp,rfn,fts):
|
|
|
|
|
root.update()
|
|
|
|
|
if str(function.name) in rfn:
|
|
|
|
|
fts = fts + 1
|
|
|
|
|
PE.close(pe)
|
|
|
|
|
if fts != 0:
|
|
|
|
|
pyas_scan_write_en(str(fullpath))
|
|
|
|
|
fts = 0
|
|
|
|
@@ -620,6 +627,32 @@ def exe_analyze_md5_en():
|
|
|
|
|
pyas_clear()
|
|
|
|
|
textPad.insert("insert", none_file_en+'\n')
|
|
|
|
|
|
|
|
|
|
def exe_analyze_sha1_en():
|
|
|
|
|
pyas_clear()
|
|
|
|
|
file = filedialog.askopenfilename()
|
|
|
|
|
if file != '':
|
|
|
|
|
with open(file,"rb") as f:
|
|
|
|
|
bytes = f.read()
|
|
|
|
|
readable_hash = sha1(bytes).hexdigest();
|
|
|
|
|
textPad.insert("insert", 'SHA1: '+str(readable_hash))
|
|
|
|
|
f.close()
|
|
|
|
|
else:
|
|
|
|
|
pyas_clear()
|
|
|
|
|
textPad.insert("insert", none_file_en+'\n')
|
|
|
|
|
|
|
|
|
|
def exe_analyze_sha256_en():
|
|
|
|
|
pyas_clear()
|
|
|
|
|
file = filedialog.askopenfilename()
|
|
|
|
|
if file != '':
|
|
|
|
|
with open(file,"rb") as f:
|
|
|
|
|
bytes = f.read()
|
|
|
|
|
readable_hash = sha256(bytes).hexdigest();
|
|
|
|
|
textPad.insert("insert", 'SHA256: '+str(readable_hash))
|
|
|
|
|
f.close()
|
|
|
|
|
else:
|
|
|
|
|
pyas_clear()
|
|
|
|
|
textPad.insert("insert", none_file_en+'\n')
|
|
|
|
|
|
|
|
|
|
def exe_analyze_file_en():
|
|
|
|
|
pyas_clear()
|
|
|
|
|
file = filedialog.askopenfilename()
|
|
|
|
@@ -628,6 +661,7 @@ def exe_analyze_file_en():
|
|
|
|
|
for section in pe.sections:
|
|
|
|
|
root.update()
|
|
|
|
|
textPad.insert("insert", section.Name, hex(section.VirtualAddress),hex(section.Misc_VirtualSize), section.SizeOfRawData)
|
|
|
|
|
PE.close(pe)
|
|
|
|
|
else:
|
|
|
|
|
pyas_clear()
|
|
|
|
|
textPad.insert("insert", none_file_en+'\n')
|
|
|
|
@@ -641,6 +675,7 @@ def exe_analyze_function_en():
|
|
|
|
|
for function in entry.imports:
|
|
|
|
|
root.update()
|
|
|
|
|
textPad.insert("insert", str(function.name)+'\n')
|
|
|
|
|
PE.close(pe)
|
|
|
|
|
else:
|
|
|
|
|
pyas_clear()
|
|
|
|
|
textPad.insert("insert", none_file_en+'\n')
|
|
|
|
@@ -736,6 +771,7 @@ def find_files_init_en():
|
|
|
|
|
def find_files_info_en(ffile):
|
|
|
|
|
try:
|
|
|
|
|
fss = 0
|
|
|
|
|
start = 0
|
|
|
|
|
findfile_en('A:/',ffile,fss,start)
|
|
|
|
|
findfile_en('B:/',ffile,fss,start)
|
|
|
|
|
findfile_en('C:/',ffile,fss,start)
|
|
|
|
@@ -765,8 +801,11 @@ def find_files_info_en(ffile):
|
|
|
|
|
ft = open('Library/PYAS/Temp/PYASF.tmp','r',encoding='utf-8')
|
|
|
|
|
fe = ft.read()
|
|
|
|
|
ft.close()
|
|
|
|
|
ft = open('Library/PYAS/Temp/PYASF.tmp','r',encoding='utf-8')
|
|
|
|
|
lines = len(ft.readlines())
|
|
|
|
|
ft.close()
|
|
|
|
|
pyas_clear()
|
|
|
|
|
textPad.insert("insert", '''Find result:\n'''+pyas_divider+'\n'+str(fe))
|
|
|
|
|
textPad.insert("insert", 'Find result: ('+str(int(lines/3))+' items)\n'+pyas_divider+'\n'+str(fe))
|
|
|
|
|
os.remove('Library/PYAS/Temp/PYASF.tmp')
|
|
|
|
|
except:
|
|
|
|
|
pass
|
|
|
|
@@ -1030,7 +1069,7 @@ def system_disk_clean_en():
|
|
|
|
|
pyas_clear()
|
|
|
|
|
textPad.insert("insert",en_app_use)
|
|
|
|
|
root.update()
|
|
|
|
|
os.system('cleanmgr /autoclean')
|
|
|
|
|
os.system('cleanmgr')
|
|
|
|
|
pyas_clear()
|
|
|
|
|
|
|
|
|
|
def change_user_password_init_en():
|
|
|
|
@@ -1057,7 +1096,7 @@ def change_user_password_en(user,password):
|
|
|
|
|
|
|
|
|
|
def recover_Wallpaper_en():
|
|
|
|
|
pyas_clear()
|
|
|
|
|
if messagebox.askokcancel('Warning','''Recover System Wallpaper, Do you want to continue?''', default="cancel", icon="warning"):
|
|
|
|
|
if messagebox.askokcancel('Warning','''Repair System Wallpaper, Do you want to continue?''', default="cancel", icon="warning"):
|
|
|
|
|
try:
|
|
|
|
|
try:
|
|
|
|
|
key = win32api.RegOpenKey(win32con.HKEY_CURRENT_USER,'SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\Wallpapers',0,win32con.KEY_ALL_ACCESS)
|
|
|
|
@@ -1543,6 +1582,90 @@ def fixlimit_en():
|
|
|
|
|
pyas_clear()
|
|
|
|
|
textPad.insert("insert", en_failed+'\n'+pyas_divider+'\n'+str(e))
|
|
|
|
|
|
|
|
|
|
def open_cmd_en():
|
|
|
|
|
pyas_clear()
|
|
|
|
|
textPad.insert("insert",en_app_use)
|
|
|
|
|
root.update()
|
|
|
|
|
run = subprocess.call('start cmd.exe',shell=True)
|
|
|
|
|
if run == 0:
|
|
|
|
|
pyas_clear()
|
|
|
|
|
textPad.insert("insert", en_success)
|
|
|
|
|
else:
|
|
|
|
|
pyas_clear()
|
|
|
|
|
textPad.insert("insert", en_failed)
|
|
|
|
|
|
|
|
|
|
def open_regedit_en():
|
|
|
|
|
pyas_clear()
|
|
|
|
|
textPad.insert("insert",en_app_use)
|
|
|
|
|
root.update()
|
|
|
|
|
run = subprocess.call('regedit.exe',shell=True)
|
|
|
|
|
if run == 0:
|
|
|
|
|
pyas_clear()
|
|
|
|
|
textPad.insert("insert", en_success)
|
|
|
|
|
else:
|
|
|
|
|
pyas_clear()
|
|
|
|
|
textPad.insert("insert", en_failed)
|
|
|
|
|
|
|
|
|
|
def open_taskmgr_en():
|
|
|
|
|
pyas_clear()
|
|
|
|
|
textPad.insert("insert",en_app_use)
|
|
|
|
|
root.update()
|
|
|
|
|
run = subprocess.call('taskmgr.exe',shell=True)
|
|
|
|
|
if run == 0:
|
|
|
|
|
pyas_clear()
|
|
|
|
|
textPad.insert("insert", en_success)
|
|
|
|
|
else:
|
|
|
|
|
pyas_clear()
|
|
|
|
|
textPad.insert("insert", en_failed)
|
|
|
|
|
|
|
|
|
|
def open_powershell_en():
|
|
|
|
|
pyas_clear()
|
|
|
|
|
textPad.insert("insert",en_app_use)
|
|
|
|
|
root.update()
|
|
|
|
|
run = subprocess.call('start powershell.exe',shell=True)
|
|
|
|
|
if run == 0:
|
|
|
|
|
pyas_clear()
|
|
|
|
|
textPad.insert("insert", en_success)
|
|
|
|
|
else:
|
|
|
|
|
pyas_clear()
|
|
|
|
|
textPad.insert("insert", en_failed)
|
|
|
|
|
|
|
|
|
|
def system_check_en():
|
|
|
|
|
fail = 0
|
|
|
|
|
try:
|
|
|
|
|
pyas_clear()
|
|
|
|
|
textPad.insert("insert", 'Checking CMD')
|
|
|
|
|
run = subprocess.call('cmd.exe',shell=True)
|
|
|
|
|
if run == 0:
|
|
|
|
|
pyas_clear()
|
|
|
|
|
textPad.insert("insert", en_success)
|
|
|
|
|
else:
|
|
|
|
|
pyas_clear()
|
|
|
|
|
textPad.insert("insert", en_failed)
|
|
|
|
|
fail += 1
|
|
|
|
|
pyas_clear()
|
|
|
|
|
textPad.insert("insert", 'Checking REG')
|
|
|
|
|
run = subprocess.call('regedit.exe',shell=True)
|
|
|
|
|
if run == 0:
|
|
|
|
|
pyas_clear()
|
|
|
|
|
textPad.insert("insert", en_success)
|
|
|
|
|
else:
|
|
|
|
|
pyas_clear()
|
|
|
|
|
textPad.insert("insert", en_failed)
|
|
|
|
|
fail += 1
|
|
|
|
|
pyas_clear()
|
|
|
|
|
textPad.insert("insert", 'Checking Taskmgr')
|
|
|
|
|
run = subprocess.call('taskmgr.exe',shell=True)
|
|
|
|
|
if run == 0:
|
|
|
|
|
pyas_clear()
|
|
|
|
|
textPad.insert("insert", en_success)
|
|
|
|
|
else:
|
|
|
|
|
pyas_clear()
|
|
|
|
|
textPad.insert("insert", en_failed)
|
|
|
|
|
fail += 1
|
|
|
|
|
except:
|
|
|
|
|
pass
|
|
|
|
|
|
|
|
|
|
################################################################################
|
|
|
|
|
|
|
|
|
|
#關於
|
|
|
|
@@ -1567,7 +1690,7 @@ def about_pyas_en():
|
|
|
|
|
PYAS Developer: PYAS_Dev#0629 , Mtkiao129#3921 , Dragon#5381
|
|
|
|
|
Official Email: [email protected]
|
|
|
|
|
Official Github: https://github.com/87owo/PYAS
|
|
|
|
|
Official Website: https://xiaomi69ai.wixsite.com/pyas
|
|
|
|
|
Official Website: https://pyantivirus.wixsite.com/pyas
|
|
|
|
|
PYAS Create Date: 2020/12/17
|
|
|
|
|
PYAS Version: '''+pyas_version+'''
|
|
|
|
|
PYAE Version: '''+pyae_version+'''
|
|
|
|
@@ -1592,7 +1715,7 @@ Thanks For Using PYAS Python Antivirus Software'''
|
|
|
|
|
er = open('.\Library\PYAS\Temp\PYASE.tmp','w')
|
|
|
|
|
er.write(str(dev_edition_times + 1))
|
|
|
|
|
er.close()
|
|
|
|
|
messagebox.showinfo('Copyright','''Website: https://xiaomi69ai.wixsite.com/pyas
|
|
|
|
|
messagebox.showinfo('Copyright','''Website: https://pyantivirus.wixsite.com/pyas
|
|
|
|
|
Copyright© 2020-2022 PYAS Python Antivirus Software''')
|
|
|
|
|
|
|
|
|
|
def software_version_en():
|
|
|
|
@@ -1649,6 +1772,14 @@ def english():
|
|
|
|
|
sub2menu.add_command(label = 'Disable Safe Mode',command = close_safe_Mode_en)
|
|
|
|
|
sub2menu.add_separator()
|
|
|
|
|
sub2menu.add_command(label = 'System Version Info',command = computer_info_en)
|
|
|
|
|
sysapp = Menu(filemenu3,tearoff=False)###
|
|
|
|
|
filemenu3.add_cascade(label='System Apps', menu=sysapp, underline=0)
|
|
|
|
|
sysapp.add_command(label = 'Open Taskmgr',command = open_taskmgr_en)
|
|
|
|
|
sysapp.add_separator()
|
|
|
|
|
sysapp.add_command(label = 'Open Regedit',command = open_regedit_en)
|
|
|
|
|
sysapp.add_separator()
|
|
|
|
|
sysapp.add_command(label = 'Open Command',command = open_cmd_en)
|
|
|
|
|
sysapp.add_command(label = 'Open PowerShell',command = open_powershell_en)###
|
|
|
|
|
insmenu = Menu(filemenu3,tearoff=False)
|
|
|
|
|
filemenu3.add_cascade(label='Privacy Tools', menu=insmenu, underline=0)
|
|
|
|
|
insmenu.add_command(label = 'Camera Privacy Detection',command = camera_check_en)
|
|
|
|
@@ -1669,14 +1800,17 @@ def english():
|
|
|
|
|
submenu.add_command(label = 'Reset System Network',command = reset_network_en)
|
|
|
|
|
devmenu = Menu(filemenu3,tearoff=False)
|
|
|
|
|
filemenu3.add_cascade(label='Dev Tools', menu=devmenu, underline=0)
|
|
|
|
|
devmenu.add_command(label = 'Online File Analyze',command = input_virustotal_scan_en)
|
|
|
|
|
devmenu.add_separator()
|
|
|
|
|
devmenu.add_command(label = 'Custom REG Command',command = input_custom_regedit_command_en)
|
|
|
|
|
devmenu.add_command(label = 'Custom CMD Command',command = input_custom_cmd_command_en)
|
|
|
|
|
devmenu.add_separator()
|
|
|
|
|
devmenu.add_command(label = 'Analyze EXE Hashes',command = exe_analyze_md5_en)
|
|
|
|
|
devmenu.add_command(label = 'Analyze EXE Bytes',command = exe_analyze_file_en)
|
|
|
|
|
devmenu.add_command(label = 'Analyze EXE Function',command = exe_analyze_function_en)
|
|
|
|
|
devmenu.add_separator()
|
|
|
|
|
devmenu.add_command(label = 'Online File Analyze',command = input_virustotal_scan_en)
|
|
|
|
|
devmenu.add_command(label = 'Analyze EXE MD5 Hashes',command = exe_analyze_md5_en)
|
|
|
|
|
devmenu.add_command(label = 'Analyze EXE SHA1 Hashes',command = exe_analyze_sha1_en)
|
|
|
|
|
devmenu.add_command(label = 'Analyze EXE SHA256 Hashes',command = exe_analyze_sha256_en)
|
|
|
|
|
filemenu5 = Menu(menubar,tearoff=False)
|
|
|
|
|
menubar.add_cascade(label = 'Settings',menu = filemenu5)
|
|
|
|
|
sitmenu = Menu(filemenu5,tearoff=False)
|
|
|
|
@@ -1707,7 +1841,7 @@ def english():
|
|
|
|
|
root.mainloop()
|
|
|
|
|
except Exception as e:
|
|
|
|
|
messagebox.showerror('Error', '''There was an error in the program, we're sorry.
|
|
|
|
|
Report Error: https://xiaomi69ai.wixsite.com/pyas
|
|
|
|
|
Report Error: https://pyantivirus.wixsite.com/pyas
|
|
|
|
|
Error Info: '''+str(e))
|
|
|
|
|
else:
|
|
|
|
|
windll.shell32.ShellExecuteW(None, "runas", sys.executable, __file__, None, 1)
|
|
|
|
@@ -1753,11 +1887,16 @@ def pyas_protect_init_zh():
|
|
|
|
|
pygame.mixer.music.load('Library/PYAS/Audio/Virusfound.ogg')
|
|
|
|
|
pygame.mixer.music.play()
|
|
|
|
|
else:
|
|
|
|
|
pyas_clear()
|
|
|
|
|
textPad.insert("insert", '惡意軟體攔截失敗: '+str(p.name()))
|
|
|
|
|
try:
|
|
|
|
|
os.remove(str(p.exe()))
|
|
|
|
|
except:
|
|
|
|
|
pass
|
|
|
|
|
except:
|
|
|
|
|
pass
|
|
|
|
|
except:
|
|
|
|
|
pass
|
|
|
|
|
continue
|
|
|
|
|
|
|
|
|
|
####################################################################################
|
|
|
|
|
|
|
|
|
@@ -1832,7 +1971,7 @@ def pyas_scan_answer_zh():
|
|
|
|
|
#定義更新選項
|
|
|
|
|
def software_update_zh():
|
|
|
|
|
pyas_clear()
|
|
|
|
|
webbrowser.open('https://xiaomi69ai.wixsite.com/pyas')
|
|
|
|
|
webbrowser.open('https://pyantivirus.wixsite.com/pyas')
|
|
|
|
|
|
|
|
|
|
def engine_update_zh():
|
|
|
|
|
if messagebox.askokcancel('Warning','更新掃毒引擎需要花費一些時間,是否繼續?', default="cancel", icon="warning"):
|
|
|
|
@@ -1921,6 +2060,7 @@ def pyas_file_scan_zh():
|
|
|
|
|
root.update()
|
|
|
|
|
if str(function.name) in rfn:
|
|
|
|
|
fts = fts + 1
|
|
|
|
|
PE.close(pe)
|
|
|
|
|
if fts != 0:
|
|
|
|
|
pyas_scan_write_zh(file)
|
|
|
|
|
fts = 0
|
|
|
|
@@ -1992,6 +2132,7 @@ def pyas_scan_path_zh(path,rfp,rfn,fts):
|
|
|
|
|
root.update()
|
|
|
|
|
if str(function.name) in rfn:
|
|
|
|
|
fts = fts + 1
|
|
|
|
|
PE.close(pe)
|
|
|
|
|
if fts != 0:
|
|
|
|
|
pyas_scan_write_zh(str(fullpath))
|
|
|
|
|
fts = 0
|
|
|
|
@@ -2155,6 +2296,32 @@ def exe_analyze_md5_zh():
|
|
|
|
|
pyas_clear()
|
|
|
|
|
textPad.insert("insert", none_file_zh+'\n')
|
|
|
|
|
|
|
|
|
|
def exe_analyze_sha1_zh():
|
|
|
|
|
pyas_clear()
|
|
|
|
|
file = filedialog.askopenfilename()
|
|
|
|
|
if file != '':
|
|
|
|
|
with open(file,"rb") as f:
|
|
|
|
|
bytes = f.read()
|
|
|
|
|
readable_hash = sha1(bytes).hexdigest();
|
|
|
|
|
textPad.insert("insert", 'SHA1: '+str(readable_hash))
|
|
|
|
|
f.close()
|
|
|
|
|
else:
|
|
|
|
|
pyas_clear()
|
|
|
|
|
textPad.insert("insert", none_file_zh+'\n')
|
|
|
|
|
|
|
|
|
|
def exe_analyze_sha256_zh():
|
|
|
|
|
pyas_clear()
|
|
|
|
|
file = filedialog.askopenfilename()
|
|
|
|
|
if file != '':
|
|
|
|
|
with open(file,"rb") as f:
|
|
|
|
|
bytes = f.read()
|
|
|
|
|
readable_hash = sha256(bytes).hexdigest();
|
|
|
|
|
textPad.insert("insert", 'SHA256: '+str(readable_hash))
|
|
|
|
|
f.close()
|
|
|
|
|
else:
|
|
|
|
|
pyas_clear()
|
|
|
|
|
textPad.insert("insert", none_file_zh+'\n')
|
|
|
|
|
|
|
|
|
|
def exe_analyze_file_zh():
|
|
|
|
|
pyas_clear()
|
|
|
|
|
file = filedialog.askopenfilename()
|
|
|
|
@@ -2163,6 +2330,7 @@ def exe_analyze_file_zh():
|
|
|
|
|
for section in pe.sections:
|
|
|
|
|
root.update()
|
|
|
|
|
textPad.insert("insert", section.Name, hex(section.VirtualAddress),hex(section.Misc_VirtualSize), section.SizeOfRawData)
|
|
|
|
|
PE.close(pe)
|
|
|
|
|
else:
|
|
|
|
|
pyas_clear()
|
|
|
|
|
textPad.insert("insert", none_file_zh+'\n')
|
|
|
|
@@ -2176,6 +2344,7 @@ def exe_analyze_function_zh():
|
|
|
|
|
for function in entry.imports:
|
|
|
|
|
root.update()
|
|
|
|
|
textPad.insert("insert", str(function.name)+'\n')
|
|
|
|
|
PE.close(pe)
|
|
|
|
|
else:
|
|
|
|
|
pyas_clear()
|
|
|
|
|
textPad.insert("insert", none_file_zh+'\n')
|
|
|
|
@@ -2271,6 +2440,7 @@ def find_files_init_zh():
|
|
|
|
|
def find_files_info_zh(ffile):
|
|
|
|
|
try:
|
|
|
|
|
fss = 0
|
|
|
|
|
start = 0
|
|
|
|
|
findfile_zh('A:/',ffile,fss,start)
|
|
|
|
|
findfile_zh('B:/',ffile,fss,start)
|
|
|
|
|
findfile_zh('C:/',ffile,fss,start)
|
|
|
|
@@ -2300,8 +2470,11 @@ def find_files_info_zh(ffile):
|
|
|
|
|
ft = open('Library/PYAS/Temp/PYASF.tmp','r',encoding='utf-8')
|
|
|
|
|
fe = ft.read()
|
|
|
|
|
ft.close()
|
|
|
|
|
ft = open('Library/PYAS/Temp/PYASF.tmp','r',encoding='utf-8')
|
|
|
|
|
lines = len(ft.readlines())
|
|
|
|
|
ft.close()
|
|
|
|
|
pyas_clear()
|
|
|
|
|
textPad.insert("insert", '''尋找結果:\n'''+pyas_divider+'\n'+str(fe))
|
|
|
|
|
textPad.insert("insert", '尋找結果: ('+str(int(lines/3))+' 項)\n'+pyas_divider+'\n'+str(fe))
|
|
|
|
|
os.remove('Library/PYAS/Temp/PYASF.tmp')
|
|
|
|
|
except:
|
|
|
|
|
pass
|
|
|
|
@@ -2565,7 +2738,7 @@ def system_disk_clean_zh():
|
|
|
|
|
pyas_clear()
|
|
|
|
|
textPad.insert("insert",zh_app_use)
|
|
|
|
|
root.update()
|
|
|
|
|
os.system('cleanmgr /autoclean')
|
|
|
|
|
os.system('cleanmgr')
|
|
|
|
|
pyas_clear()
|
|
|
|
|
|
|
|
|
|
def change_user_password_init_zh():
|
|
|
|
@@ -3078,6 +3251,54 @@ def fixlimit_zh():
|
|
|
|
|
pyas_clear()
|
|
|
|
|
textPad.insert("insert", zh_failed+'\n'+pyas_divider+'\n'+str(e))
|
|
|
|
|
|
|
|
|
|
def open_cmd_zh():
|
|
|
|
|
pyas_clear()
|
|
|
|
|
textPad.insert("insert",zh_app_use)
|
|
|
|
|
root.update()
|
|
|
|
|
run = subprocess.call('start cmd.exe',shell=True)
|
|
|
|
|
if run == 0:
|
|
|
|
|
pyas_clear()
|
|
|
|
|
textPad.insert("insert", zh_success)
|
|
|
|
|
else:
|
|
|
|
|
pyas_clear()
|
|
|
|
|
textPad.insert("insert", zh_failed)
|
|
|
|
|
|
|
|
|
|
def open_regedit_zh():
|
|
|
|
|
pyas_clear()
|
|
|
|
|
textPad.insert("insert",zh_app_use)
|
|
|
|
|
root.update()
|
|
|
|
|
run = subprocess.call('regedit.exe',shell=True)
|
|
|
|
|
if run == 0:
|
|
|
|
|
pyas_clear()
|
|
|
|
|
textPad.insert("insert", zh_success)
|
|
|
|
|
else:
|
|
|
|
|
pyas_clear()
|
|
|
|
|
textPad.insert("insert", zh_failed)
|
|
|
|
|
|
|
|
|
|
def open_taskmgr_zh():
|
|
|
|
|
pyas_clear()
|
|
|
|
|
textPad.insert("insert",zh_app_use)
|
|
|
|
|
root.update()
|
|
|
|
|
run = subprocess.call('taskmgr.exe',shell=True)
|
|
|
|
|
if run == 0:
|
|
|
|
|
pyas_clear()
|
|
|
|
|
textPad.insert("insert", zh_success)
|
|
|
|
|
else:
|
|
|
|
|
pyas_clear()
|
|
|
|
|
textPad.insert("insert", zh_failed)
|
|
|
|
|
|
|
|
|
|
def open_powershell_zh():
|
|
|
|
|
pyas_clear()
|
|
|
|
|
textPad.insert("insert",zh_app_use)
|
|
|
|
|
root.update()
|
|
|
|
|
run = subprocess.call('start powershell.exe',shell=True)
|
|
|
|
|
if run == 0:
|
|
|
|
|
pyas_clear()
|
|
|
|
|
textPad.insert("insert", zh_success)
|
|
|
|
|
else:
|
|
|
|
|
pyas_clear()
|
|
|
|
|
textPad.insert("insert", zh_failed)
|
|
|
|
|
|
|
|
|
|
################################################################################
|
|
|
|
|
|
|
|
|
|
#關於
|
|
|
|
@@ -3102,7 +3323,7 @@ def about_pyas_zh():
|
|
|
|
|
開發人員: PYAS_Dev#0629 , Mtkiao129#3921 , Dragon#5381
|
|
|
|
|
官方郵箱: [email protected]
|
|
|
|
|
官方GIT: https://github.com/87owo/PYAS
|
|
|
|
|
官方網站: https://xiaomi69ai.wixsite.com/pyas
|
|
|
|
|
官方網站: https://pyantivirus.wixsite.com/pyas
|
|
|
|
|
創立日期: 2020/12/17
|
|
|
|
|
PYAS 版本: '''+pyas_version+'''
|
|
|
|
|
PYAE 版本: '''+pyae_version+'''
|
|
|
|
@@ -3127,7 +3348,7 @@ PYAE 版本: '''+pyae_version+'''
|
|
|
|
|
er = open('.\Library\PYAS\Temp\PYASE.tmp','w')
|
|
|
|
|
er.write(str(dev_edition_times + 1))
|
|
|
|
|
er.close()
|
|
|
|
|
messagebox.showinfo('Copyright','''官方網站: https://xiaomi69ai.wixsite.com/pyas
|
|
|
|
|
messagebox.showinfo('Copyright','''官方網站: https://pyantivirus.wixsite.com/pyas
|
|
|
|
|
版權所有© 2020-2022 PYAS Python Antivirus Software''')
|
|
|
|
|
|
|
|
|
|
def software_version_zh():
|
|
|
|
@@ -3175,6 +3396,14 @@ def traditional_chinese():
|
|
|
|
|
sub2menu.add_command(label = '關閉安全模式',command = close_safe_Mode_zh)
|
|
|
|
|
sub2menu.add_separator()
|
|
|
|
|
sub2menu.add_command(label = '系統版本資訊',command = computer_info_zh)
|
|
|
|
|
sysapp = Menu(filemenu3,tearoff=False)###
|
|
|
|
|
filemenu3.add_cascade(label='系統程式', menu=sysapp, underline=0)
|
|
|
|
|
sysapp.add_command(label = '開啟工作管理員',command = open_taskmgr_zh)
|
|
|
|
|
sysapp.add_separator()
|
|
|
|
|
sysapp.add_command(label = '開啟登入編輯器',command = open_regedit_zh)
|
|
|
|
|
sysapp.add_separator()
|
|
|
|
|
sysapp.add_command(label = '開啟命令提示字元',command = open_cmd_zh)
|
|
|
|
|
sysapp.add_command(label = '開啟 PowerShell',command = open_powershell_zh)###
|
|
|
|
|
insmenu = Menu(filemenu3,tearoff=False)
|
|
|
|
|
filemenu3.add_cascade(label='隱私工具', menu=insmenu, underline=0)
|
|
|
|
|
insmenu.add_command(label = '相機隱私檢測',command = camera_check_zh)
|
|
|
|
@@ -3195,14 +3424,17 @@ def traditional_chinese():
|
|
|
|
|
submenu.add_command(label = '重製系統網路',command = reset_network_zh)
|
|
|
|
|
devmenu = Menu(filemenu3,tearoff=False)
|
|
|
|
|
filemenu3.add_cascade(label='開發工具', menu=devmenu, underline=0)
|
|
|
|
|
devmenu.add_command(label = '線上檔案分析',command = input_virustotal_scan_zh)
|
|
|
|
|
devmenu.add_separator()
|
|
|
|
|
devmenu.add_command(label = '自訂 REG 指令',command = input_custom_regedit_command_zh)
|
|
|
|
|
devmenu.add_command(label = '自訂 CMD 指令',command = input_custom_cmd_command_zh)
|
|
|
|
|
devmenu.add_separator()
|
|
|
|
|
devmenu.add_command(label = '分析 EXE 哈希',command = exe_analyze_md5_zh)
|
|
|
|
|
devmenu.add_command(label = '分析 EXE 位元',command = exe_analyze_file_zh)
|
|
|
|
|
devmenu.add_command(label = '分析 EXE 函數',command = exe_analyze_function_zh)
|
|
|
|
|
devmenu.add_separator()
|
|
|
|
|
devmenu.add_command(label = '線上檔案分析',command = input_virustotal_scan_zh)
|
|
|
|
|
devmenu.add_command(label = '分析 EXE MD5 哈希',command = exe_analyze_md5_zh)
|
|
|
|
|
devmenu.add_command(label = '分析 EXE SHA1 哈希',command = exe_analyze_sha1_zh)
|
|
|
|
|
devmenu.add_command(label = '分析 EXE SHA256 哈希',command = exe_analyze_sha256_zh)
|
|
|
|
|
filemenu5 = Menu(menubar,tearoff=False)
|
|
|
|
|
menubar.add_cascade(label = '設置',menu = filemenu5)
|
|
|
|
|
sitmenu = Menu(filemenu5,tearoff=False)
|
|
|
|
@@ -3233,7 +3465,7 @@ def traditional_chinese():
|
|
|
|
|
root.mainloop()
|
|
|
|
|
except Exception as e:
|
|
|
|
|
messagebox.showerror('Error', '''此軟體出現了一些問題,我們感到很抱歉。
|
|
|
|
|
回報錯誤: https://xiaomi69ai.wixsite.com/pyas
|
|
|
|
|
回報錯誤: https://pyantivirus.wixsite.com/pyas
|
|
|
|
|
錯誤資訊: '''+str(e))
|
|
|
|
|
else:
|
|
|
|
|
windll.shell32.ShellExecuteW(None, "runas", sys.executable, __file__, None, 1)
|
|
|
|
@@ -3279,11 +3511,16 @@ def pyas_protect_init_cn():
|
|
|
|
|
pygame.mixer.music.load('Library/PYAS/Audio/Virusfound.ogg')
|
|
|
|
|
pygame.mixer.music.play()
|
|
|
|
|
else:
|
|
|
|
|
pyas_clear()
|
|
|
|
|
textPad.insert("insert", '恶意软件拦截失败: '+str(p.name()))
|
|
|
|
|
try:
|
|
|
|
|
os.remove(str(p.exe()))
|
|
|
|
|
except:
|
|
|
|
|
pass
|
|
|
|
|
except:
|
|
|
|
|
pass
|
|
|
|
|
except:
|
|
|
|
|
pass
|
|
|
|
|
continue
|
|
|
|
|
|
|
|
|
|
####################################################################################
|
|
|
|
|
|
|
|
|
@@ -3358,7 +3595,7 @@ def pyas_scan_answer_cn():
|
|
|
|
|
#定義更新選項
|
|
|
|
|
def software_update_cn():
|
|
|
|
|
pyas_clear()
|
|
|
|
|
webbrowser.open('https://xiaomi69ai.wixsite.com/pyas')
|
|
|
|
|
webbrowser.open('https://pyantivirus.wixsite.com/pyas')
|
|
|
|
|
|
|
|
|
|
def engine_update_cn():
|
|
|
|
|
if messagebox.askokcancel('Warning','更新扫毒引擎需要花费一些时间,是否继续?', default="cancel", icon="warning"):
|
|
|
|
@@ -3447,6 +3684,7 @@ def pyas_file_scan_cn():
|
|
|
|
|
root.update()
|
|
|
|
|
if str(function.name) in rfn:
|
|
|
|
|
fts = fts + 1
|
|
|
|
|
PE.close(pe)
|
|
|
|
|
if fts != 0:
|
|
|
|
|
pyas_scan_write_cn(file)
|
|
|
|
|
fts = 0
|
|
|
|
@@ -3518,6 +3756,7 @@ def pyas_scan_path_cn(path,rfp,rfn,fts):
|
|
|
|
|
root.update()
|
|
|
|
|
if str(function.name) in rfn:
|
|
|
|
|
fts = fts + 1
|
|
|
|
|
PE.close(pe)
|
|
|
|
|
if fts != 0:
|
|
|
|
|
pyas_scan_write_cn(str(fullpath))
|
|
|
|
|
fts = 0
|
|
|
|
@@ -3681,6 +3920,32 @@ def exe_analyze_md5_cn():
|
|
|
|
|
pyas_clear()
|
|
|
|
|
textPad.insert("insert", none_file_cn+'\n')
|
|
|
|
|
|
|
|
|
|
def exe_analyze_sha1_cn():
|
|
|
|
|
pyas_clear()
|
|
|
|
|
file = filedialog.askopenfilename()
|
|
|
|
|
if file != '':
|
|
|
|
|
with open(file,"rb") as f:
|
|
|
|
|
bytes = f.read()
|
|
|
|
|
readable_hash = sha1(bytes).hexdigest();
|
|
|
|
|
textPad.insert("insert", 'SHA1: '+str(readable_hash))
|
|
|
|
|
f.close()
|
|
|
|
|
else:
|
|
|
|
|
pyas_clear()
|
|
|
|
|
textPad.insert("insert", none_file_cn+'\n')
|
|
|
|
|
|
|
|
|
|
def exe_analyze_sha256_cn():
|
|
|
|
|
pyas_clear()
|
|
|
|
|
file = filedialog.askopenfilename()
|
|
|
|
|
if file != '':
|
|
|
|
|
with open(file,"rb") as f:
|
|
|
|
|
bytes = f.read()
|
|
|
|
|
readable_hash = sha256(bytes).hexdigest();
|
|
|
|
|
textPad.insert("insert", 'SHA256: '+str(readable_hash))
|
|
|
|
|
f.close()
|
|
|
|
|
else:
|
|
|
|
|
pyas_clear()
|
|
|
|
|
textPad.insert("insert", none_file_cn+'\n')
|
|
|
|
|
|
|
|
|
|
def exe_analyze_file_cn():
|
|
|
|
|
pyas_clear()
|
|
|
|
|
file = filedialog.askopenfilename()
|
|
|
|
@@ -3689,6 +3954,7 @@ def exe_analyze_file_cn():
|
|
|
|
|
for section in pe.sections:
|
|
|
|
|
root.update()
|
|
|
|
|
textPad.insert("insert", section.Name, hex(section.VirtualAddress),hex(section.Misc_VirtualSize), section.SizeOfRawData)
|
|
|
|
|
PE.close(pe)
|
|
|
|
|
else:
|
|
|
|
|
pyas_clear()
|
|
|
|
|
textPad.insert("insert", none_file_cn+'\n')
|
|
|
|
@@ -3702,6 +3968,7 @@ def exe_analyze_function_cn():
|
|
|
|
|
for function in entry.imports:
|
|
|
|
|
root.update()
|
|
|
|
|
textPad.insert("insert", str(function.name)+'\n')
|
|
|
|
|
PE.close(pe)
|
|
|
|
|
else:
|
|
|
|
|
pyas_clear()
|
|
|
|
|
textPad.insert("insert", none_file_cn+'\n')
|
|
|
|
@@ -3797,6 +4064,7 @@ def find_files_init_cn():
|
|
|
|
|
def find_files_info_cn(ffile):
|
|
|
|
|
try:
|
|
|
|
|
fss = 0
|
|
|
|
|
start = 0
|
|
|
|
|
findfile_cn('A:/',ffile,fss,start)
|
|
|
|
|
findfile_cn('B:/',ffile,fss,start)
|
|
|
|
|
findfile_cn('C:/',ffile,fss,start)
|
|
|
|
@@ -3826,8 +4094,11 @@ def find_files_info_cn(ffile):
|
|
|
|
|
ft = open('Library/PYAS/Temp/PYASF.tmp','r',encoding='utf-8')
|
|
|
|
|
fe = ft.read()
|
|
|
|
|
ft.close()
|
|
|
|
|
ft = open('Library/PYAS/Temp/PYASF.tmp','r',encoding='utf-8')
|
|
|
|
|
lines = len(ft.readlines())
|
|
|
|
|
ft.close()
|
|
|
|
|
pyas_clear()
|
|
|
|
|
textPad.insert("insert", '''寻找结果:\n'''+pyas_divider+'\n'+str(fe))
|
|
|
|
|
textPad.insert("insert", '寻找结果: ('+str(int(lines/3))+' 项)\n'+pyas_divider+'\n'+str(fe))
|
|
|
|
|
os.remove('Library/PYAS/Temp/PYASF.tmp')
|
|
|
|
|
except:
|
|
|
|
|
pass
|
|
|
|
@@ -4091,7 +4362,7 @@ def system_disk_clean_cn():
|
|
|
|
|
pyas_clear()
|
|
|
|
|
textPad.insert("insert",cn_app_use)
|
|
|
|
|
root.update()
|
|
|
|
|
os.system('cleanmgr /autoclean')
|
|
|
|
|
os.system('cleanmgr')
|
|
|
|
|
pyas_clear()
|
|
|
|
|
|
|
|
|
|
def change_user_password_init_cn():
|
|
|
|
@@ -4604,6 +4875,54 @@ def fixlimit_cn():
|
|
|
|
|
pyas_clear()
|
|
|
|
|
textPad.insert("insert", cn_failed+'\n'+pyas_divider+'\n'+str(e))
|
|
|
|
|
|
|
|
|
|
def open_cmd_cn():
|
|
|
|
|
pyas_clear()
|
|
|
|
|
textPad.insert("insert",cn_app_use)
|
|
|
|
|
root.update()
|
|
|
|
|
run = subprocess.call('start cmd.exe',shell=True)
|
|
|
|
|
if run == 0:
|
|
|
|
|
pyas_clear()
|
|
|
|
|
textPad.insert("insert", cn_success)
|
|
|
|
|
else:
|
|
|
|
|
pyas_clear()
|
|
|
|
|
textPad.insert("insert", cn_failed)
|
|
|
|
|
|
|
|
|
|
def open_regedit_cn():
|
|
|
|
|
pyas_clear()
|
|
|
|
|
textPad.insert("insert",cn_app_use)
|
|
|
|
|
root.update()
|
|
|
|
|
run = subprocess.call('regedit.exe',shell=True)
|
|
|
|
|
if run == 0:
|
|
|
|
|
pyas_clear()
|
|
|
|
|
textPad.insert("insert", cn_success)
|
|
|
|
|
else:
|
|
|
|
|
pyas_clear()
|
|
|
|
|
textPad.insert("insert", cn_failed)
|
|
|
|
|
|
|
|
|
|
def open_taskmgr_cn():
|
|
|
|
|
pyas_clear()
|
|
|
|
|
textPad.insert("insert",cn_app_use)
|
|
|
|
|
root.update()
|
|
|
|
|
run = subprocess.call('taskmgr.exe',shell=True)
|
|
|
|
|
if run == 0:
|
|
|
|
|
pyas_clear()
|
|
|
|
|
textPad.insert("insert", cn_success)
|
|
|
|
|
else:
|
|
|
|
|
pyas_clear()
|
|
|
|
|
textPad.insert("insert", cn_failed)
|
|
|
|
|
|
|
|
|
|
def open_powershell_cn():
|
|
|
|
|
pyas_clear()
|
|
|
|
|
textPad.insert("insert",cn_app_use)
|
|
|
|
|
root.update()
|
|
|
|
|
run = subprocess.call('start powershell.exe',shell=True)
|
|
|
|
|
if run == 0:
|
|
|
|
|
pyas_clear()
|
|
|
|
|
textPad.insert("insert", cn_success)
|
|
|
|
|
else:
|
|
|
|
|
pyas_clear()
|
|
|
|
|
textPad.insert("insert", cn_failed)
|
|
|
|
|
|
|
|
|
|
################################################################################
|
|
|
|
|
|
|
|
|
|
#關於
|
|
|
|
@@ -4628,7 +4947,7 @@ def about_pyas_cn():
|
|
|
|
|
开发人员: PYAS_Dev#0629 , Mtkiao129#3921 , Dragon#5381
|
|
|
|
|
官方邮箱: [email protected]
|
|
|
|
|
官方GIT: https://github.com/87owo/PYAS
|
|
|
|
|
官方网站: https://xiaomi69ai.wixsite.com/pyas
|
|
|
|
|
官方网站: https://pyantivirus.wixsite.com/pyas
|
|
|
|
|
创立日期: 2020/12/17
|
|
|
|
|
PYAS 版本: '''+pyas_version+'''
|
|
|
|
|
PYAE 版本: '''+pyae_version+'''
|
|
|
|
@@ -4653,7 +4972,7 @@ PYAE 版本: '''+pyae_version+'''
|
|
|
|
|
er = open('.\Library\PYAS\Temp\PYASE.tmp','w')
|
|
|
|
|
er.write(str(dev_edition_times + 1))
|
|
|
|
|
er.close()
|
|
|
|
|
messagebox.showinfo('Copyright','''官方网站: https://xiaomi69ai.wixsite.com/pyas
|
|
|
|
|
messagebox.showinfo('Copyright','''官方网站: https://pyantivirus.wixsite.com/pyas
|
|
|
|
|
版权所有© 2020-2022 PYAS Python Antivirus Software''')
|
|
|
|
|
|
|
|
|
|
def software_version_cn():
|
|
|
|
@@ -4700,6 +5019,14 @@ def simplified_chinese():
|
|
|
|
|
sub2menu.add_command(label = '关闭安全模式',command = close_safe_Mode_cn)
|
|
|
|
|
sub2menu.add_separator()
|
|
|
|
|
sub2menu.add_command(label = '系统版本资讯',command = computer_info_cn)
|
|
|
|
|
sysapp = Menu(filemenu3,tearoff=False)###
|
|
|
|
|
filemenu3.add_cascade(label='系统应用', menu=sysapp, underline=0)
|
|
|
|
|
sysapp.add_command(label = '开启工作管理员',command = open_taskmgr_cn)
|
|
|
|
|
sysapp.add_separator()
|
|
|
|
|
sysapp.add_command(label = '开启注册表编辑器',command = open_regedit_cn)
|
|
|
|
|
sysapp.add_separator()
|
|
|
|
|
sysapp.add_command(label = '开启命令提示字符',command = open_cmd_cn)
|
|
|
|
|
sysapp.add_command(label = '开启 PowerShell',command = open_powershell_cn)###
|
|
|
|
|
insmenu = Menu(filemenu3,tearoff=False)
|
|
|
|
|
filemenu3.add_cascade(label='隐私工具', menu=insmenu, underline=0)
|
|
|
|
|
insmenu.add_command(label = '相机隐私检测',command = camera_check_cn)
|
|
|
|
@@ -4720,14 +5047,17 @@ def simplified_chinese():
|
|
|
|
|
submenu.add_command(label = '重制系统网络',command = reset_network_cn)
|
|
|
|
|
devmenu = Menu(filemenu3,tearoff=False)
|
|
|
|
|
filemenu3.add_cascade(label='开发工具', menu=devmenu, underline=0)
|
|
|
|
|
devmenu.add_command(label = '在线挡案分析',command = input_virustotal_scan_cn)
|
|
|
|
|
devmenu.add_separator()
|
|
|
|
|
devmenu.add_command(label = '自订 REG 指令',command = input_custom_regedit_command_cn)
|
|
|
|
|
devmenu.add_command(label = '自订 CMD 指令',command = input_custom_cmd_command_cn)
|
|
|
|
|
devmenu.add_separator()
|
|
|
|
|
devmenu.add_command(label = '分析 EXE 哈希',command = exe_analyze_md5_cn)
|
|
|
|
|
devmenu.add_command(label = '分析 EXE 位元',command = exe_analyze_file_cn)
|
|
|
|
|
devmenu.add_command(label = '分析 EXE 函数',command = exe_analyze_function_cn)
|
|
|
|
|
devmenu.add_separator()
|
|
|
|
|
devmenu.add_command(label = '在线挡案分析',command = input_virustotal_scan_cn)
|
|
|
|
|
devmenu.add_command(label = '分析 EXE MD5 哈希',command = exe_analyze_md5_cn)
|
|
|
|
|
devmenu.add_command(label = '分析 EXE SHA1 哈希',command = exe_analyze_sha1_cn)
|
|
|
|
|
devmenu.add_command(label = '分析 EXE SHA256 哈希',command = exe_analyze_sha256_cn)
|
|
|
|
|
filemenu5 = Menu(menubar,tearoff=False)
|
|
|
|
|
menubar.add_cascade(label = '设置',menu = filemenu5)
|
|
|
|
|
sitmenu = Menu(filemenu5,tearoff=False)
|
|
|
|
@@ -4758,7 +5088,7 @@ def simplified_chinese():
|
|
|
|
|
root.mainloop()
|
|
|
|
|
except Exception as e:
|
|
|
|
|
messagebox.showerror('Error', '''此软件出现了一些问题,我们感到很抱歉。
|
|
|
|
|
回报错误: https://xiaomi69ai.wixsite.com/pyas
|
|
|
|
|
回报错误: https://pyantivirus.wixsite.com/pyas
|
|
|
|
|
错误资讯: '''+str(e))
|
|
|
|
|
else:
|
|
|
|
|
windll.shell32.ShellExecuteW(None, "runas", sys.executable, __file__, None, 1)
|
|
|
|
@@ -4779,10 +5109,10 @@ def pyas_key():
|
|
|
|
|
setup_pyas()
|
|
|
|
|
else:
|
|
|
|
|
messagebox.showerror('Error', '''The PYAS antivirus software you are using is not genuine. To ensure your safety, please download genuine antivirus software from the
|
|
|
|
|
Official website: https://xiaomi69ai.wixsite.com/pyas''')
|
|
|
|
|
Official website: https://pyantivirus.wixsite.com/pyas''')
|
|
|
|
|
except:
|
|
|
|
|
messagebox.showerror('Error', '''The PYAS antivirus software you are using is not genuine. To ensure your safety, please download genuine antivirus software from the
|
|
|
|
|
Official website: https://xiaomi69ai.wixsite.com/pyas''')
|
|
|
|
|
Official website: https://pyantivirus.wixsite.com/pyas''')
|
|
|
|
|
|
|
|
|
|
####################################################################################
|
|
|
|
|
|
|
|
|
|