Compare commits
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
d571a18f7b | ||
|
|
2233f3a8f2 | ||
|
|
2895be61be | ||
|
|
8a79bc9510 | ||
|
|
f6be201e66 | ||
|
|
974dd9b519 | ||
|
|
939f943580 | ||
|
|
c12a1ef16d | ||
|
|
c51173651e | ||
|
|
96a2a93c8c | ||
|
|
794baab0c9 | ||
|
|
0ac7b80eae | ||
|
|
6795d1c6a4 | ||
|
|
d9eac56f1b | ||
|
|
325e5cda21 | ||
|
|
a8f8a8ddb4 | ||
|
|
3507802eb9 | ||
|
|
9588bdb7cc | ||
|
|
97ca2dcc79 | ||
|
|
44df3e9344 | ||
|
|
668c12bac7 | ||
|
|
f843bf7c08 | ||
|
|
8262ff21a4 | ||
|
|
d93406339f | ||
|
|
4f9adabb06 | ||
|
|
68d12c0368 | ||
|
|
56e64619fa | ||
|
|
87162c00c9 | ||
|
|
ae4cfa4f7c | ||
|
|
f21fbc8c10 | ||
|
|
5ee0c4bb34 |
No files matched your search
-177
@@ -1,177 +0,0 @@
|
|||||||
import hashlib
|
|
||||||
import os
|
|
||||||
from functools import partial
|
|
||||||
import json
|
|
||||||
import zipfile
|
|
||||||
|
|
||||||
def md5_file():
|
|
||||||
for i in range(410):
|
|
||||||
x = 5 - len(str(i))
|
|
||||||
y = '0'*x+str(i)
|
|
||||||
bytes = zipfile.ZipFile('Library/MD5.zip', 'r').read(str(y)+'.md5')
|
|
||||||
|
|
||||||
|
|
||||||
#def pyae_scan():
|
|
||||||
|
|
||||||
def scan_sha256(file):
|
|
||||||
try:
|
|
||||||
virus_found = False
|
|
||||||
with open(file,"rb") as f:
|
|
||||||
bytes = f.read()
|
|
||||||
readable_hash = hashlib.sha256(bytes).hexdigest();
|
|
||||||
print("SHA256: " + readable_hash)
|
|
||||||
with open("Library/SHA256.txt",'r') as f:
|
|
||||||
lines = [line.rstrip() for line in f]
|
|
||||||
for line in lines:
|
|
||||||
if str(readable_hash) == str(line.split(";")[0]):
|
|
||||||
virus_found = True
|
|
||||||
f.close()
|
|
||||||
if not virus_found:
|
|
||||||
print("File is safe!")
|
|
||||||
return False
|
|
||||||
else:
|
|
||||||
return True
|
|
||||||
#print("Virus detected! File quarentined")
|
|
||||||
#os.remove(file)
|
|
||||||
except:
|
|
||||||
pass
|
|
||||||
|
|
||||||
def scan_md5(file):
|
|
||||||
#try:
|
|
||||||
virus_found = False
|
|
||||||
with open(file,"rb") as f:
|
|
||||||
bytes = f.read()
|
|
||||||
readable_hash = hashlib.md5(bytes).hexdigest();
|
|
||||||
#print("MD5: " + readable_hash)
|
|
||||||
for i in range(410):
|
|
||||||
x = 5 - len(str(i))
|
|
||||||
y = '0'*x+str(i)
|
|
||||||
with open('Library/MD5/'+str(y)+'.md5','r') as f:
|
|
||||||
#print(str(f))
|
|
||||||
lines = [line.rstrip() for line in f]
|
|
||||||
for line in lines:
|
|
||||||
if str(readable_hash) == str(line.split(";")[0]):
|
|
||||||
#print(str(f))
|
|
||||||
virus_found = True
|
|
||||||
f.close()
|
|
||||||
if not virus_found:
|
|
||||||
#print("File is safe!")
|
|
||||||
return False
|
|
||||||
else:
|
|
||||||
#print("Virus detected! File quarentined")
|
|
||||||
#os.remove(file)
|
|
||||||
return True
|
|
||||||
#except Exception as e:
|
|
||||||
# print(e)
|
|
||||||
|
|
||||||
|
|
||||||
def scan(file):
|
|
||||||
try:
|
|
||||||
virus_found = False
|
|
||||||
with open(file,"rb") as f:
|
|
||||||
bytes = f.read()
|
|
||||||
readable_hash = hashlib.sha1(bytes).hexdigest();
|
|
||||||
print("SHA1: " + readable_hash)
|
|
||||||
with open('Library/SHA1 HASHES.json', 'r') as f:
|
|
||||||
dataset = json.loads(f.read())
|
|
||||||
for index, item in enumerate(dataset["data"]):
|
|
||||||
if str(item['hash']) == str(readable_hash):
|
|
||||||
virus_found = True
|
|
||||||
f.close()
|
|
||||||
if not virus_found:
|
|
||||||
print("File is safe!")
|
|
||||||
return False
|
|
||||||
else:
|
|
||||||
#print("Virus detected! File quarentined")
|
|
||||||
#os.remove(file)
|
|
||||||
return True
|
|
||||||
except:
|
|
||||||
pass
|
|
||||||
|
|
||||||
def pyae_scan_full(filepath):
|
|
||||||
try:
|
|
||||||
fss = 0
|
|
||||||
start = time.time()
|
|
||||||
findfile('A:/',ffile,fss,start)
|
|
||||||
findfile('B:/',ffile,fss,start)
|
|
||||||
findfile('C:/',ffile,fss,start)
|
|
||||||
findfile('D:/',ffile,fss,start)
|
|
||||||
findfile('E:/',ffile,fss,start)
|
|
||||||
findfile('F:/',ffile,fss,start)
|
|
||||||
findfile('G:/',ffile,fss,start)
|
|
||||||
findfile('H:/',ffile,fss,start)
|
|
||||||
findfile('I:/',ffile,fss,start)
|
|
||||||
findfile('J:/',ffile,fss,start)
|
|
||||||
findfile('K:/',ffile,fss,start)
|
|
||||||
findfile('L:/',ffile,fss,start)
|
|
||||||
findfile('M:/',ffile,fss,start)
|
|
||||||
findfile('N:/',ffile,fss,start)
|
|
||||||
findfile('O:/',ffile,fss,start)
|
|
||||||
findfile('P:/',ffile,fss,start)
|
|
||||||
findfile('Q:/',ffile,fss,start)
|
|
||||||
findfile('R:/',ffile,fss,start)
|
|
||||||
findfile('S:/',ffile,fss,start)
|
|
||||||
findfile('T:/',ffile,fss,start)
|
|
||||||
findfile('U:/',ffile,fss,start)
|
|
||||||
findfile('V:/',ffile,fss,start)
|
|
||||||
findfile('W:/',ffile,fss,start)
|
|
||||||
findfile('X:/',ffile,fss,start)
|
|
||||||
findfile('Y:/',ffile,fss,start)
|
|
||||||
findfile('Z:/',ffile,fss,start)
|
|
||||||
end = time.time()
|
|
||||||
ft = open('PYASF.txt','r')
|
|
||||||
fe = ft.read()
|
|
||||||
ft.close()
|
|
||||||
textPad.insert("insert", '''
|
|
||||||
尋找結果: '''+'''
|
|
||||||
============================================================================
|
|
||||||
|
|
||||||
'''+str(fe)+'''============================================================================
|
|
||||||
總共耗時: '''+str(end - start)+''' 秒''')
|
|
||||||
os.remove('PYASF.txt')
|
|
||||||
except:
|
|
||||||
pass
|
|
||||||
|
|
||||||
def findfile(path,ffile,fss,start):
|
|
||||||
textPad.delete(1.0,END)
|
|
||||||
try:
|
|
||||||
textPad.insert("insert", '正在尋找: '+str(path))
|
|
||||||
for fd in os.listdir(path):
|
|
||||||
root.update()
|
|
||||||
fullpath = os.path.join(path,fd)
|
|
||||||
if os.path.isdir(fullpath):
|
|
||||||
#print('正在掃描: ',fullpath)
|
|
||||||
findfile(fullpath,ffile,fss,start)
|
|
||||||
else:
|
|
||||||
fss = fss + 1
|
|
||||||
if ffile in str(fd):
|
|
||||||
date = time.ctime(os.path.getmtime(fullpath))
|
|
||||||
#try:
|
|
||||||
#f = open(fullpath, 'r')
|
|
||||||
#text = f.readline()
|
|
||||||
#f.close()
|
|
||||||
#print('預覽內容: '+text)
|
|
||||||
#except:
|
|
||||||
#print('預覽內容: ✖錯誤,這個檔案不支援預覽')
|
|
||||||
ft = open('PYASF.txt','a')
|
|
||||||
ft.write('''找到檔案: '''+str(fullpath)+'''
|
|
||||||
建立日期: '''+str(date)+'''
|
|
||||||
|
|
||||||
''')
|
|
||||||
ft.close()
|
|
||||||
continue
|
|
||||||
except:
|
|
||||||
pass
|
|
||||||
|
|
||||||
#scan(filepath)
|
|
||||||
#scan_md5(filepath)
|
|
||||||
#scan_sha256(filepath)
|
|
||||||
#ed01ebfbc9eb5bbea545af4d01bf5f1071661840480439c6e5babe8e080e41aa.exe
|
|
||||||
def pyae_file_scan(file):
|
|
||||||
if scan_md5(file):
|
|
||||||
return True
|
|
||||||
else:
|
|
||||||
return False
|
|
||||||
|
|
||||||
#if scan(file) or scan_sha256(file) or scan_md5(file):
|
|
||||||
|
|
||||||
@@ -1,79 +0,0 @@
|
|||||||
at_list_winf = ['CreateFileW',
|
|
||||||
'DeleteFileW',
|
|
||||||
'FindExistFileW',
|
|
||||||
'FindNextFileW',
|
|
||||||
'ReadFile',
|
|
||||||
'WriteFile',
|
|
||||||
'MapViewOfFile',
|
|
||||||
'SetFilePointer',
|
|
||||||
'CreateDirectoryW',
|
|
||||||
'FindClose',
|
|
||||||
'SetWindowHookEx',
|
|
||||||
'ExitProcess',
|
|
||||||
'GetCurrentProcess',
|
|
||||||
'GetProcessHeap',
|
|
||||||
'OpenProcess',
|
|
||||||
'IsDebuggerPresent',
|
|
||||||
'CreateThread',
|
|
||||||
'GetCurrentThread',
|
|
||||||
'GetModuleHandleW',
|
|
||||||
'BeginDeferWindowPos',
|
|
||||||
'CreateDialogParaW',
|
|
||||||
'CreateWindowExW',
|
|
||||||
'GetWindowLongW',
|
|
||||||
'GetWindowRect',
|
|
||||||
'GetWindowTextW',
|
|
||||||
'InvalidRect',
|
|
||||||
'SetWindowTextW',
|
|
||||||
'ShowWindow',
|
|
||||||
'RegisterClassExW',
|
|
||||||
'RegisterHotKey',
|
|
||||||
'RegOpenKeyExW',
|
|
||||||
'RegOpenCurrentUser',
|
|
||||||
'RegSetValueExW',
|
|
||||||
'MessageBoxW']
|
|
||||||
|
|
||||||
ai_list_file = ['CreateFileW'
|
|
||||||
'DeleteFileW'
|
|
||||||
'FindExistFileW'
|
|
||||||
'FindNextFileW'
|
|
||||||
'ReadFile'
|
|
||||||
'WriteFile'
|
|
||||||
'MapViewOfFile'
|
|
||||||
'SetFilePointer'
|
|
||||||
'CreateDirectoryW'
|
|
||||||
'FindClose'
|
|
||||||
'GetModuleHandleW']
|
|
||||||
|
|
||||||
ai_list_process = ['ExitProcess',
|
|
||||||
'GetCurrentProcess',
|
|
||||||
'GetProcessHeap',
|
|
||||||
'OpenProcess']
|
|
||||||
|
|
||||||
ai_list_Antidebug = ['IsDebuggerPresent']
|
|
||||||
|
|
||||||
ai_list_thread = ['CreateThread',
|
|
||||||
'GetCurrentThread']
|
|
||||||
|
|
||||||
ai_list_windows = ['MessageBoxW',
|
|
||||||
'BeginDeferWindowPos',
|
|
||||||
'CreateDialogParaW',
|
|
||||||
'CreateWindowExW',
|
|
||||||
'GetWindowLongW',
|
|
||||||
'GetWindowRect',
|
|
||||||
'GetWindowTextW',
|
|
||||||
'InvalidRect'
|
|
||||||
'SetWindowTextW'
|
|
||||||
'ShowWindow']
|
|
||||||
|
|
||||||
ai_list_regkey = ['RegisterClassExW'
|
|
||||||
'RegisterHotKey',
|
|
||||||
'RegOpenKeyExW',
|
|
||||||
'RegOpenCurrentUser',
|
|
||||||
'RegSetValueExW']
|
|
||||||
|
|
||||||
ai_list_hook = ['SetWindowHookEx']
|
|
||||||
|
|
||||||
at = 34
|
|
||||||
t = 35
|
|
||||||
ti = 35
|
|
||||||
+113
@@ -0,0 +1,113 @@
|
|||||||
|
english_list = {
|
||||||
|
"已開啟":"On",
|
||||||
|
"已關閉":"Off",
|
||||||
|
"已开启":"On",
|
||||||
|
"已关闭":"Off",
|
||||||
|
"✔成功: 已執行成功。":"✔Success: Executed successfully.",
|
||||||
|
"這台電腦目前很安全":"This computer is currently safe",
|
||||||
|
"✖錯誤: 執行失敗。":"✖Error: Execution failed.",
|
||||||
|
" > [病毒掃描] 掃描出":" > [virus scan] scan out ",
|
||||||
|
"個病毒":" Virus",
|
||||||
|
"這台電腦目前不安全":"This computer is currently unsafe",
|
||||||
|
"✖當前已發現惡意軟體共{}項。":"✖A total of {} items of malware have been found so far.",
|
||||||
|
'✔當前未發現惡意軟體。':'✔ No malware currently found.',
|
||||||
|
'正在掃描:':'Scanning:',
|
||||||
|
"病毒掃描":"Virus scan",
|
||||||
|
"正在初始化中,請稍後...":"Initializing, please wait...",
|
||||||
|
"✖當前已發現惡意軟體。":"✖Malware has currently been detected.",
|
||||||
|
"✖掃描失敗。":"✖Scan failed.",
|
||||||
|
"請選擇掃描方式":"Please select a scan method",
|
||||||
|
"您確定要修復系統權限嗎?":"Are you sure you want to fix system permissions?",
|
||||||
|
"修復完成!":"Repair complete!",
|
||||||
|
"完成":'Finish',
|
||||||
|
"您確定要修復系統檔案嗎?":"Are you sure you want to repair the system files?",
|
||||||
|
"修復系統檔案":'Repair System Files',
|
||||||
|
"錯誤":"error",
|
||||||
|
"修復失敗":"Repair failed",
|
||||||
|
'清理系統檔案':'Clean up system files',
|
||||||
|
"您確定要清理系統檔案嗎?":"Are you sure you want to clean the system files?",
|
||||||
|
"清理完成":"Cleanup complete",
|
||||||
|
"清理失敗":"Cleanup failed",
|
||||||
|
"啟用安全模式":"Enable safe mode",
|
||||||
|
"您確定啟用安全模式嗎?":"Are you sure you enable safe mode?",
|
||||||
|
"使用該選項後需要重啟,現在要重啟嗎?":"A reboot is required after using this option, do you want to reboot now?",
|
||||||
|
"啟用失敗":"Enable failed",
|
||||||
|
'禁用安全模式':'Disable safe mode',
|
||||||
|
"您確定禁用安全模式嗎?":"Are you sure you want to disable Safe Mode?",
|
||||||
|
"禁用失敗":"Disable failed",
|
||||||
|
"刪除檔案":"Delete file",
|
||||||
|
"您確定刪除該檔案嗎?":"Are you sure you want to delete this file?",
|
||||||
|
"刪除成功":"Successfully deleted",
|
||||||
|
"刪除失敗":"Failed to delete",
|
||||||
|
"運行成功":"Run successfully",
|
||||||
|
"不是有效命令":"Not a valid command",
|
||||||
|
"您輸入了錯誤的HEKY":"You entered the wrong HEKY",
|
||||||
|
"警告":"Warning",
|
||||||
|
"成功的創建或修改註冊表值":"Successfully created or modified registry value",
|
||||||
|
"分析文件函數":"Analyze File Func",
|
||||||
|
"分析文件哈希值":"Analyze File Hashes",
|
||||||
|
"分析文件位元":"Analyze File Bits",
|
||||||
|
'尋找結果:':'Find result:',
|
||||||
|
'正在尋找:':'Searching:',
|
||||||
|
'找到檔案:':'File found:',
|
||||||
|
'創建日期:':'Created Date:',
|
||||||
|
"您確定要修改用戶密碼嗎?":"Are you sure you want to change the user password?",
|
||||||
|
"IP查詢":"IP query",
|
||||||
|
"您的ip地址為:{}":"Your ip address is: {}",
|
||||||
|
"您確定要重置網路配置嗎?":"Are you sure you want to reset the network configuration?",
|
||||||
|
"重置網路配置成功":"Reset network configuration successful",
|
||||||
|
"設定":"Setting",
|
||||||
|
"關於":"About",
|
||||||
|
"結束進程":"End process",
|
||||||
|
"啟用該選項可以實時監控系統中的惡意軟體並清除":"Enable this option to monitor and remove malware in the system in real time",
|
||||||
|
"启动此选项可以实时监控系统中的恶意软件并清除":"Enable this option to monitor and remove malware in the system in real time",
|
||||||
|
'{} > [實時防護] 成功攔截了一個惡意軟體:':'{} > [Real-time protection] Successfully blocked a malware:',
|
||||||
|
'{} > [實時防護] 惡意軟體攔截失敗:':'{} > [Real-time protection] Malware blocking failed:',
|
||||||
|
'修復系統權限':"Repair System Permissions",
|
||||||
|
"never gonna give you up":"""We are no strangers to love
|
||||||
|
You know the rules and so do I
|
||||||
|
A full commitment′s what I am thinking of
|
||||||
|
You wouldn′t get this from any other guy
|
||||||
|
I just want to tell you how I am feeling
|
||||||
|
Gotta make you understand
|
||||||
|
Never gonna give you up never gonna let you down
|
||||||
|
Never gonna run around and desert you
|
||||||
|
Never gonna make you cry never gonna say goodbye
|
||||||
|
Never gonna tell a lie and hurt you
|
||||||
|
We′ve known each other for so long
|
||||||
|
Your heart′s been aching but You are too shy to say it
|
||||||
|
Inside we both know what′s been going on
|
||||||
|
We know the game and We are gonna play it
|
||||||
|
And if you ask me how I am feeling
|
||||||
|
Don′t tell me You are too blind to see
|
||||||
|
Never gonna give you up never gonna let you down
|
||||||
|
Never gonna run around and desert you
|
||||||
|
Never gonna make you cry never gonna say goodbye
|
||||||
|
Never gonna tell a lie and hurt you
|
||||||
|
Never gonna give you up never gonna let you down
|
||||||
|
Never gonna run around and desert you
|
||||||
|
Never gonna make you cry never gonna say goodbye
|
||||||
|
Never gonna tell a lie and hurt you
|
||||||
|
Ooh give you up
|
||||||
|
Ooh give you up
|
||||||
|
Never gonna give never gonna give give you up
|
||||||
|
Never gonna give never gonna give give you up
|
||||||
|
We′ve known each other for so long
|
||||||
|
Your heart′s been aching but You are too shy to say it
|
||||||
|
Inside we both know what′s been going on
|
||||||
|
We know the game and We are gonna play it
|
||||||
|
I just want to tell you how I am feeling
|
||||||
|
Gotta make you understand
|
||||||
|
Never gonna give you up never gonna let you down
|
||||||
|
Never gonna run around and desert you
|
||||||
|
Never gonna make you cry never gonna say goodbye
|
||||||
|
Never gonna tell a lie and hurt you
|
||||||
|
Never gonna give you up never gonna let you down
|
||||||
|
Never gonna run around and desert you
|
||||||
|
Never gonna make you cry never gonna say goodbye
|
||||||
|
Never gonna tell a lie and hurt you
|
||||||
|
Never gonna give you up never gonna let you down
|
||||||
|
Never gonna run around and desert you
|
||||||
|
Never gonna make you cry never gonna say goodbye
|
||||||
|
Never gonna tell a lie and hurt you""",
|
||||||
|
}
|
||||||
+5137
File diff suppressed because it is too large.
Load diff
+2943
File diff suppressed because it is too large.
Load diff
+4109
File diff suppressed because it is too large.
Load diff
@@ -1,15 +1,6 @@
|
|||||||
PYAS ( Python 免費殺毒軟體 )
|
Official website:
|
||||||
|
https://pyantivirus.wixsite.com/pyas ,
|
||||||
PYAS 免費防毒軟體使用 Python 程式語言開發,包含超過 15 種免費功能
|
|
||||||
且不會拖慢您的電腦速度,也不造成干擾,並採用 PYAE V1.1.0 掃毒引擎。
|
|
||||||
|
|
||||||
網站:
|
|
||||||
|
|
||||||
https://xiaomi69ai.wixsite.com/pyas ,
|
|
||||||
https://github.com/87owo/PYAS
|
https://github.com/87owo/PYAS
|
||||||
|
|
||||||
特別感謝:
|
Special thanks to:
|
||||||
|
Wix, Avast, Github, Google, Python, Microsoft, VirusTotal, VirusShare, LenStevens
|
||||||
Wix website ( https://www.wix.com ) ,
|
|
||||||
Len Stevens ( https://github.com/Len-Stevens/Python-Antivirus )
|
|
||||||
Microsoft MSERT ( https://docs.microsoft.com/en-us/windows/security/threat-protection/intelligence/safety-scanner-download )
|
|
||||||
@@ -0,0 +1,10 @@
|
|||||||
|
import pyinstaller_versionfile
|
||||||
|
pyinstaller_versionfile.create_versionfile(
|
||||||
|
output_file="versionfile.txt",
|
||||||
|
version='2.3.5',
|
||||||
|
company_name="PYAS",
|
||||||
|
file_description="Python Antivirus Software",
|
||||||
|
internal_name="PYAS",
|
||||||
|
legal_copyright="Copyright© 2020-2022 PYAS",
|
||||||
|
original_filename="PYAS.exe",
|
||||||
|
product_name="PYAS")
|
||||||
Reference in new issue
Block a user