Compare commits
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
c51173651e | ||
|
|
96a2a93c8c | ||
|
|
794baab0c9 | ||
|
|
0ac7b80eae | ||
|
|
6795d1c6a4 | ||
|
|
d9eac56f1b | ||
|
|
325e5cda21 | ||
|
|
a8f8a8ddb4 | ||
|
|
3507802eb9 | ||
|
|
9588bdb7cc | ||
|
|
97ca2dcc79 | ||
|
|
44df3e9344 | ||
|
|
668c12bac7 | ||
|
|
f843bf7c08 | ||
|
|
8262ff21a4 | ||
|
|
d93406339f | ||
|
|
4f9adabb06 | ||
|
|
68d12c0368 | ||
|
|
56e64619fa | ||
|
|
87162c00c9 | ||
|
|
ae4cfa4f7c | ||
|
|
f21fbc8c10 |
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
|
|
||||||
@@ -1,15 +1,6 @@
|
|||||||
PYAS ( Python 免費殺毒軟體 )
|
Official website:
|
||||||
|
|
||||||
PYAS 免費防毒軟體使用 Python 程式語言開發,包含超過 15 種免費功能
|
|
||||||
且不會拖慢您的電腦速度,也不造成干擾,並採用 PYAE V1.1.0 掃毒引擎。
|
|
||||||
|
|
||||||
網站:
|
|
||||||
|
|
||||||
https://xiaomi69ai.wixsite.com/pyas ,
|
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 )
|
|
||||||
Reference in new issue
Block a user