Code Virtualizer Changelog

What's new in Code Virtualizer 3.1.8.0

Jan 16, 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

New in Code Virtualizer 3.1.3.0 (Apr 26, 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

New in Code Virtualizer 3.1.1.0 (Apr 29, 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

New in Code Virtualizer 2.2.1.0 (Sep 13, 2017)

  • 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

New in Code Virtualizer 2.1.1.0 (Jun 30, 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

New in Code Virtualizer 2.1.0.0 (Jun 30, 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

New in Code Virtualizer 2.0.9.0 (Jun 30, 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

New in Code Virtualizer 2.0.8.0 (Jun 30, 2015)

  • 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

New in Code Virtualizer 2.0.7.0 (Jun 30, 2015)

  • 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

New in Code Virtualizer 2.0.6.0 (Jun 30, 2015)

  • 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"

New in Code Virtualizer 2.0.5.0 (Jun 30, 2015)

  • 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"

New in Code Virtualizer 2.0.4.0 (Jun 30, 2015)

  • 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

New in Code Virtualizer 2.0.3.0 (Jan 4, 2014)

  • 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

New in Code Virtualizer 2.0.2.0 (Jan 4, 2014)

  • 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

New in Code Virtualizer 1.3.8.0 (Apr 19, 2010)

  • 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

New in Code Virtualizer 1.3.7.0 (Apr 19, 2010)

  • 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

New in Code Virtualizer 1.3.6.0 (Apr 19, 2010)

  • 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

New in Code Virtualizer 1.3.5.0 (Apr 19, 2010)

  • 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

New in Code Virtualizer 1.3.4.0 (Apr 19, 2010)

  • 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

New in Code Virtualizer 1.3.3.0 (Apr 19, 2010)

  • 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

New in Code Virtualizer 1.3.2.0 (Apr 19, 2010)

  • 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

New in Code Virtualizer 1.3.1.0 (Apr 19, 2010)

  • 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

New in Code Virtualizer 1.3.0.0 (Apr 19, 2010)

  • 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)

New in Code Virtualizer 1.2.9.0 (Apr 19, 2010)

  • 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)

New in Code Virtualizer 1.2.8.0 (Apr 19, 2010)

  • Improve scanning of Virtualizer macros
  • Fixed flags emulation in NEG, SBB, ADC, RCL, RCR instructions
  • Fixed issue with corrupted project files in some systems

New in Code Virtualizer 1.2.7.0 (Apr 19, 2010)

  • 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

New in Code Virtualizer 1.2.6.0 (Apr 19, 2010)

  • 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

New in Code Virtualizer 1.2.5.0 (Apr 19, 2010)

  • 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

New in Code Virtualizer 1.2.0.0 (Apr 19, 2010)

  • 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

New in Code Virtualizer 1.1.4.0 (Apr 19, 2010)

  • 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

New in Code Virtualizer 1.1.0.0 (Apr 19, 2010)

  • 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

New in Code Virtualizer 1.0.1.0 (Apr 19, 2010)

  • 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

New in Code Virtualizer 1.0.0 (Apr 19, 2010)

  • Internal beta testing