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)