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.