სამაგიდო პროგრამა (GUI)
PRX-SD შეიცავს კროს-პლატფორმულ სამაგიდო პროგრამას, შემუშავებულს Tauri 2-ით (Rust backend) და Vue 3-ით (TypeScript frontend). GUI ვიზუალურ ინტერფეისს გვაძლევს ბირთვის ყველა ფუნქციაზე ბრძანებათა ხაზის გარეშე.
არქიტექტურა
+----------------------------------------------+
| PRX-SD Desktop App |
| |
| Vue 3 Frontend Tauri 2 Backend |
| (Vite + TypeScript) (Rust + IPC) |
| |
| +------------------+ +-----------------+ |
| | Dashboard |<->| scan_path() | |
| | File Scanner | | scan_directory()| |
| | Quarantine Mgmt | | get_config() | |
| | Config Editor | | save_config() | |
| | Signature Update | | update_sigs() | |
| | Alert History | | get_alerts() | |
| | Adblock Panel | | adblock_*() | |
| | Monitor Control | | start/stop() | |
| +------------------+ +-----------------+ |
| |
| System Tray Icon (32x32) |
+----------------------------------------------+Tauri backend ავლენს 18 IPC ბრძანებას, რომლებსაც Vue frontend სკანის ძრავასთან, კარანტინის სარდაფთან, სიგნატურ-მონაცემთა ბაზასა და adblock filter ძრავასთან ურთიერთქმედებისთვის იძახებს. ყველა მძიმე სამუშაო (სკანირება, YARA შემჯამება, ჰეშ-ძებნა) Rust-ში სრულდება; frontend მხოლოდ რენდერინგს ახდენს.
ფუნქციები
რეალურ დროში Dashboard
Dashboard უსაფრთხოების სტატუსს ერთი შეხედვით გვიჩვენებს:
- სრული სკანირებების რაოდენობა
- ნაპოვნი საფრთხეების რაოდენობა
- კარანტინიზებული ფაილების რაოდენობა
- ბოლო სკანის დრო
- მონიტორინგის სტატუსი (აქტიური/არაქტიური)
- სკანირების ისტორიის დიაგრამა (ბოლო 7 დღე)
- ბოლო საფრთხეების სია გზებით, საფრთხის სახელებითა და სიმძიმის დონეებით
Drag-and-Drop სკანირება
ფაილების ან საქაღალდეების პროგრამის ფანჯარაზე ჩამოშვება სკანის მყისიერ დაწყებას იწვევს. შედეგები დახარისხებად ცხრილში გამოჩნდება სვეტებით გზის, საფრთხის დონის, გამოვლენის ტიპის, საფრთხის სახელისა და სკანის დროისთვის.
კარანტინის მართვა
კარანტინიზებული ფაილების ვიზუალური ინტერფეისით ნახვა, აღდგენა და წაშლა:
- დახარისხებადი ცხრილი ID-ით, ორიგინალი გზით, საფრთხის სახელით, თარიღით და ფაილის ზომით
- ერთი დაჭერით ორიგინალ მდებარეობაზე აღდგენა
- ერთი დაჭერით მუდმივი წაშლა
- სარდაფის სტატისტიკა (სრული ფაილები, სრული ზომა, უძველესი/უახლესი ჩანაწერი)
კონფიგურაციის რედაქტორი
ძრავის ყველა პარამეტრის ფორმ-ინტერფეისით რედაქტირება. ცვლილებები ~/.prx-sd/config.json-ში იწერება და შემდეგ სკანზე ძალაში შედის.
სიგნატურ-განახლებები
სიგნატურ-მონაცემთა ბაზის განახლებების GUI-დან გამოძახება. Backend ახალ manifest-ს ჩამოტვირთავს, SHA-256 მთლიანობას ამოწმებს და განახლებას ინსტალაციას ახდენს. ძრავა ახალი სიგნატურებით ავტომატურად ხელახლა ინიციალიზებულია.
Adblock პანელი
რეკლამისა და მავნე დომენ-ბლოკვის მართვა:
- adblock დაცვის ჩართვა/გამორთვა
- filter სიების სინქრონიზება
- ცალკეული დომენების შემოწმება
- ბლოკ-ჟურნალის ნახვა (ბოლო 50 ჩანაწერი)
- სიის კონფიგურაციისა და სტატისტიკის ნახვა
სისტემის ლოტო
PRX-SD სისტემის ლოტოში მუდმივი ხატულით ზის, სწრაფ წვდომას გვაძლევს:
- მთავარი ფანჯრის გახსნა
- რეალურ დროში მონიტორინგის დაწყება/გაჩერება
- დემონის სტატუსის შემოწმება
- სწრაფი სკანის გაშვება
- პროგრამიდან გასვლა
TIP
სისტემის ლოტოს ხატული 32x32 პიქსელზეა კონფიგურირებული. მაღალ-DPI ეკრანებზე Tauri ავტომატურად [email protected] ვარიანტს იყენებს.
წყაროდან აშენება
წინაპირობები
- Rust 1.85.0 ან უახლესი
- Node.js 18+ npm-ით
- სისტემური დამოკიდებულებები (Linux):
# Debian/Ubuntu
sudo apt install -y libwebkit2gtk-4.1-dev libappindicator3-dev librsvg2-dev patchelf
# Fedora
sudo dnf install -y webkit2gtk4.1-devel libappindicator-gtk3-devel librsvg2-develგანვითარების რეჟიმი
Frontend dev სერვერისა და Tauri backend-ის hot reload-ით ერთად გაშვება:
cd gui
npm install
npm run tauri devეს იწყებს:
- Vite dev სერვერს
http://localhost:1420-ზე - Tauri backend-ს, რომელიც dev URL-ს ტვირთავს
პროდუქციის აშენება
გავრცელებადი პროგრამის პაკეტის აშენება:
cd gui
npm install
npm run tauri buildაშენების გამოტანა პლატფორმის მიხედვით იცვლება:
| პლატფორმა | გამოტანა |
|---|---|
| Linux | .deb, .AppImage, .rpm src-tauri/target/release/bundle/-ში |
| macOS | .dmg, .app src-tauri/target/release/bundle/-ში |
| Windows | .msi, .exe src-tauri\target\release\bundle\-ში |
პროგრამის კონფიგურაცია
Tauri პროგრამა gui/src-tauri/tauri.conf.json-ით კონფიგურირდება:
{
"productName": "PRX-SD",
"version": "0.1.0",
"identifier": "com.prxsd.app",
"app": {
"windows": [
{
"title": "PRX-SD Antivirus",
"width": 1200,
"height": 800,
"minWidth": 900,
"minHeight": 600,
"center": true,
"resizable": true
}
],
"trayIcon": {
"id": "main-tray",
"iconPath": "icons/32x32.png",
"tooltip": "PRX-SD Antivirus"
}
}
}IPC ბრძანებები
Backend frontend-ზე ამ Tauri ბრძანებებს ავლენს:
| ბრძანება | აღწერა |
|---|---|
scan_path | ფაილის ან დირექტორიის სკანირება, შედეგების დაბრუნება |
scan_directory | დირექტორიის რეკურსიული სკანირება |
start_monitor | რეალურ დროში მონიტორინგის ვალიდაცია და დაწყება |
stop_monitor | მონიტორინგის დემონის გაჩერება |
get_quarantine_list | ყველა კარანტინიზებული ჩანაწერის ჩამოთვლა |
restore_quarantine | კარანტინიზებული ფაილის ID-ით აღდგენა |
delete_quarantine | კარანტინის ჩანაწერის ID-ით წაშლა |
get_config | მიმდინარე სკანის კონფიგურაციის წაკითხვა |
save_config | სკანის კონფიგურაციის დისკზე ჩაწერა |
get_engine_info | ძრავის ვერსიის, სიგნატურ-რაოდენობისა და YARA წესების მიღება |
update_signatures | უახლესი სიგნატურების ჩამოტვირთვა და ინსტალაცია |
get_alert_history | alert ისტორიის აუდიტ-ჟურნალებიდან წაკითხვა |
get_dashboard_stats | dashboard სტატისტიკის აგრეგაცია |
get_adblock_stats | adblock სტატუსისა და წესების რაოდენობის მიღება |
adblock_enable | hosts-ფაილ-ცვლილებით adblock-ის ჩართვა |
adblock_disable | hosts-ფაილ-ცვლილებით adblock-ის გამორთვა |
adblock_sync | filter სიების ხელახლა-ჩამოტვირთვა |
adblock_check | დომენის დაბლოკვის შემოწმება |
get_adblock_log | ბოლო ბლოკ-ჟურნალ-ჩანაწერების წაკითხვა |
მონაცემთა დირექტორია
GUI CLI-ის ერთ და იმავე ~/.prx-sd/ მონაცემთა დირექტორიას იყენებს. GUI-ში განხორციელებული კონფიგურაციის ცვლილებები sd ბრძანებებისთვის ხილულია და პირიქით.
WARNING
GUI და CLI ერთ სკანის ძრავის მდგომარეობას იზიარებს. sd daemon-ის გავლით დემონის გაშვებისას GUI-ს "Start Monitor" ღილაკი მზაობას ამოწმებს, მაგრამ ფაქტობრივი მონიტორინგი დემონ-პროცესს ეკისრება. ერთ და იმავე ფაილებზე GUI სკანისა და დემონ-სკანის ერთდროული გაშვება მოსარიდებელია.
ტექნოლოგიური სტეკი
| კომპონენტი | ტექნოლოგია |
|---|---|
| Backend | Tauri 2, Rust |
| Frontend | Vue 3, TypeScript, Vite 6 |
| IPC | Tauri command protocol |
| Tray | Tauri tray plugin |
| Bundler | Tauri bundler (deb/AppImage/dmg/msi) |
| API bindings | @tauri-apps/api v2 |
შემდეგი ნაბიჯები
- PRX-SD-ის ინსტალაცია ინსტალაციის სახელმძღვანელოს მიხედვით
- CLI-ის შესწავლა სკრიპტირებისა და ავტომატიზაციისთვის
- ძრავის კონფიგურაციის ცნობარის გავლით კონფიგურაცია
- გამოვლენის WASM Plugin-ებით გაფართოება