Skip to content
ეს გვერდი შეიქმნა და ითარგმნა ხელოვნური ინტელექტის დახმარებით. თუ შეამჩნევთ უზუსტობას, გთხოვთ, დაგვეხმარეთ გაუმჯობესებაში. GitHub-ზე რედაქტირება

სამაგიდო პროგრამა (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):
bash
# 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-ით ერთად გაშვება:

bash
cd gui
npm install
npm run tauri dev

ეს იწყებს:

  • Vite dev სერვერს http://localhost:1420-ზე
  • Tauri backend-ს, რომელიც dev URL-ს ტვირთავს

პროდუქციის აშენება

გავრცელებადი პროგრამის პაკეტის აშენება:

bash
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-ით კონფიგურირდება:

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_historyalert ისტორიის აუდიტ-ჟურნალებიდან წაკითხვა
get_dashboard_statsdashboard სტატისტიკის აგრეგაცია
get_adblock_statsadblock სტატუსისა და წესების რაოდენობის მიღება
adblock_enablehosts-ფაილ-ცვლილებით adblock-ის ჩართვა
adblock_disablehosts-ფაილ-ცვლილებით adblock-ის გამორთვა
adblock_syncfilter სიების ხელახლა-ჩამოტვირთვა
adblock_checkდომენის დაბლოკვის შემოწმება
get_adblock_logბოლო ბლოკ-ჟურნალ-ჩანაწერების წაკითხვა

მონაცემთა დირექტორია

GUI CLI-ის ერთ და იმავე ~/.prx-sd/ მონაცემთა დირექტორიას იყენებს. GUI-ში განხორციელებული კონფიგურაციის ცვლილებები sd ბრძანებებისთვის ხილულია და პირიქით.

WARNING

GUI და CLI ერთ სკანის ძრავის მდგომარეობას იზიარებს. sd daemon-ის გავლით დემონის გაშვებისას GUI-ს "Start Monitor" ღილაკი მზაობას ამოწმებს, მაგრამ ფაქტობრივი მონიტორინგი დემონ-პროცესს ეკისრება. ერთ და იმავე ფაილებზე GUI სკანისა და დემონ-სკანის ერთდროული გაშვება მოსარიდებელია.

ტექნოლოგიური სტეკი

კომპონენტიტექნოლოგია
BackendTauri 2, Rust
FrontendVue 3, TypeScript, Vite 6
IPCTauri command protocol
TrayTauri tray plugin
BundlerTauri bundler (deb/AppImage/dmg/msi)
API bindings@tauri-apps/api v2

შემდეგი ნაბიჯები

Released under the Apache-2.0 License.