Skip to content

Folders and files

NameName
Last commit message
Last commit date

Latest commit

Β 

History

31 Commits
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 

Repository files navigation

VeraxCore Antivirus

πŸ›‘οΈ VeraxCore Antivirus

Real Protection. Zero Noise.
Free, Open-Source, Intelligent Antivirus & PE Repair Engine for Windows

Platform Architecture Version License

C++17 Qt SQLite AES-256

Downloads Stars Issues Arabic

Screenshots β€’ Features β€’ Compatibility β€’ Architecture β€’ Installation β€’ Build β€’ FAQ β€’ Troubleshooting


πŸ“– About

VeraxCore Antivirus is a free, open-source antivirus solution for Windows built with C++17 and Qt 5.15+. It combines multiple detection engines β€” SHA-256 signature matching, byte-pattern scanning, PE structural analysis, and heuristic scoring β€” to detect and repair infected executables and DLLs without destroying them.

Unlike most antivirus tools that simply delete infected files, VeraxCore features an advanced PE repair engine that can surgically remove virus code from infected files while preserving the original program's functionality β€” similar to how enterprise-grade antivirus engines work.

πŸ’‘ Did you know? Most free antivirus solutions simply delete your infected programs. VeraxCore is one of the few open-source tools that can actually repair them β€” removing only the virus while keeping the original program intact and fully functional.

🎯 Why VeraxCore?

Problem VeraxCore Solution
Antivirus deletes your infected files Repairs them β€” removes virus, keeps the program working
Programs crash after cleaning (0xc0000142) Smart EP restoration β€” detects if virus modified the entry point
File sizes change after repair Precise PE surgery β€” preserves overlay data & digital certificates
False positives on legitimate programs Multi-engine verification β€” 4 detection methods must agree
Complex antivirus with heavy resource usage Lightweight β€” under 50MB, no background services eating RAM
Antivirus needs internet connection Fully offline β€” all engines work without internet
Expensive commercial antivirus licenses 100% Free & Open Source β€” GPLv3, forever free
Antivirus breaks DLL dependencies DLL-aware repair β€” different prologue restoration for DLLs
Can't recover quarantined files AES-256 encrypted vault β€” restore anytime with full integrity
No visibility into scan results Detailed JSON reports β€” full audit trail for every scan

πŸ–₯️ Supported Windows Versions

VeraxCore is designed to work across a wide range of Windows versions and architectures:

Windows Version Architecture Status Notes
Windows 11 (23H2, 24H2) x64, ARM64 βœ… Fully Supported Primary development target
Windows 11 (21H2, 22H2) x64, ARM64 βœ… Fully Supported
Windows 10 (22H2) x86, x64 βœ… Fully Supported Most tested version
Windows 10 (21H2, 21H1) x86, x64 βœ… Fully Supported
Windows 10 (1809–20H2) x86, x64 βœ… Supported
Windows 8.1 x86, x64 ⚠️ Compatible Not actively tested
Windows 8 x86, x64 ⚠️ Compatible Limited testing
Windows 7 SP1 x86, x64 ⚠️ Compatible Requires KB updates
Windows Server 2019/2022 x64 βœ… Supported Server environments
Windows Server 2016 x64 ⚠️ Compatible

Architecture Support

Architecture Support Level Details
x64 (AMD64) βœ… Full Primary target, all features
x86 (32-bit) βœ… Full Complete functionality
ARM64 ⚠️ Via Emulation Works through Windows x86/x64 emulation layer

System Requirements

Component Minimum Recommended
OS Windows 7 SP1 Windows 10/11
Processor 1 GHz single core 2 GHz dual core
RAM 256 MB 512 MB+
Disk Space 50 MB (app) 200 MB (app + UserData)
Privileges Administrator Administrator
Display 1024Γ—768 1280Γ—720+
.NET Not required β€”
Internet Not required Optional (for updates)

πŸ“Έ Screenshots

πŸ›‘οΈ Verax Shield (Branding)

Verax-Shield


πŸ–₯️ Application Interface

2. Main Dashboard
Dashboard
3. Scanning Progress
scanning-ui
4. Scan Options & Language
scan-ui
5. Quarantine Vault
Quarantine-UI
6. Settings Interface
Settings-UI
7. Installation Setup
Installation-UI

✨ Features

πŸ” Multi-Engine Detection System

VeraxCore uses four independent detection engines that work together for maximum accuracy and minimal false positives:

Engine 1: SHA-256 Signature Database

  • 65+ built-in malware signatures with metadata
  • Online signature updates from secure JSON endpoint
  • SQLite storage with JSON fallback for maximum compatibility
  • Each signature includes: name, family, severity, repair method, byte patterns
  • Automatic seed sync on startup

Engine 2: Byte-Pattern Scanner

  • Wildcard-capable byte signatures (e.g., E9??????????558BEC6AFF)
  • Multi-pattern per signature support
  • Scans first 64KB of each file (configurable)
  • Pattern matching with mask support (? = any byte)
  • Section-aware scanning in PE headers

Engine 3: PE Structural Analysis

  • Detects suspicious PE anomalies:
    • Sections with Read+Write+Execute (RWX) flags
    • Entry point outside .text section
    • Non-standard section names
    • Abnormal SizeOfRawData vs VirtualSize ratios
    • Double PE headers (dropper detection)
    • Suspicious import tables
  • PE32 and PE32+ (64-bit) support

Engine 4: Heuristic Scoring

  • Behavioral analysis with weighted scoring (0–100)
  • Configurable threshold (default: 60)
  • Factors analyzed:
    • Import API patterns (suspicious combinations)
    • Section characteristics
    • Entry point anomalies
    • Resource section analysis
    • String analysis

πŸ”§ Advanced PE Repair Engine (Clean Threat)

The crown jewel of VeraxCore β€” a professional-grade PE file repair engine that rivals commercial antivirus solutions:

Section-Based Repair

  • Pass 1 β€” Named Section Removal: Removes 25+ known virus sections:
    .flx, .floxif, .sality, .sal, .virut, .vrt, .rmnet, .ramnit,
    .parite, .expiro, .polip, .mabezat, .tenga, .lamer, .jeefo,
    .hidrag, .mydoom, .bagle, .neshta, .viking, .alman, .induc,
    .vetor, .mikcer, .mkc
    
  • Pass 2 β€” RWX Section Cleanup: Detects and removes unnamed suspicious sections with Read+Write+Execute flags that aren't in the standard section whitelist
  • Pass 3 β€” Inflated Section Trimming: Detects sections where the virus increased SizeOfRawData beyond VirtualSize (Floxif technique) and trims the excess

35+ Protected Standard Sections

The engine knows and protects all legitimate PE sections from any compiler:

MSVC:     .text .code .rdata .data .bss .idata .edata .rsrc .reloc
          .tls .crt .gfids .00cfg .pdata .xdata .debug .didat
          .sxdata .voltbl .mrdata .textbss .shared .orpc .ndata
GCC:      .ctors .dtors .jcr .eh_fram .gcc_exc .got .got.plt .plt
Delphi:   code data bss .tls$
Go:       .symtab .typelink .itablink .gosymtab .gopclntab
Rust:     .rdata$r .rdata$t
Patterns: .rdata$* .text$* .data$* .CRT$* .debug$*

Overlay Virus Removal

  • Calculates lastSectionEnd from PE headers
  • Reads PE Security Directory (index 4) for Authenticode certificates
  • If certificate exists: preserves it, removes virus body after it
  • If no certificate: truncates to last section end
  • Handles Floxif.H technique where virus body is appended as overlay

Smart Entry Point Repair

Three intelligent cases:

Case Condition Action
Case 1 EP was in removed virus section Scan .text for CRT startup pattern β†’ set new EP
Case 2 EP bytes redirected (JMP/CALL) Restore correct prologue bytes
Case 3 EP is untouched Do nothing β€” don't break what works

Prologue detection:

  • EXE (32-bit): 55 8B EC 6A FF (push ebp; mov ebp,esp; push -1)
  • DLL (32-bit): 8B FF 55 8B EC (mov edi,edi; push ebp; mov ebp,esp)
  • 64-bit: 48 83 EC 28 48 (sub rsp,40; mov...)
  • CRT Scan for EXE: Pattern 558BEC6AFF68
  • CRT Scan for DLL: Pattern 8BFF558BEC837D0C

PE Integrity Preservation

  • SizeOfImage recalculation based on section alignment
  • PE checksum recalculation
  • Automatic backup (.bak) before any modification
  • Auto-restore from backup if repair fails
  • File permissions preservation

πŸ›‘οΈ Comprehensive Virus Family Support

Family Type Technique Detection Repair Files
Floxif (.A–.H) Infector EP hook + overlay append βœ… βœ… EXE, DLL
Floxif.EC!MTB Infector EP hook + .flx section βœ… βœ… EXE, DLL
Sality Infector Section append + EP redirect βœ… βœ… EXE
Ramnit (.A–.G) Infector Section append + EP hook βœ… βœ… EXE, DLL, HTML
Virut (.A–.E) Infector Code cave + EP hook βœ… βœ… EXE, SCR
Neshta Infector Section append + file infector βœ… βœ… EXE
Mikcer Infector EP hook + section append βœ… βœ… EXE, DLL
Parite (.A–.B) Infector Polymorphic section append βœ… βœ… EXE, DLL, SCR
Expiro Infector Code injection + section βœ… βœ… EXE, DLL
Mabezat Worm Section append βœ… βœ… EXE
Viking Worm Section append βœ… βœ… EXE
Alman Infector Section append βœ… βœ… EXE
Polip Infector EPO + section βœ… βœ… EXE
Tenga Infector Section append βœ… βœ… EXE
Jeefo Infector Section append βœ… βœ… EXE
Hidrag Trojan Section append βœ… βœ… EXE
Mydoom Worm PE manipulation βœ… βœ… EXE
Bagle Worm PE manipulation βœ… βœ… EXE
Induc Infector Delphi compilation βœ… βœ… EXE, DLL
Vetor Infector Complex EPO βœ… βœ… EXE
Lamer Infector Simple append βœ… βœ… EXE
Generic CodeCave Various Code cave injection βœ… βœ… EXE, DLL
TrojanDownloader Trojan Various PE manipulation βœ… βœ… EXE
Generic.CodeCave!A Various Code cave βœ… βœ… EXE, DLL

🏦 Quarantine Vault

  • AES-256-CBC Encryption β€” Files encrypted using Windows BCrypt API (FIPS 140-2 compliant)
  • HWID-Derived Key β€” Encryption key derived from machine's unique MachineGuid via SHA-256
  • Secure Delete β€” 3-pass overwrite (zeros β†’ 0xFF β†’ random) before deletion
  • Full Management β€” Restore original file, permanently delete, or view quarantine details
  • Database Tracked β€” Every quarantined item logged in SQLite with metadata
  • Size Tracking β€” Total vault size visible in UI

πŸ“Š Scan Types

  • Quick Scan β€” System-critical locations:
    • %TEMP% β€” Temporary files (common malware staging area)
    • %USERPROFILE%\Downloads β€” Downloaded files
    • %APPDATA% β€” Application data
    • %LOCALAPPDATA% β€” Local app data
    • %ProgramData% β€” Shared program data
    • Windows Startup folders (user + system)
    • Desktop
  • Full Scan β€” Complete drive scan with recursive directory traversal
  • Custom Scan β€” User-selected files or folders via file dialog
  • Folder Scan β€” Single directory with optional subdirectory recursion
  • USB Auto-Scan β€” Automatic scan triggered on USB device insertion

🌐 Additional Features

User Interface

  • Modern Glassmorphism Design β€” Premium look with transparency effects
  • Dark & Light Themes β€” Comfortable for any environment
  • Real-Time Progress β€” Live file count, speed, and threat counter during scans
  • Threat Detail View β€” Family name, severity, file path, detection method
  • Clean/Quarantine/Delete β€” Per-threat action buttons
  • Scan History β€” View past scans with results summary

Internationalization

  • English β€” Full UI translation
  • Arabic (Ψ§Ω„ΨΉΨ±Ψ¨ΩŠΨ©) β€” Full RTL UI translation
  • Extensible β€” Add new languages via Qt .ts files

Online Updates

  • Signature Updates β€” Auto-download from secure JSON endpoint
  • Version Check β€” Automatic new version detection
  • Download Link β€” Direct link to latest release
  • Progress Tracking β€” Real-time download progress in UI

System Integration

  • Start with Windows β€” Optional startup registration via registry
  • System Tray β€” Minimize to notification area with context menu
  • Notifications β€” Desktop notifications for scan completion and threats
  • UAC Integration β€” Runs with Administrator privileges via embedded manifest
  • File Associations β€” Right-click β†’ "Scan with VeraxCore" (optional)

Data & Logging

  • Portable Data β€” All data in UserData/ next to executable (no AppData mess)
  • Rotating Logs β€” 5MB per log file, keeps last 5 rotations
  • JSON Reports β€” Detailed per-scan reports with timestamps
  • SQLite Database β€” Signature storage with JSON automatic fallback
  • Audit Trail β€” Complete scan history with threat details

Security Hardening

  • ASLR β€” Address Space Layout Randomization enabled
  • DEP β€” Data Execution Prevention enabled
  • CFG β€” Control Flow Guard enabled
  • Secure Coding β€” Buffer overflow protections throughout
  • Admin Required β€” UAC manifest requires elevation

πŸ—οΈ Architecture

Project Structure

VeraxShield/
β”œβ”€β”€ πŸ“„ main.cpp                    # Application entry point with splash screen
β”œβ”€β”€ πŸ“„ Version.h                   # Single source of truth for version/identity
β”œβ”€β”€ πŸ“„ harden.h                    # Security hardening macros (ASLR, DEP, CFG)
β”œβ”€β”€ πŸ“„ manifest.xml                # Windows UAC manifest (requireAdministrator)
β”œβ”€β”€ πŸ“„ app.rc                      # Windows resource file (icon, version info)
β”œβ”€β”€ πŸ“„ Verax.pro                   # Qt project file (qmake)
β”œβ”€β”€ πŸ“„ Verax.qrc                   # Qt resource collection
β”œβ”€β”€ πŸ“„ build.bat                   # Automated build script
β”‚
β”œβ”€β”€ πŸ“ src/
β”‚   β”œβ”€β”€ πŸ“ core/                   # Core engine (no UI dependencies)
β”‚   β”‚   β”œβ”€β”€ Scanner.cpp/.h         # πŸ” Main scanning engine (4000+ lines)
β”‚   β”‚   β”‚                          #    β€’ SHA-256 hashing
β”‚   β”‚   β”‚                          #    β€’ Byte signature matching
β”‚   β”‚   β”‚                          #    β€’ PE structure analysis
β”‚   β”‚   β”‚                          #    β€’ Heuristic scoring
β”‚   β”‚   β”‚                          #    β€’ advancedCleanThreat() PE repair
β”‚   β”‚   β”‚                          #    β€’ repairEntryPoint()
β”‚   β”‚   β”‚                          #    β€’ detectOriginalPrologue()
β”‚   β”‚   β”‚                          #    β€’ recalcPeChecksum()
β”‚   β”‚   β”‚                          #    β€’ truncateOverlay()
β”‚   β”‚   β”‚                          #    β€’ backupBeforeRepair()
β”‚   β”‚   β”‚
β”‚   β”‚   β”œβ”€β”€ SignatureDb.cpp/.h     # πŸ“¦ Dual-mode signature database
β”‚   β”‚   β”‚                          #    β€’ SQLite primary storage
β”‚   β”‚   β”‚                          #    β€’ JSON automatic fallback
β”‚   β”‚   β”‚                          #    β€’ Online update support
β”‚   β”‚   β”‚                          #    β€’ Byte signature loading
β”‚   β”‚   β”‚                          #    β€’ Family-based lookup
β”‚   β”‚   β”‚
β”‚   β”‚   β”œβ”€β”€ Quarantine.cpp/.h      # 🏦 AES-256 encrypted vault
β”‚   β”‚   β”‚                          #    β€’ BCrypt API encryption
β”‚   β”‚   β”‚                          #    β€’ HWID-derived key
β”‚   β”‚   β”‚                          #    β€’ 3-pass secure delete
β”‚   β”‚   β”‚                          #    β€’ SQLite tracking
β”‚   β”‚   β”‚
β”‚   β”‚   β”œβ”€β”€ Settings.cpp/.h        # βš™οΈ Persistent settings
β”‚   β”‚   β”‚                          #    β€’ QSettings (registry-backed)
β”‚   β”‚   β”‚                          #    β€’ Startup registration
β”‚   β”‚   β”‚                          #    β€’ Engine toggles
β”‚   β”‚   β”‚                          #    β€’ Reset all functionality
β”‚   β”‚   β”‚
β”‚   β”‚   └── Logger.cpp/.h          # πŸ“ Rotating file logger
β”‚   β”‚                              #    β€’ userDataDir() β€” central path
β”‚   β”‚                              #    β€’ 5MB rotation, keep 5
β”‚   β”‚                              #    β€’ Thread-safe (QMutex)
β”‚   β”‚                              #    β€’ Qt message handler bridge
β”‚   β”‚
β”‚   β”œβ”€β”€ πŸ“ ui/
β”‚   β”‚   └── MainWindow.cpp/.h      # πŸ–₯️ Main application window
β”‚   β”‚                              #    β€’ Scan orchestration
β”‚   β”‚                              #    β€’ Threat list management
β”‚   β”‚                              #    β€’ Report generation
β”‚   β”‚                              #    β€’ Settings dialog
β”‚   β”‚
β”‚   β”œβ”€β”€ πŸ“ widgets/                # Custom UI widgets
β”‚   β”‚   β”œβ”€β”€ ScanOptionsDialog.*    # Scan configuration dialog
β”‚   β”‚   β”œβ”€β”€ AboutDialog.*          # About/credits dialog
β”‚   β”‚   └── ...                    # Additional dialogs
β”‚   β”‚
β”‚   └── πŸ“ utils/                  # Utility functions
β”‚
β”œβ”€β”€ πŸ“ resources/
β”‚   β”œβ”€β”€ πŸ“ signatures/
β”‚   β”‚   └── seed.json              # πŸ“‹ 65+ built-in malware signatures
β”‚   β”œβ”€β”€ πŸ“ sql/
β”‚   β”‚   └── schema.sql             # Database schema (signatures, quarantine, history)
β”‚   β”œβ”€β”€ πŸ“ icons/                  # Application icons (multi-resolution)
β”‚   └── πŸ“ themes/                 # UI themes (QSS stylesheets)
β”‚
β”œβ”€β”€ πŸ“ i18n/                       # 🌐 Translation files
β”‚   β”œβ”€β”€ verax_en.ts                # English translations
β”‚   └── verax_ar.ts                # Arabic translations
β”‚
β”œβ”€β”€ πŸ“ third_party/                # Third-party dependencies
β”œβ”€β”€ πŸ“ docs/                       # Documentation
β”‚   └── πŸ“ screenshots/            # UI screenshots for README
└── πŸ“ build/                      # Build output

Core Engine Flow

graph TD
    A["πŸ“„ File Input"] --> B{"πŸ”‘ SHA-256 Lookup"}
    B -->|Match| C["🚨 Known Threat"]
    B -->|No Match| D{"πŸ”Ž Byte Signature Scan"}
    D -->|Match| C
    D -->|No Match| E{"πŸ—οΈ PE Structure Analysis"}
    E -->|Suspicious| F{"🧠 Heuristic Scoring"}
    E -->|Clean| G["βœ… Safe"]
    F -->|"Score β‰₯ Threshold"| C
    F -->|"Score < Threshold"| G
    C --> H{"πŸ‘€ User Action"}
    H -->|Clean| I["πŸ”§ PE Repair Engine"]
    H -->|Quarantine| J["🏦 AES-256 Vault"]
    H -->|Delete| K["πŸ—‘οΈ Secure Delete"]
    I --> L["Repair Pipeline"]
    L --> L1["Remove Virus Sections"]
    L --> L2["Fix Entry Point"]
    L --> L3["Remove Overlay Virus"]
    L --> L4["Recalc PE Checksum"]
    L --> L5["Truncate to Correct Size"]
    L --> M{"βœ… Verify PE Integrity"}
Loading

PE Repair Pipeline (Detailed)

β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”
β”‚                    advancedCleanThreat()                         β”‚
β”œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€
β”‚                                                                 β”‚
β”‚  πŸ“‹ SETUP                                                       β”‚
β”‚  β”œβ”€ Create .bak backup                                          β”‚
β”‚  β”œβ”€ Memory-map file (read/write)                                β”‚
β”‚  β”œβ”€ Parse DOS β†’ PE β†’ Optional β†’ Section headers                β”‚
β”‚  β”œβ”€ Detect PE32 vs PE32+ (64-bit)                               β”‚
β”‚  β”œβ”€ Extract fileAlign, secAlign, numSections                    β”‚
β”‚  └─ Determine isDll from FILE_HEADER.Characteristics            β”‚
β”‚                                                                 β”‚
β”‚  πŸ” STEP A0: Analyze Entry Point                                β”‚
β”‚  β”œβ”€ Read first bytes at EP file offset                          β”‚
β”‚  β”œβ”€ Check for JMP (E9/E8/EB) redirect                          β”‚
β”‚  └─ Set epHasRedirect = true/false                              β”‚
β”‚                                                                 β”‚
β”‚  πŸ” STEP A1: Recover Prologue from Virus Section                β”‚
β”‚  β”œβ”€ If JMP found β†’ follow JMP target                            β”‚
β”‚  β”œβ”€ Search virus section for saved prologue                     β”‚
β”‚  └─ If found β†’ write back to EP location                        β”‚
β”‚                                                                 β”‚
β”‚  πŸ—‘οΈ PASS 1: Remove Named Infector Sections                      β”‚
β”‚  β”œβ”€ Match section names against 25+ virus names                 β”‚
β”‚  β”œβ”€ memmove() to collapse section data                          β”‚
β”‚  β”œβ”€ Update section table in PE header                           β”‚
β”‚  β”œβ”€ Decrement NumberOfSections                                  β”‚
β”‚  └─ Track curSize -= sectionSize                                β”‚
β”‚                                                                 β”‚
β”‚  πŸ—‘οΈ PASS 2: Remove Orphaned RWX Sections                        β”‚
β”‚  β”œβ”€ Find sections with RWX flags                                β”‚
β”‚  β”œβ”€ Skip if name is in standard section whitelist (35+)         β”‚
β”‚  β”œβ”€ Same memmove + header update                                β”‚
β”‚  └─ Track curSize -= sectionSize                                β”‚
β”‚                                                                 β”‚
β”‚  βœ‚οΈ PASS 3: Trim Inflated Sections                               β”‚
β”‚  β”œβ”€ For each section:                                           β”‚
β”‚  β”‚   correctRaw = ceil(VirtualSize / FileAlign) * FileAlign     β”‚
β”‚  β”œβ”€ If SizeOfRawData > correctRaw + 0x1000:                     β”‚
β”‚  β”‚   β”œβ”€ Zero excess bytes                                       β”‚
β”‚  β”‚   β”œβ”€ Update SizeOfRawData = correctRaw                       β”‚
β”‚  β”‚   └─ curSize -= excess                                       β”‚
β”‚                                                                 β”‚
β”‚  🎯 STEP C: Fix Entry Point (3 Cases)                            β”‚
β”‚  β”œβ”€ Case 1: EP in removed section β†’ CRT startup scan            β”‚
β”‚  β”œβ”€ Case 2: EP bytes redirected β†’ restore prologue              β”‚
β”‚  └─ Case 3: EP untouched β†’ DO NOTHING                           β”‚
β”‚                                                                 β”‚
β”‚  🧹 STEP D: Zero Code Caves                                     β”‚
β”‚  β”œβ”€ Scan for PUSHAD+delta patterns (60 E8 00 00 00 00)          β”‚
β”‚  β”œβ”€ Scan for PUSHFD+PUSHAD+CALL (9C 60 E8 00 00 00 00)         β”‚
β”‚  β”œβ”€ Zero each found pattern (256 bytes)                         β”‚
β”‚  └─ Remove WRITE flag from .text/.code                          β”‚
β”‚                                                                 β”‚
β”‚  πŸ“ STEP E: Fix Headers + Remove Overlay Virus                   β”‚
β”‚  β”œβ”€ Recalculate SizeOfImage from last section                   β”‚
β”‚  β”œβ”€ Calculate lastSectionEnd                                    β”‚
β”‚  β”œβ”€ Read Security Directory for Authenticode cert               β”‚
β”‚  β”œβ”€ certEnd = secDir.VA + secDir.Size                           β”‚
β”‚  β”œβ”€ If file > certEnd β†’ virus overlay detected                  β”‚
β”‚  β”œβ”€ correctSize = certEnd (or lastSectionEnd if no cert)        β”‚
β”‚  └─ Recalculate PE checksum                                     β”‚
β”‚                                                                 β”‚
β”‚  βœ‚οΈ STEP F: Truncate File                                        β”‚
β”‚  β”œβ”€ finalSize = min(curSize, correctSize)                       β”‚
β”‚  └─ QFile::resize(finalSize)                                    β”‚
β”‚                                                                 β”‚
β”‚  βœ… STEP G: Verify PE Integrity                                  β”‚
β”‚  β”œβ”€ Re-map and check DOS signature                              β”‚
β”‚  β”œβ”€ Check PE signature                                          β”‚
β”‚  └─ Verify section alignment                                    β”‚
β”‚                                                                 β”‚
β”‚  ↩️ ON FAILURE: Auto-restore from .bak backup                    β”‚
β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜

πŸ“₯ Installation

Two Modes: Install or Portable

VeraxCore works out of the box in two modes β€” you choose on first launch:

πŸ”Ή Option A: Install Mode (Recommended)

On first launch, VeraxCore automatically asks if you want to install it to your system:

  1. Download the latest release from Releases
  2. Run VeraxCore.exe as Administrator
  3. On first launch, a dialog asks: "Would you like to install VeraxCore?"
  4. Click Yes β†’ VeraxCore installs itself to C:\Program Files\VeraxCore Antivirus\
  5. Creates Start Menu shortcut, desktop shortcut, and startup entry
  6. Enables automatic updates β€” VeraxCore checks for new versions and updates itself
  7. Done! VeraxCore is ready to protect your system

πŸ”Ή Option B: Portable Mode

Don't want to install? No problem β€” VeraxCore is portable by design:

  • Just extract and run β€” no installation wizard needed
  • All data stored in UserData/ next to the executable
  • No registry pollution (except optional startup entry)
  • Move the entire folder to any location, USB drive, or external disk
  • Works on any Windows machine without installation
  • Perfect for USB rescue drives and technician toolkits

Auto-Update System

VeraxCore includes a built-in automatic update system:

  • πŸ”„ Version Check β€” Automatically checks for new versions on startup
  • πŸ“₯ One-Click Update β€” Download and install updates from within the app
  • πŸ“‹ Signature Updates β€” Malware signature database updated independently
  • πŸ”” Update Notifications β€” Get notified when a new version is available
  • βš™οΈ Configurable β€” Enable/disable auto-update in Settings

First Run

On first launch, VeraxCore will:

  1. Ask if you want to install or run in portable mode
  2. Create UserData/ directory structure automatically
  3. Initialize SQLite signature database (or JSON fallback)
  4. Import 65+ built-in malware signatures from seed.json
  5. Check for available updates (if online)
  6. Register optional Windows startup entry (if enabled)
  7. Display the main dashboard β€” ready to scan!

πŸ”¨ Building from Source

Prerequisites

  • Qt 5.15+ (MSVC 2019 or MinGW 8.1+)
  • C++17 compatible compiler
  • Windows SDK 10.0+
  • Git (for cloning)

Build Steps

# Clone the repository
git clone https://github.com/alisakkaf/VeraxCore-Antivirus.git
cd VeraxCore

# Option 1: Qt Creator (Recommended)
# 1. Open Verax.pro in Qt Creator
# 2. Configure kit (MSVC 2019 x86 or x64)
# 3. Build β†’ Build Project (Ctrl+B)
# 4. Run β†’ Run (Ctrl+R)

# Option 2: Command line (MSVC)
"C:\Qt\5.15.2\msvc2019_64\bin\qmake.exe" Verax.pro -spec win32-msvc
nmake release

# Option 3: Command line (MinGW)
"C:\Qt\5.15.2\mingw81_64\bin\qmake.exe" Verax.pro -spec win32-g++
mingw32-make release

# Option 4: Automated build script
build.bat

Build Configuration

The Verax.pro project file supports:

  • MSVC 2019/2022 (x86, x64)
  • MinGW 8.1+ (x86, x64)
  • Qt 5.15.x and Qt 6.x
  • Debug and Release configurations

πŸ“ Data Storage

All user data is stored in UserData/ directory next to the executable β€” no hidden AppData folders:

VeraxCore Antivirus/
β”œβ”€β”€ VeraxCore.exe                  # Main application
β”œβ”€β”€ *.dll                          # Qt runtime libraries
β”œβ”€β”€ UserData/                      # πŸ“ All user data here
β”‚   β”œβ”€β”€ db/
β”‚   β”‚   β”œβ”€β”€ verax.sqlite           # πŸ“Š Signature database
β”‚   β”‚   β”œβ”€β”€ verax.sqlite-wal       # SQLite write-ahead log
β”‚   β”‚   └── verax_signatures.json  # πŸ“‹ JSON fallback cache
β”‚   β”œβ”€β”€ Logs/
β”‚   β”‚   β”œβ”€β”€ verax.log              # πŸ“ Current log file
β”‚   β”‚   β”œβ”€β”€ verax.log.1            # Previous log
β”‚   β”‚   └── verax.log.2            # Older log (max 5 rotations)
β”‚   β”œβ”€β”€ Vault/
β”‚   β”‚   └── *.qvault              # πŸ”’ AES-256 encrypted quarantine files
β”‚   └── reports/
β”‚       β”œβ”€β”€ scan-20260602-051530.json  # πŸ“Š Scan report
β”‚       └── scan-20260601-220000.json  # πŸ“Š Older report

❓ FAQ

General

Q: What does VeraxCore do differently from other antivirus tools?

VeraxCore's unique advantage is its PE Repair Engine. While most antivirus tools simply delete infected files, VeraxCore can:

  1. Detect the exact infection type and technique used
  2. Remove only the virus code from the file
  3. Repair the PE structure (entry point, sections, size)
  4. Preserve the original program's functionality

This means you get your programs back β€” clean and working β€” instead of losing them forever.

Q: Will VeraxCore delete my files?

No. VeraxCore's primary approach is to repair infected files. It surgically removes virus code while preserving the original program. You always have three choices:

  • Clean β€” Repair the file (recommended)
  • Quarantine β€” Move to encrypted vault (recoverable)
  • Delete β€” Permanent removal (with secure overwrite)
Q: Is VeraxCore a replacement for Windows Defender?

No. VeraxCore is designed as a complementary tool. It's especially useful for:

  • Repairing infected files that Defender would just delete
  • Second-opinion scanning
  • Offline environments where Defender can't update
  • Understanding exactly what type of virus infected your files
Q: Does it work without internet?

Yes, 100%. All four detection engines work fully offline:

  • SHA-256 signatures are built into the application
  • Byte patterns are embedded in seed.json
  • PE analysis is entirely local
  • Heuristic scoring is algorithm-based

Internet is only needed for optional signature updates.

Q: Is it really free? What's the catch?

VeraxCore is 100% free and open-source under GPLv3. No catch:

  • No ads
  • No telemetry or data collection
  • No premium/paid version
  • No feature limitations
  • No trial period
  • Forever free

Technical

Q: Why does it need Administrator privileges?

To scan and repair files in protected system locations:

  • C:\Windows\ and subdirectories
  • C:\Program Files\ and C:\Program Files (x86)\
  • System startup folders
  • Other user profiles (for system-wide scans)

Without admin rights, VeraxCore can still scan user-accessible files, but many system files would be skipped.

Q: What happens if repair fails?

VeraxCore has multiple safety nets:

  1. Pre-repair backup β€” A .bak file is created before any modification
  2. Auto-restore β€” If repair fails, the backup is automatically restored
  3. PE verification β€” After repair, the PE structure is verified
  4. No data loss β€” If anything goes wrong, the original file is preserved
Q: Can it repair 64-bit executables?

Yes. VeraxCore supports both:

  • PE32 (32-bit) executables and DLLs
  • PE32+ (64-bit) executables and DLLs

The engine automatically detects the PE type and applies the correct repair strategy.

Q: What file types does it scan?

VeraxCore focuses on PE (Portable Executable) files:

  • .exe β€” Executable files
  • .dll β€” Dynamic Link Libraries
  • .scr β€” Screen savers
  • .sys β€” Driver files (detection only)
  • .ocx β€” ActiveX controls

It also performs SHA-256 hash matching on any file type.

Q: How do I add custom malware signatures?

Edit resources/signatures/seed.json and add entries:

{
    "sha256": "your_64_char_hash_here...",
    "name": "Virus:Win32/CustomName",
    "family": "FamilyName",
    "severity": 8,
    "repairable": true,
    "repair_method": "PE.SectionWipe+EP.Restore",
    "byte_signatures": ["E9????????558BEC"]
}

Rebuild the application or place the updated seed.json in the resources.

Windows Errors

Q: What is error 0xc0000142 and how does VeraxCore fix it?

Error 0xc0000142 (STATUS_DLL_INIT_FAILED) means a program's initialization code failed to execute. This commonly happens when:

  • A virus modifies the Entry Point (EP) of an EXE/DLL
  • The virus section is removed but the EP still points to deleted code
  • The PE structure is corrupted after incomplete virus removal

VeraxCore's fix:

  1. Detects if the EP was modified by the virus
  2. Scans the .text section for the CRT startup pattern
  3. Restores the correct EP and prologue bytes
  4. Recalculates all PE headers

This is the #1 reason VeraxCore exists β€” most free tools can't handle this.

Q: What is error 0xc000007b?

Error 0xc000007b (STATUS_INVALID_IMAGE_FORMAT) means Windows can't load the executable because:

  • A dependent DLL is corrupted
  • Architecture mismatch (32-bit vs 64-bit)
  • PE headers are damaged

VeraxCore's fix: Repairs the DLL's PE structure, restores correct SizeOfImage, and fixes section headers.

Q: What about "Startup Load Failed" errors?

This error occurs when:

  • The Entry Point is redirected to a non-existent address
  • The DLL's DllMain function can't be found
  • The PE overlay data is corrupted

VeraxCore's fix: Smart EP repair that correctly identifies whether the virus modified the EP and restores the proper function prologue (different for EXE vs DLL).

Comprehensive Windows Error Reference

Error Code Error Name Cause VeraxCore Fix
0xc0000142 DLL_INIT_FAILED Corrupted EP or DLL Smart EP restoration
0xc000007b INVALID_IMAGE_FORMAT Damaged PE structure PE header repair
0xc0000005 ACCESS_VIOLATION Code in deleted section Section removal + EP fix
0xc0000135 DLL_NOT_FOUND DLL path corrupted DLL structure repair
0xc000012f BAD_EXE_FORMAT Invalid PE headers Full PE reconstruction
0xc0000018 CONFLICTING_ADDRESSES Bad SizeOfImage SizeOfImage recalculation
Application Error Runtime crash Virus code executed Pre-execution repair
Startup Load Failed Init failure DllMain corrupted DLL prologue restoration
File size changed PE inflation Virus appended data Overlay truncation

πŸ”§ Troubleshooting

VeraxCore won't start

  1. Ensure you're running as Administrator
  2. Check that all Qt DLLs are present in the same directory
  3. Verify Windows version compatibility (Windows 7 SP1+)
  4. Check UserData/Logs/verax.log for error details

Scan is slow

  1. Exclude large media files from scan scope
  2. Use Quick Scan instead of Full Scan for routine checks
  3. Close other disk-intensive applications
  4. Consider scanning specific folders instead of entire drives

Repair didn't work

  1. Check UserData/Logs/verax.log for repair details
  2. The .bak backup file should be next to the original
  3. Try quarantine β†’ restore as an alternative
  4. Some heavily modified files may not be repairable

False positive detected

  1. Check the severity score β€” low scores may be false positives
  2. Adjust the heuristic threshold in Settings
  3. Report false positives via GitHub Issues
  4. The file's SHA-256 hash can be whitelisted

Database errors

  1. Delete UserData/db/verax.sqlite β€” it will be recreated
  2. The JSON fallback (verax_signatures.json) will activate automatically
  3. Run a signature update after database reset

πŸ”’ Security

Please see SECURITY.md for our security policy and how to report vulnerabilities responsibly.


πŸ“œ License

This project is licensed under the GNU General Public License v3.0 β€” see the LICENSE file for details.

What this means:

  • βœ… Free to use, modify, and distribute
  • βœ… Source code must remain open
  • βœ… Modifications must be shared under GPLv3
  • βœ… Commercial use allowed (with GPLv3 compliance)
  • ❌ No warranty provided

⚠️ Disclaimer

Please see DISCLAIMER.md for the full disclaimer.

This software is provided "as is" without warranty of any kind. The authors are not responsible for any damage, data loss, or system instability caused by the use of this software. Always maintain backups of important files.


🀝 Contributing

We welcome contributions! Please see CONTRIBUTING.md for guidelines.

Areas where contributions are especially welcome:

  • 🦠 New malware signatures
  • 🌐 New language translations
  • πŸ› Bug reports with reproduction steps
  • πŸ“– Documentation improvements
  • 🎨 UI/UX enhancements

πŸ“Š Project Stats

Metric Value
Language C++17
Framework Qt 5.15+
Core Engine 4,000+ lines
Signatures 65+ built-in
Virus Families 25+ supported
Section Names 25+ detected
Standard Sections 35+ protected
Detection Engines 4 independent
Encryption AES-256-CBC
License GPLv3

πŸ‘¨β€πŸ’» Author

Ali Sakkaf (ΨΉΩ„ΩŠ السكاف)
Independent Software Developer & Security Researcher

🌐 Website β€’ πŸ’» GitHub β€’ πŸ“˜ Facebook


🌟 Star History

If you find VeraxCore useful, please consider giving it a ⭐ star on GitHub! It helps others discover the project.

Star on GitHub


πŸ’‘ Support the Developer

If you find my tools and projects useful, consider supporting my work. Your support helps keep these projects completely free!

Crypto Asset Network Wallet Address (Copy) Quick Scan
USDT TRC20 TYLBeDA5aGNcc3WkVqf3xWPHXmsZzs2p28 QR
USDT BEP20 0x67cf27f33c80479ea96372810f9e2ee4c3b095c5 QR
BTC Bitcoin bc1q97dr37h37npzarmmrv0tjz2nm50htqc7pfpzj6 QR
ETH ERC20 0x67cf27f33c80479ea96372810F9e2EE4C3b095C5 QR
SOL Solana Cbesgr4tvo4T1inNMFe46GSym2qMYjkmofbXFc77rDNK QR
USDC ERC20 0x67cf27f33c80479ea96372810f9e2ee4c3b095c5 QR
USDC SPL Cbesgr4tvo4T1inNMFe46GSym2qMYjkmofbXFc77rDNK QR
USDC BEP20 0x67cf27f33c80479ea96372810F9e2EE4C3b095C5 QR

VeraxCore
VeraxCore Antivirus β€” Real Protection. Zero Noise.
Copyright Β© 2026 VeraxCore. All rights reserved.
Made with ❀️ by Ali Sakkaf

About

πŸ›‘οΈ Free open-source antivirus & malware removal tool for Windows. Repairs infected EXE/DLL files instead of deleting them. Multi-engine threat detection with smart PE repair engine.

Topics

Resources

Code of conduct

Contributing

Security policy

Stars

10 stars

Watchers

0 watching

Forks

Releases

Contributors

Languages