Compare commits
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
44c2edf58e | ||
|
|
e88207c232 | ||
|
|
f6b2450fcd | ||
|
|
a124ecd3ed | ||
|
|
34fcc3d29e | ||
|
|
5f3011eebc | ||
|
|
d4464edb6c | ||
|
|
1dc89a80db | ||
|
|
bd23599770 | ||
|
|
bda6ff80da | ||
|
|
16bee9825f | ||
|
|
5e4a4c4e8f | ||
|
|
0a03093333 |
No files matched your search
@@ -106,13 +106,13 @@ class MainWindow_Controller(QMainWindow):
|
||||
|
||||
self.theme_names = [
|
||||
"white_switch", "red_switch", "yellow_switch",
|
||||
"green_switch", "blue_switch", "black_switch"
|
||||
"green_switch", "blue_switch", "black_switch",
|
||||
]
|
||||
self.lang_names = [
|
||||
"traditional_switch", "simplified_switch", "english_switch"
|
||||
"traditional_switch", "simplified_switch", "english_switch",
|
||||
]
|
||||
self.pyas_default = {
|
||||
"version": "3.3.1",
|
||||
"version": "3.3.2",
|
||||
"product": "00000-00000-00000-00000-00000",
|
||||
"language": "english_switch",
|
||||
"theme": "white_switch",
|
||||
@@ -131,9 +131,14 @@ class MainWindow_Controller(QMainWindow):
|
||||
{"exe": "explorer.exe", "class": "", "title": ""},
|
||||
]
|
||||
self.block_replace = {
|
||||
"MBR_BLOCK": "引導行為攔截",
|
||||
"BOOT_BLOCK": "引導行為攔截",
|
||||
"REG_BLOCK": "註冊表行為攔截",
|
||||
"FILE_BLOCK": "檔案行為攔截"
|
||||
"FILE_BLOCK": "檔案行為攔截",
|
||||
"RANSOM_BLOCK": "勒索行為攔截",
|
||||
"CLR_BLOCK": "托管行為攔截",
|
||||
"SHELLCODE_BLOCK": "殼碼行為攔截",
|
||||
"THREAD_BLOCK": "線程行為攔截",
|
||||
"INJECT_BLOCK": "注入行為攔截",
|
||||
}
|
||||
|
||||
####################################################################################################
|
||||
@@ -194,9 +199,6 @@ class MainWindow_Controller(QMainWindow):
|
||||
|
||||
####################################################################################################
|
||||
|
||||
def load_config(self):
|
||||
self.pyas_config = self.read_config(self.file_config, self.pyas_default)
|
||||
|
||||
def save_config(self, file_path, config):
|
||||
try:
|
||||
filter_config = {}
|
||||
@@ -207,7 +209,7 @@ class MainWindow_Controller(QMainWindow):
|
||||
path = os.path.dirname(file_path)
|
||||
if not os.path.exists(path):
|
||||
os.makedirs(path)
|
||||
with open(file_path, "w") as f:
|
||||
with open(file_path, "w", encoding="utf-8", errors="ignore") as f:
|
||||
f.write(json.dumps(filter_config, indent=4, ensure_ascii=False))
|
||||
except Exception as e:
|
||||
self.send_message(e, "warn", False)
|
||||
@@ -216,7 +218,7 @@ class MainWindow_Controller(QMainWindow):
|
||||
try:
|
||||
config_value = {}
|
||||
if os.path.exists(file_path):
|
||||
with open(file_path, "r") as f:
|
||||
with open(file_path, "r", encoding="utf-8", errors="ignore") as f:
|
||||
config_value = json.load(f)
|
||||
for key, value in default_value.items():
|
||||
config_value.setdefault(key, value)
|
||||
@@ -225,6 +227,9 @@ class MainWindow_Controller(QMainWindow):
|
||||
self.send_message(e, "warn", False)
|
||||
return default_value.copy()
|
||||
|
||||
def load_config(self):
|
||||
self.pyas_config = self.read_config(self.file_config, self.pyas_default)
|
||||
|
||||
def config_list(self, key):
|
||||
if key not in self.pyas_config:
|
||||
self.pyas_config[key] = []
|
||||
@@ -536,6 +541,8 @@ class MainWindow_Controller(QMainWindow):
|
||||
|
||||
def show_button(self):
|
||||
self.show()
|
||||
self.activateWindow()
|
||||
self.repaint()
|
||||
self.change_opacity(self, self.current_opacity, 100, 200)
|
||||
|
||||
def minimize_button(self):
|
||||
|
||||
+12
-7
@@ -1,10 +1,11 @@
|
||||
translate_dict = {
|
||||
"traditional_switch": {"开启":"開啟","关闭":"關閉","On":"開啟","Off":"關閉"},
|
||||
|
||||
"simplified_switch": {"開啟":"开启","關閉":"关闭","On":"开启","Off":"关闭",
|
||||
"錯誤":"错误","發現":"发现","關閉":"关闭","裝置":"设备","記憶體":"内存",
|
||||
"軟體":"软件","檔案":"文件","確定":"确认","設定":"设置","關於":"关于",
|
||||
"總數":"总数","註冊":"注册","圖標":"图标","路徑":"路径","網路":"网络",
|
||||
"位元":"字节","靈敏":"敏感","複製":"复制","開啟":"开启", "離":"离",
|
||||
"位元":"字节","靈敏":"敏感","複製":"复制","開啟":"开启","靜態":"静态",
|
||||
"訊":"讯","項":"项","掃":"扫","試":"试","黃":"黄","嗎":"吗","防":"保",
|
||||
"鑰":"钥","當":"当","後":"后","護":"护","導":"导","區":"区","復":"复",
|
||||
"攔":"拦","請":"请","統":"统","刪":"删","進":"进","個":"个","選":"选",
|
||||
@@ -18,7 +19,9 @@ translate_dict = {
|
||||
"惡":"恶","據":"据","庫":"库","經":"经","敗":"败","謝":"谢","別":"别",
|
||||
"載":"载","誤":"误","報":"报","鏈":"链","竄":"窜","蹤":"踪","與":"与",
|
||||
"異":"异","實":"实","時":"时","彈":"弹","窗":"窗","暫":"暂","訂":"订",
|
||||
"資":"资","產":"产","金":"密",},
|
||||
"資":"资","產":"产","金":"密","離":"离","規":"规","則":"则","來":"来",
|
||||
"殼":"壳","碼":"码","線":"线",},
|
||||
|
||||
"english_switch": {"開啟":"On","關閉":"Off","开启":"On","关闭":"Off",",":", ",
|
||||
"立即刪除":"Delete Now","安全模式":"Safe Mode","官方網站":"Official Website ",
|
||||
"腳本":"Script ","鏈式":"Chain ","記憶體":"Memory ","加載":"Load ",
|
||||
@@ -55,20 +58,22 @@ translate_dict = {
|
||||
"已存在":"Already ","數據庫":"Database ","誤報":"False Positive ",
|
||||
"高":"High ","新":"New ","和":"And ","可能會":"Possible ","會":"Can ",
|
||||
"日誌":"Log","已":"Has ","彈窗":"Window ","要":"To ","驅動":"Driver ",
|
||||
"的":"","顯示":"","個":"","嗎":"","了":"","行":"","立即":"",
|
||||
"的":"","顯示":"","個":"","嗎":"","了":"","行":"","立即":"","規則":"Rule ",
|
||||
"密鑰":"Key ","檢測":"Detect ","製作":"Maker ","運行":"Running",
|
||||
"擴展":"Extension ","套件":"Kit ","自動":"Auto ","上報":"Report ",
|
||||
"分析":"Analysis ","自身":"Self ","其他":"Other ","配置":"Config ",
|
||||
"丟失":"Lost ","網站":"Website ","不兼容":"Not Compatible ",
|
||||
"丟失":"Lost ","網站":"Website ","不兼容":"Not Compatible ","列表":"List ",
|
||||
"竄改":"Tamper ","第三方":"Other ","實時":"Real Time ","查看":"View ",
|
||||
"指定":"Specify ","清空":"Empty ","資源回收桶":"Recycle Bin ",
|
||||
"與":"With ","當":"When ","功能":"Function ","異常":"Abnormal ",
|
||||
"指定":"Specify ","清空":"Empty ","資源回收桶":"Recycle Bin ", "無法":"Cannot ",
|
||||
"與":"With ","當":"When ","功能":"Function ","異常":"Abnormal ", "來":"To ",
|
||||
"重置":"Reset ","窗口":"Window ","暫存":"Temp ","自訂":"Custom ",
|
||||
"不支持":"Not Support ","共":"Total ","秒":"Seconds ","耗時":"Takes ",
|
||||
"沙箱":"Sandbox ", "虛擬":"Virtual ", "隔離":"Quarantine ", "時":"",
|
||||
"建立":"Create ","環境":"Environment ","沙箱":"Sandbox ","化":"", "表":"",
|
||||
"達":"Reached ", "上限":"Limit ", "區":"", "金鑰":"Key ", "產品":"Product ",
|
||||
"前往":"Go ","檢查":"Check ","可用":"Available "," ":" "},
|
||||
"托管":"CLR ","殼碼":"Shellcode ","線程":"Thread ","注入":"Inject ",
|
||||
"前往":"Go ","檢查":"Check ","可用":"Available ","靜態":"Static ", " ":" "},
|
||||
|
||||
"white_switch": {
|
||||
"_white": "_black",},
|
||||
"red_switch": {
|
||||
|
||||
+5
-5
@@ -19,10 +19,10 @@ class rule_scanner:
|
||||
elif ext in ('.yc', '.yrc'):
|
||||
self.rules[file] = yara.load(file)
|
||||
elif ext in ('.ip', '.txt'):
|
||||
with open(file, "r") as f:
|
||||
with open(file, "r", encoding="utf-8", errors="ignore") as f:
|
||||
self.network.extend(line.strip() for line in f if line.strip())
|
||||
except Exception as e:
|
||||
print(e)
|
||||
except Exception:
|
||||
return False
|
||||
|
||||
def yara_scan(self, file_path):
|
||||
try:
|
||||
@@ -62,8 +62,8 @@ class model_scanner:
|
||||
if file.lower().endswith('.onnx'):
|
||||
try:
|
||||
self.models[file] = onnxruntime.InferenceSession(file)
|
||||
except Exception as e:
|
||||
print(e)
|
||||
except Exception:
|
||||
return False
|
||||
|
||||
def is_valid_suffix(self, file_path):
|
||||
return os.path.splitext(file_path)[-1].lower() in self.suffix
|
||||
|
||||
+1
-1
@@ -2,7 +2,7 @@ import pyinstaller_versionfile
|
||||
|
||||
pyinstaller_versionfile.create_versionfile(
|
||||
output_file="versionfile.txt",
|
||||
version='3.3.1',
|
||||
version='3.3.2',
|
||||
company_name="PYAS Security",
|
||||
file_description="Python Antivirus Software",
|
||||
internal_name="PYAS",
|
||||
|
||||
Binary file not shown.
@@ -1,4 +1,6 @@
|
||||
# PYAS (Python Antivirus Software)
|
||||
# PYAS
|
||||
|
||||
Python antivirus software uses deep learning and behavioral monitoring to block threats!
|
||||
|
||||

|
||||
|
||||
@@ -10,6 +12,8 @@
|
||||
|
||||
## Requirements
|
||||
|
||||
Python 3.10 is recommended. Other Python versions may require different pip commands.
|
||||
|
||||
```
|
||||
pip install numpy==1.26.4
|
||||
pip install onnxruntime==1.18.1
|
||||
@@ -23,45 +27,42 @@ pip install yara-python==4.5.4
|
||||
|
||||
## File Information
|
||||
|
||||
The following lists the storage locations of all relevant code and other related documents.
|
||||
|
||||
```
|
||||
PYAS/
|
||||
├── PYAS.py # Main application (PySide6 GUI interface)
|
||||
├── PYAS_Config.py # Configuration handling and global parameters
|
||||
├── PYAS_Engine.py # Scanning engine (integrates YARA & ONNX AI detection)
|
||||
├── PYAS_Interface.py # User interface definitions and widget logic
|
||||
├── PYAS_Resource.py # Static resource management
|
||||
├── PYAS_Version.py # Packaging and version info
|
||||
├── Engine/
|
||||
│ ├── Models/ # Directory for ONNX AI models
|
||||
│ └── Rules/ # Directory for YARA and network rules
|
||||
│
|
||||
├── Plugins/
|
||||
│ └── Filter/ # Driver directory
|
||||
│ └── PYAS_Driver.sys # Windows kernel driver for security protection
|
||||
│ └── Filter/ # Windows kernel driver for security protection
|
||||
│
|
||||
├── PYAS.py # Main application and GUI interface
|
||||
├── PYAS_Config.py # Configuration handling and global parameters
|
||||
├── PYAS_Engine.py # YARA and ONNX Scanning engine
|
||||
├── PYAS_Interface.py # User interface definitions and widget logic
|
||||
├── PYAS_Resource.py # Static resource management
|
||||
├── PYAS_Version.py # Packaging and version info
|
||||
└── ... # Other supplementary folders and files
|
||||
```
|
||||
|
||||
## Official Website
|
||||
## Packaged Releases
|
||||
|
||||
https://pyantivirus.wixsite.com/pyas
|
||||
|
||||
https://github.com/87owo/PYAS
|
||||
|
||||
## Microsoft Runtime
|
||||
|
||||
https://github.com/87owo/Microsoft_Runtime/releases
|
||||
|
||||
## MIT license
|
||||
|
||||
https://github.com/87owo/PYAS/blob/main/LICENSE.md
|
||||
Packaged Releases Download: https://github.com/87owo/PYAS/releases
|
||||
|
||||
## Support System
|
||||
|
||||
Windows 10, 11 (64-bit), Ram 500MB, Rom 200MB or higher
|
||||
| Config | Permissions | System version | Available memory | Available storage |
|
||||
|-----------|---------------|----------------|------------------|-------------------|
|
||||
| Minimum | Administrator | Windows 8.1 | 200MB | 100MB |
|
||||
| Recommend | Administrator | Windows 10 | 300MB | 200MB |
|
||||
| Optimal | Administrator | Windows 11 | 500MB | 200MB |
|
||||
|
||||
Other systems may experience software malfunctions or crash
|
||||
## Official Website
|
||||
|
||||
## Special Thanks
|
||||
https://github.com/87owo/PYAS
|
||||
|
||||
Wix, mtkiao129, 0sha0, AV-T Team of LisectGroup
|
||||
## Project License
|
||||
|
||||
Copyright© 2020~2025 PYAS Security By 87owo
|
||||
https://github.com/87owo/PYAS/blob/main/LICENSE.md
|
||||
Reference in new issue
Block a user