• Home
  • Products
    • Code Virtualizer
    • Themida
    • WinLicense
    • Compare Products
  • Order
  • Support
  • Download





Code Virtualizer [3.2.3.0] (13-Mar-2025)
[+]
x64: Improved detection of switch/case patterns from specific compilers to be virtualized
[+]
ARM64: Added support for switch-case virtualization in Visual Studio C++ applications
[+]
ARM64/x86/x64: ELF: Improved handling of relocations in ELF binaries
[+]
ARM64/x86/x64: ELF: Improved handling of NOBITS type sections
[+]
x86/x64: Added support for STR_ENCRYPT in Golang applications
[+]
ARM64/x86/x64: Optimized memory allocation in protection time when adding multiple VMs
[+]
ARM64: Improved dereferences instructions engine
[+]
ARM64: Added VirtualizerDDK (sys/lib) for Windows device drivers
[+]
ARM64: Added support to detect protection markers with special MSVC compiler optimizations
[!]
ARM64: Fixed virtualization of specific "LDP Wn, Wn, [Wx, imm]" opcodes
[!]
ARM64: Fixed virtualization of specific "EXTR Wn, Wn, Wn, imm" opcodes
[!]
ARM64: Fixed virtualization of "LDURSW" opcodes
[!]
ARM64: Fixed virtualization of "MSUB Wn, Wn, Wn, Wn"
[!]
ARM64: Fixed virtualization of "NGC Wn, Wn"
[!]
ARM64: Fixed virtualization of "SBC Wn, Wn"
[!]
ARM64: Fixed virtualization of "MNEG rd, rn, rm" when "rd = rm"
[!]
ARM64/x86/x64: Fixed compatibitily issue with option "OPTION_ADVANCED_ENHANCED_SPECIAL_LOCATIONS" in specific applications
[!]
ARM64/x86/x64: Fixed a bug where MAP functions with the same starting address as the ending address of a previous MAP function were incorrectly skipped
[!]
x86/x64: Fixed an issue where MAP functions to virtualize with less than 5 bytes of code were incorrectly skipped
[!]
ARM64/x86/x64: Fixed exception in protection time in specific applications when adding dozens of VMs
[!]
ARM64/x86/x64: Fixed support in STR_ENCRYPT macros inside VM markers with option "OPTION_ADVANCED_ENHANCED_SPECIAL_LOCATION

Code Virtualizer [3.2.2.0] (06-Nov-2024)
[+]
x64: Added new module for better support for x64 Handled exceptions in virtualized code (Advanced Option "OPTION_ADVANCED_ENHANCED_SPECIAL_LOCATIONS=YES")
[+]
x86/x64: Improved support for dereferences instructions in virtualized macros
[+]
x64: Improved switch/case support in virtualized code (use Advanced Option "OPTION_ADVANCED_ENHANCED_SPECIAL_LOCATIONS=YES")
[+]
ARM64: Added Windows ARM64 handled exceptions support on virtualized code (use Advanced Option "OPTION_ADVANCED_ENHANCED_SPECIAL_LOCATIONS=YES")
[+]
ARM64: Optimized space in target binary for encrypted strings
[+]
x86/x64: Added Advanced Option "OPTION_ADVANCED_JUMP_VM_WITH_INITIAL_NOP" (required for very specific applications)
[+]
ARM64/x86/x64: Improved parsing of Clang 9.0.0 MAP files
[+]
ARM64/x86/x64: Improved handling of UTF-8 strings to virtualize
[+]
ARM64/x86/x64: Added detection of function aliases sharing the same address in MAP files
[+]
ARM64/x86/x64: Enabled multiple "Unselect" in the MAP functions selection dialog
[+]
ARM64/x86/x64: Improved display of localized strings in the User Interface
[+]
ARM64/x86/x64: Added support for parsing Android NDK MAP files
[+]
ARM64/x86/x64: MAP function names are now displayed in the protection log (replacing start/end addresses)
[+]
ARM64/x86/x64: Added log in protection time to display the string encryption process
[+]
ARM64/x86/x64: Added log in protection time to display the virtualization of inserted code blocks
[!]
ARM64: Fixed virtualization of specific MSR/MZR opcodes in TIGER VM and FALCON VM
[!]
ARM64/x86/x64: Fixed detection when a MAP function to virtualize already contains a macro marker inside
[!]
ARM64/x86/x64: Mach-O: Fixed the removal of the VirtualizedSDK library in specific protected binaries
[!]
ARM64/x86/x64: Mach-O: Fixed reconstruction of LC_DYLD_CHAINED_FIXUPS chain in specific binaries
[!]
ARM64/x86/x64: Fixed a bug with setting VM instances when reloading a file in the User Interface
[!]
ARM64/x86/x64: Fixed a bug where the selected VM was not preserved when reloading a file in the User Interface
[!]
ARM64: Fixed an issue where an encrypted string was not destroyed when the same string pointer was used in different protection macros
[!]
ARM64: Fixed exception in protection time when searching for specific strings to encrypt
[!]
ARM64/x86/x64: ELF: Fixed bug on specific ELF binaries where macros were not unselected correctly from the User Interface
[!]
ARM64: Fixed memory leak processing strings to encrypt in protection time
[!]
ARM64: Fixed very random bug with a misaligned instruction inside the protection pool code
[!]
x64: Fixed wrong handling of encrypted strings for specific x64 opcodes when referencing a string
[!]
ARM64: Fixed wrong memory pointer with the decrypted string address for specific ARM64 opcodes
[!]
ARM64/x86/x64: Fixed loading of MAP functions when saving a project and reloading the file again
[!]
ARM64/x86/x64: Fixed loading of MAP functions when using special path constants in the input file
[!]
ARM64: Fixed protection error when specific encrypted strings are processed
[!]
ARM64/x86/x64: Fixed string Re-encrypt when strings were encrypted from VM macros and also STR_ENCRYPT macros were nested in the VM macro
[!]
ARM64/x86/x64: Fixed bug in User Interface where MAP functions associated to a specific VM were not selected in the Virtual Machine panel
[!]
ARM64: Fixed handling of encryted strings when both VM and STR_ENCRYPT macros are present with same pointers to a single string

Code Virtualizer [3.2.1.0] (06-Sep-2024)
[+]
x86/x64: Improved spinlock mechanism for entering and exiting the VM
[+]
ARM64/x86/x64: Enhanced detection of localized strings for the string encryption feature
[+]
ARM64: Added a detection to identify when an encrypted string is referenced from different code locations
[+]
ARM64/x86/x64: Added log of unused "Stealth Data Area" space
[!]
x64: Fixed a race condition occurring during parallel execution within a specific VM
[!]
x86/x64: Fixed handling of specific virtualized instructions with "lock" prefix
[!]
x64: Fixed memory allocation issue when only a re-virtualized VM was added into the protected binary
[!]
ARM64/x86/x64: Fixed calculation of required Pool data area when using MAP functions
[!]
ARM64/x86/x64: Fixed exit code when protecting via command line and there are no protection macros inserted
[!]
x64: A MAP function from a x64 binary could be assigned to an ARM64 VM with "SHIFT+Arrow"
[!]
ARM64/x86/x64: Fixed issue not reading correctly the size of the Stealth Data Area

Code Virtualizer [3.2.0.0] (28-Aug-2024)
[+]
ARM64/x86/x64: Added parallel execution within each VM instance (32 virtual cores by default)
[+]
ARM64/x86/x64: Improved protection in FISH VM
[+]
ARM64/x86/x64: Improved protection in PUMA VM
[+]
ARM64/x86/x64: Improved speed loading/parsing the target binary
[+]
x86/x64: Improved detection of macro markers in GO applications
[+]
ARM64/x86/x64: Added support with "Compress Virtual Machine" for ELF and Mach-O binaries
[+]
ARM64/x86/x64:Improved detection of Stealth Areas
[+]
x64: Improved search of pointers to strings in macro markers (for encryption)
[+]
ARM64/x86/x64: Improved randomization in VM registers
[+]
ARM64/x86/x64: Added support for MAP files generated by IDA disassembler
[+]
x86/x64: Added support for encrypted strings when either "Optimize for Windows on ARM" or "OPTION_ADVANCED_NO_EXECUTABLE_WRITABLE_SECTION" is enabled
[+]
ARM64/x86/x64: Added support for encrypted strings with Stealth Regs area
[+]
ARM64/x86/x64: Added support for encrypted strings in PE/ELF/Mach-O files
[+]
ARM64/x86/x64: Added random pool data area
[+]
ARM64/x86/x64: New design for protected symbols/variables insertion
[+]
ARM64: Added support for command line switch "/checkprotected"
[+]
ARM64/x86/x64: Added string "Re-Encrypt" option
[+]
ARM64/x86/x64:Improved parsing of MAP files
[+]
ARM64/x86/x64: Falcon VM virtualization allowed in DEMO version
[+]
ARM64: Optimized search of macro markers when called from API functions
[+]
ARM64: Improved code mutation engine
[+]
ARM64: Added MUTATE macro
[+]
ARM64: Added support for nesting STR_ENCRYPT macros inside MUTATE macros
[+]
ARM64/x86/x64: Added Advanced Option "OPTION_ADVANCED_MAX_CPUS_IN_EACH_VM_INSTANCE" to change the maximum number of virtual cores for each VM instance
[+]
ARM64/x86/x64: Added "HW Stack Protection Support" option in GUI
[+]
x86/x64: Added compatibility with Hardware-enforced Stack Protection with option "Compress Virtual Machine"
[!]
x86/x64: Fixed specific compatibility issue finding protection macros via an external ASM module
[!]
ARM64: Fixed assembling of ADRP opcode with negative pages
[!]
ARM64/x86/x64: Minor bugs fixed

Code Virtualizer [3.1.9.0] (28-Mar-2024)
[+]
Improved virtualization of "REP string" opcodes
[+]
More improvements in the dereferences engine
[+]
Improved detection of protection macro markers in VB6
[+]
Added FALCON TINY VM support for VB6
[+]
Added map file parser for Xcode Clang compiler
[+]
Added .ini option "DisableStealthAreaScanning" to skip searching for Stealth Areas
[+]
Improved compatibility protecting Windows Device Drivers
[+]
ARM64: Improved speed loading/parsing binaries
[+]
ARM64: Improved support detecting protection macro markers for Delphi 12 applications
[+]
ARM64: Improved virtualization for "ASR reg, reg, imm"
[!]
Fixed random bug in repermutator engine when generating specific VM architectures
[!]
Fixed bug in dereferences engine when macros from a MAP file are unselected
[!]
ARM64: Fixed virtualization for specific TBZ/TBNZ instructions
[!]
ARM64: Fixed handling of "LDR reg, label" instruction for floating-point registers
[!]
ARM64: Fixed C include file for GCC compiler

Code Virtualizer [3.1.8.0] (15-Jan-2024)
[+]
Improved detection of false strings in STR_ENCRYPT protection macros
[+]
x64: Improved support for try/catch inside virtualization markers
[+]
Added Advanced Option "OPTION_PROTECTION_DONT_PRESERVE_SECTIONS_FLAGS"
[+]
Improved restoration of GUI windows positions when a monitor has been disconnected
[+]
Added an .ini option "DisableMacroScanning" to skip parsing of the file for searching protection macro markers
[+]
Added warning when protecting Mach-O files with Stealth Mode but stealth regs area is not present
[+]
ARM64: Improved parsing of protection macros via API functions
[!]
x64: Fixed bug in "CAT_BLACK VM"
[!]
Fixed compatibility issue when inserting via MAP file and instruction after the last one is a JMP [IAT]
[!]
Fixed random exception when parsing specific applications when searching for strings to encrypt
[!]
ARM64: Fixed virtualization of arithmetic operations with SP register and LSL/UXTB extensions
[!]
ARM64: Fixed search of Mach-O API markers when using multi-core protection

Code Virtualizer [3.1.7.0] (02-Oct-2023)
[+]
Added FALCON TINY VM, a very fast VM with low protection
[+]
Improved parallelism generating common (non revirtualized) virtual machines
[+]
Improved parallelism generating revirtualized VMs
[+]
Optimized LONDON virtual machine engine
[+]
Optimized generation of micro-ops for specific VM architectures
[+]
More improvements parallelizing the code virtualization process
[+]
Added full parallelization to search for protection macro markers
[+]
Improved compatibility with Advanced Option "OPTION_ADVANCED_VM_ENGINE_PRESERVE_FLAGS_ON_EXIT=NO" and re-virtualized VMs
[+]
Improved support in MUTATE macros in multithreading applications
[+]
Advanced Option "OPTION_ADVANCED_INITIAL_SEED" now produces a 100% exact match output file (even with parallel protection)
[+]
Decreased amount of protection memory when inserting multiple virtual machines
[+]
Added Advanced Option "OPTION_ADVANCED_SKIP_MISSING_MAP_FUNCTIONS" to keep protecting even if missing functions in MAP file
[+]
Added Advanced Option "OPTION_ADVANCED_LIMIT_CORES_FOR_PROTECTION" to restrict the number of cores during the protection stage
[+]
Improved detection of Golang applications
[+]
When stealth regs and code areas are present, no writable/executable sections will be created
[+]
Added Rust example file to use the Stealth Mode insertion
[+]
Opening of last project is now independent from x86/x64 and ARM64 versions
[+]
Logged the time taken for protection and final MD5 hash in the final protection report
[+]
ARM64: Optimized generation of DOLPHIN VM
[+]
ARM64: Improved decoding/encoding of ARM64 instructions
[+]
ARM64: Improved virtualization of test/compare branch instructions
[+]
ARM64: Added Stealth Mode insertion support
[+]
ARM64: Modified design of the ARM64 opcode mutator to support full parallelism
[!]
Fixed compatibility issue with macro markers in specific Golang applications
[!]
Fixed exit code when protecting via the command line and passing a non existing file to protect
[!]
Fixed exception in protection time when more than 100 customized VMs are present
[!]
ARM64: Fixed virtualization of EON instruction when "rd" and "rn" registers are the same
[!]
ARM64: Fixed specific virtualization of MOVK instruction when using "shift 48" under TIGER VM
[!]
ARM64: Fixed several virtualization issues on TIGER VM
[!]
ARM64: Fixed wrong modification of flags in specific opcodes in LION VM
[!]
ARM64: Fixed sign extension when decoding specific ARM64 instructions
[!]
ARM64: Fixed search of dereference code inside protection macros in computers with more than 32 cores

Code Virtualizer [3.1.6.0] (15-Aug-2023)
[+]
Added Hardware-enforced Stack Protection support (Advanced Option "OPTION_ADVANCED_HARDWARE_STACK_PROTECTION_COMPATIBLE=YES")
[+]
Improved protection in all virtual machine architectures
[+]
Added multi-core support when mutating VM handlers (like in FISH BLACK VM)
[+]
Added detection of missing MAP functions to virtualize to stop the protection process
[+]
Added Advanced Option "OPTION_ADVANCED_VM_ENGINE_PRESERVE_FLAGS_ON_EXIT=NO"
[+]
ELF: Improved support with specific ELF files
[+]
ARM64: Added FISH LONDON VM for ARM64
[+]
ARM64: Added TIGER LONDON VM for ARM64
[+]
ARM64: Added TIGER EXTREME VM for ARM64
[+]
ARM64: Added FISH EXTREME VM for ARM64
[+]
ARM64:Improved performance mutating ARM64 opcodes
[+]
ARM64: Added support for Embarcadero Delphi ARM64
[+]
ARM64: Added support to jump in the middle of the virtualized code from code outside of macro markers
[+]
ARM64: Improved virtualization of MOVK opcode
[+]
ARM64: Improved virtualization accuracy for the TBZ and TBNZ opcodes when testing the 31st bit position
[+]
ARM64: Improved support when handling not recognized instructions
[+]
ARM64: Enhanced performance parsing the file to protect
[+]
ARM64: Mach-O: Added support to link with the SDK via function names instead of inline assembly
[+]
ARM64: ELF: Added support to link with the SDK via function names instead of inline assembly
[+]
ARM64: Updated Delphi include files
[+]
ARM64: Added multi-core support to search for protection macros
[!]
Fixed minor GUI issue when no selected any file to protect
[!]
ELF: Fixed issue where unselected protection macros were still processed
[!]
ELF: Fixed compatibility issue finding protection macros in Golang binaries
[!]
ARM64: Minor bugs fixed when parsing Mach-O and ELF files
[!]
ARM64: Fixed virtualization of Load Unscaled instructions
[!]
ARM64: Fixed virtualization of LDURSW instruction
[!]
ARM64: Fixed virtualization of MADD with same destination and source registers
[!]
ARM64: Fixed virtualization of arithmetic operation with 64-bit immediate operand
[!]
ARM64: Fixed wrong opcode mutation when generating FISH BLACK VM for ARM64
[!]
ARM64: Fixed random exception when disassembling invalid opcodes
[!]
Minor bugs fixed

Code Virtualizer [3.1.5.0] (24-Jul-2023)
[+]
Added ARM64 native protection. Available for free at www.oreans.com/Release/VirtualizerArm64Install.exe
[+]
Added support for virtualization protection macro markers in .NET Native AOT binaries
[+]
ELF: Added insertion of protection code in new sections
[+]
Mach-O: Added insertion of protection code in new sections
[+]
Improved parsing of MAP files
[+]
Added MAP parsing for Mach-O files
[+]
Added Advanced Option "OPTION_ADVANCED_NO_EXECUTABLE_WRITABLE_SECTION"
[+]
Added option "FindMacrosSkipJmpIat"
[+]
Added option "FindStringsLeaSupport"
[+]
Added command line argument "/str_encrypt_locale"
[+]
Added command line argument "/str_encrypt_in_data_section_only"
[+]
Added command line argument "/find_macros_with_indirect_jumps"
[+]
Added command line argument "/find_macros_skip_call_imm"
[+]
Added command line argument "/find_macros_skip_jmp_iat"
[+]
Added command line argument "/find_macros_skip_jmp_iat"
[!]
x64: Fixed virtualization of "LEA REG32, [REG32 + REG32 * scale]" in TIGER VM
[!]
x64: Fixed virtualization of "LEA REG16, [REG16 + REG16 * scale]" in TIGER VM
[!]
Fixed very specific bug when protecting multiple applications without closing the User Interface
[!]
Fixed exception when the application to protect is locked by another process while protecting

Code Virtualizer [3.1.4.0] (10-Nov-2022)
[+]
Improved parallel protection
[+]
Added LION VM for Visual Basic 6 applications
[+]
Increased maximum of manual insertion of macros (via RVA address) up to 5000
[+]
Added option to avoid specific code sequences when searching for protection markers
[+]
Optimized memory allocation for with multi-core protection
[+]
Added option "FindMacrosWithIndirectJumps" to find for indirect calls/jumps to protection macros
[!]
Fixed compatibility issue virtualizing specific memory access instructions
[!]
Linux: Fixed compatibility issue with ELF64 files
[!]
Minor bugs fixed

Code Virtualizer [3.1.3.0] (26-Apr-2022)
[+]
Improved detection of protection macros with specific compiler optimizations
[+]
Improved exception handling inside virtualized code
[+]
Improved processing of relocations in specific DLLs
[!]
Fixed compatibility issue running Virtualizer.exe under Linux/Wine
[!]
Fixed exception processing MAP functions to virtualize from command line protection
[!]
Fixed construction of Exception directory with re-virtualized VMs
[!]
x64: Fixed deadlock when exception happened in virtualized code
[!]
Fixed exception on specific Windows 11 computers when protecting via the User Interface
[!]
Minor bugs fixed

Code Virtualizer [3.1.2.0] (15-Aug-2021)
[+]
Added new Virtual Machine: "LION VM"
[+]
Improved GCC Map file parser
[+]
Memory optimizations when parsing big binaries to protect
[!]
Fixed out of memory exception processing applications with huge Exception Directory

Code Virtualizer [3.1.1.0] (27-Apr-2021)
[+]
Improved parsing of protection macros
[+]
Added support for binary files with corrupted relocs section
[+]
Added support for Clang Map files
[+]
Improved GCC Map file parser
[+]
Added Advanced Option "OPTION_ADVANCED_STR_ENCRYPT_IN_DATA_SECTION" to search for strings only in the data section
[!]
Fixed bug creating the Exception Directory with Stealth Mode insertion in specific applications
[!]
Fixed wrong exit code when application is already protected

Code Virtualizer [3.1.0.0] (02-Oct-2020)
[+]
Improved compatibility with Golang applications and re-virtualization
[+]
Added Advanced Option to code sign the protected application
[+]
Improved Advanced Option "OPTION_ADVANCED_XBUNDLER_FAKE_DLL"
[+]
Improved detection of wrong macro markers from compiler optimizations
[+]
Improved MAP file parsing
[+]
Added include files and examples for Rust
[+]
Added Advanced Option "OPTION_ADVANCED_MANUAL_MUTATE_MACRO_xx"
[+]
Improved option "Get name from MAP File" in "Protection Macros" panel
[!]
Fixed random exception loading multiples projects without closing the User Interface
[!]
Fixed exception handling support in Golang applications
[!]
Fixed exception when STR_ENCRYPT is within VM macros and "UNICODE/ASCII on VM" encryption is enabled
[!]
Fixed compatibility issue parsing specific PowerBuilder files
[!]
Fixed exception processing selected MAP functions with very big function names

Code Virtualizer [3.0.9.0] (05-Jul-2020)
[+]
Added RDTSC virtualization
[+]
Improved MAP file parser
[+]
Improved MUTATE macro
[+]
Improved detection of END macro marker with TCO (Tail Call Optimization)
[+]
IMAGE_SCN_MEM_NOT_PAGED flag propagated to new section with virtualized code
[!]
Fixed exception adding MAP functions with very long names
[!]
Fixed exception when all MAP functions are processed as MUTATE macros
[!]
x64: Fixed exception adding entries in the Exception Directory for specific applications
[!]
Number of Virtual Machines instances was not restored correctly from project file closed
[!]
Fixed random exception when processing MAP files with different function names pointing to the same code location
[!]
Fixed very rare exception analysing specific protection macros

Code Virtualizer [3.0.8.0] (14-Apr-2020)
[+]
Added virtual machine selection for different functions in MAP files
[+]
Removed previous selected Virtual Machines when refreshing the input file to protect
[+]
Added option "StrEncryptInDataSectionOnly" in .INI file to find strings in data sections
[!]
Fixed wrong exit code when output file name was missing
[!]
Fixed exception in 64-bit with "OPTION_VIRTUAL_MACHINE_ISOLATE_REGS=YES"
[!]
Fixed Import table in VirtualizerDDK.sys (64-bit)

Code Virtualizer [3.0.7.0] (06-Feb-2020)
[+]
Added more optimizations for Windows on ARM
[+]
Added support for GCC map files
[+]
Added Advanced Option "OPTION_MACROS_SWITCH_CASE_SUPPORT"
[!]
Fixed hang when processing macro blocks with special invalid opcodes
[!]
Fixed bug protecting a file with read only attributes
[!]
Minor bugs fixes

Code Virtualizer [3.0.6.0] (17-Dec-2019)
[+]
Added Option "Optimize for Windows on ARM"
[+]
Improved detection of dereferenced instructions inside protection macros
[+]
Removed Security Directory on protected file
[+]
Improved detection of macro markers in specific VB6 applications
[+]
Improved code dereference detection in protection macros
[!]
STR_ENCRYPT macro was not parsed correctly on VB6 applications
[!]
Fixed exception scanning strings inside virtualizer macros when pointing to unitialized section
[!]
Fixed bug storing international chars in project file

Code Virtualizer [3.0.5.0] (24-Oct-2019)
[+]
Improved detection of jump references from outside macro markers
[+]
Improved detection of wrong macro markers due to compiler optimizations
[+]
Added try/except support inside VM macros
[+]
Improved detection of end of entry point in option "Entry Point Virtualization"
[+]
Added Advanced Option "OPTION_ADVANCED_DISABLE_REPORT_STRINGS_TO_ENCRYPT"
[+]
Improved viewing of Protection panel with very high DPI scaling
[+]
Improved speed virtualizing "DOLPHIN VM" opcodes
[+]
Improved parsing of MAP files using multiple threads
[+]
Forms are centered on the screen if stored coordinates are higher than supported
[+]
Added option in Protection Macros panel to get the function name for a specific memory address
[!]
Fixed issue resolving external jumps inside MUTATE macros
[!]
Fixed processing of RIP addressing on "VMOVDQU xmm_reg, [rip_displacement]"
[!]
x64: Fixed compatibility issue rebuilding the Exception Directory in some protected instances
[!]
Fixed exception removing the linking with the SDK DLL in files with mangled import table
[!]
Fixed parsing of RVA values in some MAP files
[!]
x64: High DWORD in RAX was set to zero after STR_ENCRYPT
[!]
Fixed exception reporting long encrypted strings not removed from original location
[!]
Fixed memory leak when loading/refreshing multiple applications in the User Interface
[!]
Fixed hang when processing invalid opcodes within the STR_ENCRYPT macro

Code Virtualizer [3.0.4.0] (09-Aug-2019)
[+]
Improved handling of strings in STR_ENCRYPT macros
[+]
Allow resizing of protection panel
[+]
Allow nesting of STR_ENCRYPT macros within STR_ENCRYPT macros
[+]
Improved speed parsing MAP files
[+]
Improved detection of external referenced pointers to the middle of protection macros
[+]
Added VirtualizerAsmSDK for Delphi (supporting macOS 64-bit)
[!]
Fixed removal of string from original location where referenced several times within a STR_ENCRYPT macro
[!]
Fixed exception when right-clicking on column title on Virtual Machines grid
[!]
Fixed issue with relocations in some applications using the STR_ENCRYPT macro

Code Virtualizer [3.0] (21-Jun-2019)
[+]
Released to our customers

Code Virtualizer beta [3.0] (09-Apr-2018)
[+]
New User Interface
[+]
New Protection Core
[+]
Added Entry Point Virtualization
[+]
Added STR_ENCRYPT macro
[+]
Added UNPROTECTED macro
[+]
Added Advanced Options panel for custom options

Code Virtualizer [2.2.2.0] (17-Feb-2017)
[+]
Improved recognition of macro markers in special code sequences in some applications
[!]
Fixed bug mutating multi-byte NOP opcodes
[!]
Mach-O: Fixed section flags with Stealth Mode in data section

Code Virtualizer [2.2.1.0] (19-Sep-2016)
[+]
Improved protection entering into the virtual machine
[+]
Improved support detecting dereferences macros
[+]
Added support for GoLang 1.6/1.7
[!]
Dolphin VM: Fixed exception when virtualizing a single instruction on a macro block

Code Virtualizer [2.2.0.0] (31-May-2016)
[+]
Improved internal protection
[+]
FISH VM: Added new protection templates
[+]
TIGER VM: Added new protection templates
[+]
Added option "StrEncryptLocale" in Virtualizer.ini to set the current locale to find strings to virtualize

Code Virtualizer [2.1.9.0] (06-May-2016)
[+]
Added /isolate command line parameter to allow multiple instances of Virtualizer.exe to protect concurrently
[+]
Added file version of file to protect in "File Information" panel
[!]
Fixed exception in protection time when combining specific Virtual Machines
[!]
Fixed compatibility issue with option "Strip Relocs" in specific applications
[!]
Fixed detection of nested macros in ELF/Mach-O files

Code Virtualizer [2.1.8.0] (19-Apr-2016)
[!]
Fixed race condition when generating virtual machines with multi-core support

Code Virtualizer [2.1.7.0] (01-Apr-2016)
[+]
Improved speed in virtual machines generation and opcodes virtualization
[+]
Added support for enviroment variables in input/output filenames (i.e. %temp%dirfile.exe)
[+]
Improved support for relative paths in input/output filenames
[!]
Tiger64 VM: Fixed virtualization of "POP MEM16/REG16"

Code Virtualizer [2.1.6.0] (28-Jan-2016)
[+]
Added new protection templates for virtual machines
[+]
Improved speed generating Virtual Machines under multi-core processors
[+]
Improved speed virtualizing code
[+]
Improved speed processing relocations while virtualizing code
[+]
x64: Improved support with x64 Structured Exception Handling in virtualized code
[+]
Added option "DontSetExecutableWritableVMlocation" for Stealth Mode (in virtualizer.ini file)
[+]
Added option "DefaultDPI" to manually increase the DPI for the GUI (in virtualizer.ini file)

Code Virtualizer [2.1.5.0] (13-Nov-2015)
[+]
Added new protection templates for all protection virtual machines
[+]
Fish/Tiger/Dolphin VM: Modified specific protection templates
[+]
Changed folder layout of "custom vm" files
[+]
Added support in "/checkprotected" command line parameter to accept a ".cv" project file
[!]
Fixed virtualization bug with SCAS instruction
[!]
x64: Fixed compatibility issue destroying virtualized strings referenced from outside macro markers
[!]
Fixed mutation of "MOV REG64, -IMM32"

Code Virtualizer [2.1.4.0] (21-Sep-2015)
[+]
Fish/Tiger/Dolphin VM: Added new protection template
[+]
Improved speed searching for protection macros
[!]
Improved mutation engine
[!]
Fixed wrong macro detection in specific code pattern
[!]
Fixed specific mutation template for "MOV REG, [immediate]"
[!]
Fixed mutation in specific FPU opcodes

Code Virtualizer [2.1.2.0] (04-Aug-2015)
[+]
Added support to detect virtualization macros in Golang 1.5 beta
[+]
Added support in Golang applications with stack trace for virtualized code
[+]
Improved searching of the Stealth Area
[+]
Improved support mixing public with private custom vms
[!]
Dolphin VM: Fixed RIP/EIP-relative addressing
[!]
Dolphin VM: Fixed flags status in specific virtualized instructions

Code Virtualizer [2.1.1.0] (22-Jun-2015)
[+]
Added DOLPHIN virtual machine
[+]
Added EAGLE virtual machine
[+]
Improved speed generating internal virtual machines
[+]
Improved speed virtualizing code
[+]
Added support for strings virtualization inside MUTATE_ONLY macros
[+]
Improved support injecting protecting code into new sections
[+]
Added support for DPI scaling in User Interface

Code Virtualizer [2.1.0.0] (26-May-2015)
[+]
Added support in VM macros with x64 Structured Exception Handling
[+]
Improved detection of string references in Virtualize Strings options
[+]
Improved support in disassembler for rare multi-byte NOP opcodes
[+]
Improved support for dereferences inside macro markers
[+]
ELF: Added support with binaries with no Program Headers
[+]
ELF: Added detection of relocatable file types
[+]
ELF: Improved detection of spurious strings to virtualize
[!]
Fixed compatibility issue inserting new section in specific PE32+ applications

Code Virtualizer [2.0.9.0] (17-Feb-2015)
[+]
ELF64: Optimize ELF_MAXPAGESIZE to 64Kb (instead of common 2Mb alignment)
[+]
Added detection for pointers outside macro markers referencing a location inside a macro
[+]
Added support for external references inside macro markers
[+]
Added header to insert the Stealth Area in the data section
[+]
Mach-O: Added support to insert the Stealth Area in the data section
[+]
FISH VM: Improved virtualization of "POP REG16"
[+]
FISH VM: New protection templates
[+]
Added correct OMF LIB for x64
[!]
FISH64 VM: Fixed virtualization of "XCHG REG32, REG32"
[!]
Fixed compatibility issue with "Compress Virtual Machine" in specific applications

Code Virtualizer [2.0.8.0] (15-Sep-2014)
[+]
Added support to read functions to virtualize from Excelsior MAP files
[+]
Added support to insert macros in Golang compiled binaries (Windows, Linux, Mac i386/amd64)
[+]
Improved merging of Virtual Machine operation handlers
[+]
Improved support of "Virtualized Strings" feature
[+]
Added log in User Interface of processed virtualized ANSI/UNICODE strings
[+]
Improved search of protection macros via API
[+]
Improved search of end function via MAP file
[+]
Improved destruction of original UNICODE strings when virtualized
[+]
Improved searching of ANSI/UNICODE strings to virtualize
[+]
Improved handling of Mach-O FAT files
[+]
Deleted intermediate x86/x64 files when protecting FAT binaries
[!]
Fixed temporal hang in User Interface while virtualizing protection macros
[!]
Fixed compatibility issue protecting FAT files under Wine
[!]
Fixed virtualization of REPxx CMPSW
[!]
Fixed MUTATE macro on ELF/Mach-O files
[!]
Fixed virtualization of "XCHG RAX, R8"
[!]
Fixed very specific virtualizations of "MOV REG64, negative_32_bit_value"
[!]
Fixed log (CVlog.txt) of encrypted ANSI/UNICODE strings

Code Virtualizer [2.0.7.0] (29-Jul-2014)
[+]
Added "Compress Virtual Machine" for Mac OS X Mach-O files
[+]
Redesigned handling of virtualized FLAGS
[+]
Improved internal virtualized opcode tester
[+]
Improved obfuscation to enter inside a Virtual Machine
[+]
Improved virtualization of joined instructions
[+]
Added message when protection cannot be inserted in last segment in ELF shared objects
[!]
Fixed handling of special sections flags in device drivers
[!]
TIGER VM: Fixed virtualization of "PUSH IMM16"
[!]
TIGER VM: Fixed restoring of Carry flag in DEC/INC opcode
[!]
FISH VM: Fixed flags in DEC/INC [word/byte] opcodes

Code Virtualizer [2.0.6.0] (20-May-2014)
[+]
Mach-O: Initial support to protect Mach-O i386/x86_64 Mac OS X files
[+]
Improved reading of relocations
[+]
Optimized search of macros inserted via "defined assembly function"
[+]
Modified C Include file to support GCC inline assembly with "std=c99, std=c11" option
[+]
Added "Stealth Mode" example for C language
[+]
Added option "Play sound when protection finishes"
[+]
Improved memory allocation when encrypting Ansi and Unicode string
[+]
Improved /checkprotected command line parameter
[!]
ELF: Fixed memory leak in Linux/ELF protection module
[!]
Fish VM: Fixed flags in some 8-bit instructions
[!]
Fixed virtualization of REP/REPNZ/REPZ in 64-bit applications
[!]
Fixed handling of "PUSHAD" in VIRTUALIZER_MUTATION_ONLY macro
[!]
Fixed random exception when protecting via command line
[!]
x64: Fixed exception when handling macros with no code
[!]
Fixed include file for "D language"

Code Virtualizer [2.0.5.0] (15-Apr-2014)
[+]
FISH VM: New protection templates
[+]
Added "Compress Virtual Machine" for Linux ELF files
[+]
Added internal configuration option (Virtualizer.ini) to set the complexity of the VIRTUALIZER_MUTATE_ONLY macro
[!]
Fixed virtualization of "REP (qword) string-op"

Code Virtualizer [2.0.4.0] (18-Mar-2014)
[+]
Initial support to protect Linux ELF32-i386 and ELF64-x86_64 binaries
[+]
Added PUMA VM (White, Red, Black)
[+]
Added SHARK VM (White, Red, Black)
[+]
Added support in User Interface to run under Wine and Mac/Crossover
[!]
Fixed virtualization of "MOV RAX, [IMM64]"
[!]
Flags were not preserved in "RET" opcode virtualization
[!]
Fixed GUI bug in "Virtual Machine selection" when macros were only inserted from MAP file

Code Virtualizer [2.0.3.0] (19-Dec-2013)
[+]
TIGER VM: New protection templates
[+]
FISH VM: New protection templates
[+]
Added VIRTUALIZER_MUTATE_ONLY macro to mutate code instead of virtualization
[+]
Improved detection of macros via "JMP [macro_name]"
[+]
TIGER VM: Improved virtualization of "PUSH IMM8"
[!]
TIGER VM: Fixed virtualization of "REPNZ SCAS"
[!]
FISH VM: Fixed virtualization of "REPNZ SCAS"
[!]
Fixed "Strip Relocs" option in specific applications
[!]
FISH VM: Fixed flags in "CMPS" virtualization
[!]
Fixed mutation of "CQO" instruction

Code Virtualizer [2.0.2.0] (15-Oct-2013)
[+]
New Virtual Machine model implemented
[+]
New Virtual Machine added: TIGER VM
[+]
New Virtual Machine added: FISH VM
[+]
Added option to insert the protection in Stealth Mode
[+]
Added option to insert the protection code in a new section
[+]
Added option to compress the protection code
[+]
Added option to virtualize ANSI and UNICODE strings referenced inside protection macros
[+]
Improved handling of relative paths in command line protection
[+]
Improved x64 instruction decoder
[+]
Improved parsing of MAP files for 64-bit applications
[+]
Improved option "Strip Relocs" in specific x64 applications
[+]
Improved compatibility with specific Visual Studio 2012 applications
[+]
Improved "RET nn" virtualization in x64
[+]
Improved LODSD virtualization in 64-bit applications
[+]
Improved emulation of x86 Direction Flag
[+]
Improved virtualization of CLI instruction
[+]
Improved macro analysis via defined function in x64 applications
[+]
Improved hiding of constant values in virtualized code
[+]
Improved internal disassembler
[+]
Added command line switch (/checkprotected) to check if a file is already protected by Code Virtualizer
[+]
Added drag and drop in user interface
[!]
Fixed detection of JMP [MACRO_END]
[!]
Fixed compatibility issue with relocations with VirtualAddress = 0
[!]
Fixed handling of multi-byte NOP opcodes
[!]
Fixed RSP register arithmetic
[!]
Fixed virtualization of "IDIV [stack_pointer]"
[!]
Fixed virtualization of "BTS/BTR QWORD"
[!]
Fixed virtualization of "LEAVE" opcode in x64
[!]
Fixed virtualization of MOVSQ/STOSQ instruction
[!]
Fixed virtualization of "xchg REG32, ESP"
[!]
Fixed virtualization of "MOVZX/MOVSX dword" in x64 applications
[!]
MAP file was not properly parsed when protecting via command line
[!]
Fixed IAT stripping of VirtualizerSDK.dll
[!]
Fixed last section size for boot drivers
[!]
Minor bugs fixed

Code Virtualizer [1.3.8.0] (22-Dec-2008)
[+]
Improved protection of 64-bit DLLs
[+]
Improved analysis of x64 instructions
[+]
Improved compatibility with Re-Virtualization in specific applications
[+]
Improved handling of empty macros in 64-bit applications
[!]
Fixed Flags correction in x64 ADC instruction
[!]
Fixed compatibility issue stripping relocations on specific 64-bit applications
[!]
Fixed virtualization of REP STOS in 64-bit applications
[!]
Fixed exception on CheckVirtualizer.exe for specific applications
[!]
Fixed exception in command line protection in applications with empty VIRTUALIZER macros
[!]
Fixed exception when protecting more than 1000 macros via command line
[!]
Minor bugs fixed

Code Virtualizer [1.3.7.0] (29-Sep-2008)
[+]
Improved mutation of specific x86 instructions
[+]
Improved compatibility protecting specific Device Drivers
[+]
Improved command line protection
[!]
Fixed compatibility issue with Re-virtualization in specific applications
[!]
Fixed compatibility issue resolving relocations in specific instructions
[!]
Fixed exception when adding more than 1000 macros
[!]
Minor bugs fixed

Code Virtualizer [1.3.6.0] (11-Jun-2008)
[+]
Improved protection
[+]
Improved support protecting Vista boot drivers
[+]
All traces that a file is protected by Code Virtualizer are removed
[+]
Added new way to insert macros for x64 Applications and Device Drivers
[!]
Fixed virtualization of "DIV [esp + reg32 + imm]"
[!]
Minor bugs fixes

Code Virtualizer [1.3.5.0] (23-Jan-2008)
[+]
Improved protection in some VM handlers
[+]
Improved handling of addresses > 0x8000000000000000
[!]
Fixed compatibility issue protecting some specific functions via MAP file
[!]
Fixed compatibility issue with RIP addressing in some 64-bit DLLs
[!]
Fixed issue renaming last section in protected executables
[!]
Fixed exception when inserting macros via MAP file and revirtualization enabled in some applications
[!]
Minor bugs fixed running the User Interface with restricted user rights

Code Virtualizer [1.3.4.0] (01-Oct-2007)
[+]
Independent customization for Multiple Virtual Machines
[+]
New macros added to support specific VM definition
[+]
Improved execution of complex x86 instructions
[+]
Improved VM complexity and dynamic opcodes
[!]
Fixed compatibility emulating complex stack addressing
[!]
Minor bugs fixed

Code Virtualizer [1.3.3.0] (28-May-2006)
[+]
Added support to specify file to protect from command line (instead of application in project file)
[+]
Improved search engine for MAP macros
[+]
Improved reading of .CRM file (MAP macros)
[!]
Fixed definition of PureBasic macros (Thanks Mitchell Vincent and Terence Agius)
[!]
Fixed bug displaying functions when MAP macros and SDK macros are mixed together
[!]
Minor bugs fixed in 32-bit disassembler

Code Virtualizer [1.3.2.0] (14-May-2007)
[+]
Improved virtualization engine
[+]
Multilanguage support
[+]
Improved parsing functions in MAP files for VS2003 and VS2005
[+]
Improved disassemble module for 32-bit code
[!]
Fixed problem in user interface under Vista
[!]
Minor bugs fixed

Code Virtualizer [1.3.1.0] (20-Dec-2006)
[+]
Added Multi-Branch Technology
[+]
32-bit: New mutation engine for Virtual Machine opcode handlers
[+]
Refresh button added for Input file
[+]
Current directory changed when testing the protected application inside Code Virtualizer
[!]
32-bit: Relocation fixed for non emulated FPU opcodes in DLLs
[!]
64-bit: RIP displacement fixed for non emulated FPU opcodes
[!]
Fixed compatibility with Intel compiler optimizations when calling functions from virtualized blocks

Code Virtualizer [1.3.0.0] (10-Oct-2006)
[+]
Added microcode mutation for 64-bit applications
[+]
Added VIRTUALIZER_MUTATEx_START macro to set up the level of mutation for each macro
[+]
Added fake stack emulation option (compatibility with some PureBasic applications)

Code Virtualizer [1.2.9.0] (29-Sep-2006)
[+]
Added option to mutate the internal virtual machine microcode (32-bit)
[!]
Fixed race condition in multiprocessor systems (multithreaded applications)
[!]
Fixed deadlock in multiprocessor systems with Revirtualization enabled (multithreaded applications)

Code Virtualizer [1.2.8.0] (14-Sep-2006)
[+]
Improve scanning of Virtualizer macros
[!]
Fixed flags emulation in NEG, SBB, ADC, RCL, RCR instructions
[!]
Fixed issue with corrupted project files in some systems

Code Virtualizer [1.2.7.0] (21-Aug-2006)
[+]
Improved execution of non recognized opcodes to virtualize
[!]
Fixed random crash on some machines when protecting with more than one Virtual Machine
[!]
Fixed compatibility issue with Re-Virtualization when including several virtual machines
[!]
Minor bugs fixed

Code Virtualizer [1.2.6.0] (25-Jul-2006)
[+]
Improved detection of Visual Basic native applications
[!]
Fixed issue related to "Discardable section" flag for device drivers
[!]
Fixed virtualization of "IDIV reg16"
[!]
Fixed virtualization of "MOVSX/MOVZX reg, [esp/rsp]"
[!]
Fixed issue loading some project files with no macros to virtualize
[!]
Minor bugs fixed in user interface

Code Virtualizer [1.2.5.0] (30-Jun-2006)
[+]
Added Re-Virtualization technology for 64-bit applications
[!]
64-bit: Fixed virtualization of "POP QWORD PTR [reg64]" instruction
[!]
64-bit: Fixed virtualization of "IMUL/IDIV reg64" instruction
[!]
64-bit: Fixed virtualization of CMPSQ/MOVSQ/LODSQ/SCASQ/STOSQ instructions
[!]
64-bit: Fixed virtualization of "JMP/CALL qword ptr [src]" instruction

Code Virtualizer [1.2.0.0] (28-Jun-2006)
[+]
Re-Virtualization technology added for 32-bit applications
[+]
Optimized speed in code transformation
[!]
Fixed fake detection of Device Drivers (.sys) files
[!]
Fixed virtualization of "OP reg32/reg64, esp/rsp"
[!]
Fixed virtualization of "XCHG [esp], reg/imm"
[!]
Fixed Virtualization of POPAD
[!]
Fixed Virtualization of "SHL reg16, imm"
[!]
Fixed Virtualization of "push word imm16"
[!]
Fixed Virtualization of "LOCK" opcode prefix
[!]
Minor bugs fixed

Code Virtualizer [1.1.4.0] (22-Jun-2006)
[+]
Added support for BPL files
[!]
Fixed compatibility issue adding macros in Visual Basic
[!]
Fixed virtualization of instruction "ADD ESP/RSP, imm"
[!]
Fixed virtualization of "OP [ESP/RSP + imm], reg/imm"
[!]
Fixed bug converting Visual Basic macros into native code for some OCXs

Code Virtualizer [1.1.0.0] (19-Jun-2006)
[+]
Added support to select functions to protect from a MAP file
[+]
Added support for "RET n" instruction in 32-bit mode
[+]
Flushed protected file when protecting via the command line
[+]
Added detection for empty macros
[+]
Updated examples directory
[!]
Fixed compatibility with relocations information in some Delphi applications
[!]
Fixed random exception when protecting via the command line
[!]
Fixed emulation of instructions using segment registers
[!]
Fixed compatibility issue with Visual Studio 2005 MAP files

Code Virtualizer [1.0.1.0] (01-Jun-2006)
[!]
Fixed compatibility issue stripping relocations from some applications
[!]
Fixed memory leak when protecting several applications
[!]
Fixed "RET" instruction support for x64 DLLs
[!]
Fixed relocation problem for x64 DLLs with ImageBase > 0x100000000
[!]
Fixed RIP relative addressing issue on x64 applications
[!]
Fixed compatibility with relocations in some Win32 device drivers

Code Virtualizer [1.0.0.0] (27-May-2006)
[+]
Internal beta testing



Copyright © 2004-2025 Oreans Technologies. All Rights Reserved.
Oreans, Themida and WinLicense are registered trademarks. All other trademarks used are properties of their respective owners.