更新历史
3.6 版
[*] .NET:改进了虚拟方法的重命名
[*] .NET:修复了虚拟化方法的 finally 块中发生的错误
[*] Mach-O:改进了对 macOS 12 Monterey 的支持
[*] PE:改进了反调试
[+ ] .NET:增加了对 volatile 和 calli 的支持
[+] PE:增加了对 ARM 的 Windows 支持(仅适用于 Intel 二进制文件)
[+] PE:改进了对 WINE 的支持
[+] PE:增加了对 Free Pascal 和 MAP 文件的支持MinGW
[+] 添加了使用掩码 “?” 创建带有随机符号的片段的功能
3.5.1 版
[!] .NET:修复了许多错误
[!] 修复了 旗舰版授权系统中允许更改开放 RSA 密钥的关键漏洞
[*] Mach-O:改进了对 Objective-C 的支持
[*] ELF:改进了支持DT_PREINIT_ARRAY
[*] PE:通过重定位改进了对 TLS 数据的支持
[*] PE:改进了与 Device Guard 的兼容性
[+] .NET:在使用 “Strip Debug Information” 时添加了符号重命名
[+] .NET:添加了支持 ObfuscationAttribute 具有以下功能: “virtualization” 、 “mutation” 、 “ultra” 、 “virtualizationlockbykey” 、 “ultralockbykey” 、 “renaming” 和 “strings”
[+] .NET:添加了 “Assemblies” 部分以嵌入第三个-受保护应用程序内的派对程序集(仅适用于旗舰版)
[+] PE:为 VS2019 添加了异常处理
[+] Mach-O:添加了对 “-flat_namespace” 的支持
[+] Intel:添加了 noreturn 函数的自动检测
[+] 添加了对脚本函数 “io.open( )”
[+] 添加了在不使用 SDK 函数的情况下将受保护程序锁定到特定 HWID 的功能(仅适用于旗舰版)
3.5 版
[!] .NET:修复了许多错误
[!] ELF:修复了在获取 HDD 信息时出现在 VMProtectGetCurrentHWID 内部的错误
[+] .NET:增加了对 .NET Core (3.0+) 和 .NET Standard (2.1+) 的支持
[+] .NET:添加了导入保护
[+] .NET:添加了资源保护
[+] .NET:添加了对混合程序集的支持
[*] Mach-O:改进了对 S_THREAD_LOCAL_VARIABLES 和 S_THREAD_LOCAL_REGULAR 类型的部分的支持
[*] Mach- O:改进了对 Objective-C 的支持
[*] ELF:改进了对 R_386_PC32 类型的重定位的支持
[*] PE:改进了反调试
3.4 版
[!] 修复了 BT [m16]、POP [m64] 虚拟化过程中出现的错误
[+] 添加了对 .NET 应用程序的支持
[+] 添加了反汇编 PMULLD
[+] PE:添加了对 COFF 符号的支持
[*] ELF:改进了 SWITCH 的反汇编
[*] ELF:改进了对 R_386_PC32 类型的重定位的支持
[*] PE:改进了异常处理
[*] PE:改进了对 Windows Server 2016 Datacenter 的支持
3.3 版
[+] PE:增加对 “控制流保护” 的支持
[+] PE:增加对 PDB 文件加载符号的支持
[+] Mach-O:增加对 OS X 10.13 及更高版本的支持
[+] ELF:增加对静态的支持链接的 libstdc++.so
[+] ELF:添加了对 CentOS 5 和 CentOS 6 的支持
[+] ELF:添加了对 TLS 段的支持
[+] ELF:添加了对 VMProtectActivateLicense 的 HTTPS 支持
[*] PE:改进了 x64 应用程序的异常处理
[*] PE:改进了 Hyper-V 角色下虚拟化工具的检测
[*] PE:改进了 MSVC 符号的去磁化
[*] Mach-O:改进了异常处理
[*] Mach-O:改进了对 Objective-C 的支持
[*] ELF:修复了使用 “压缩输出文件” 选项时发生的错误
3.2 版
[!] PE:修复了受保护驱动程序中 VMProtectIsValidImageCRC 中发生的错误
[!] 修复了使用重定位进行 XOR 虚拟化期间发生的错误
[*] PE:改进了 TLS 目录的部分压缩
[*] PE:改进了反调试
[*] PE: Taggant 系统已被删除
[*] 使用 “压缩输出文件” 选项时加速解包
[+] 增加了对 ELF 格式的支持
[+] 增加了反汇编 AVX 命令
3.1.2 版
[!] PE:修复了在 Windows 10 x86 上发生的 “初始化错误 1”
3.1.1 版
[!] 修复了编译时的崩溃
3.1 版
[!] 修复了 REX 前缀为 0×41 的 MOVUPS 反汇编过程中发生的错误
[!] 修复了 XLAT 和 FSIN 虚拟化过程中发生的错误
[*] 改进了异常处理
[*] 改进了 VM 架构
[*] 改进了检查使用 “内存保护” 选项时磁盘上文件的完整性
[*] PE:使用 “导入保护” 选项时改进了对 Delphi 6 的支持
[*] PE:改进了反调试
[+] 添加了 ADD 的虚拟化,并且, SUB, XOR, OR with LOCK prefix
[+] 添加了 CQO 的虚拟化
[+] 添加了虚拟化反汇编 PINSRB, PINSRD, PINSRQ, PMINSD, PMINUW, PMINUD, PMAXSB, PMAXSD, PMAXUW 和 PMAXUD
[+] Mach-O: 添加了对LC_LOAD_WEAK_DYLIB
[+] Mach-O:添加了对 Delphi Berlin 的支持
[+] PE:添加了对 Windows 10 内核驱动程序的支持
[+] PE:现在使用 “Strip debug information” 选项时删除了 “Rich Header”
[+ ] 旗舰版:增强了 “文件” 的功能。现在您可以创建文件夹并使用符号 “..” 来指示父目录
[+] GUI:在显示受保护的 ANSI 字符串时,现在使用来自 Windows 设置的代码页
3.0.9 版
[+] Mach-O:添加了对 “__unwind_info” 部分的支持
[*] VMProtectActivateLicense 现在可以通过 WinHTTP 工作并默认使用 IE 代理设置
[*] VMProtectGetCurrentHWID 已针对内核驱动程序进行了改进
[*] 修复了小错误
3.0.8 版
[*] 改进的异常处理
[*] GUI:修复了小错误
3.0.7 版
[*] Mach-O:改进的异常处理
[*] 改进的保存性能
3.0.6 版
[*] 修复小错误
3.0.5 版
[*] 旗舰版:修复了带有 “到期日期” 字段的授权的错误(VMProtectSetSerialNumber() 可能返回 SERIAL_STATE_FLAG_DATE_EXPIRED)
[*] 修复了 FSTSW 的虚拟化
[*] 内存保护的性能得到了改进
[+] LUA:使用添加了来自外部 DLL 的函数
3.0.4 版
[*] PE:改进了对 Delphi 异常的支持
[*] 修复了 POPAD 的虚拟化
[*] 修复了导入保护的小错误
3.0.3 版
[*] GUI:改进了对高 DPI 显示的支持
[*] PE:改进了对 Delphi 异常的支持
[*] 改进了 FSTENV、FSTCW、FSAVE、FSTSW 的虚拟化
3.0.2 版
[*] 修复小错误
[+] 增加中文翻译
3.0 版
[*] PE:添加了对 x64 代码中的异常的支持
[*] Mach-O:添加了对 SDK 函数 的支持
[*] 旗舰版:添加了对在 VB6 上编写的驱动程序和应用程序的 授权函数 的支持
[*] 旗舰版: DLL Box 的功能得到了增强。现在,受保护的应用程序可以封装任何文件,包括在虚拟注册表中可选自动注册的 ActiveX 服务器。
[*] 改进了虚拟框检测
[*] 脚本引擎更改为 LUA
[*] 新的 VM 架构
[+] SDK 中添加了新功能 VMProtectIsProtected
2.13 版
[!] PE:添加了对延迟导入的支持
[!] PE:改进了与 VS2012 的兼容性
[!] PE:改进了与 Embarcadero RAD Studio XE3 的兼容性
[!] PE:改进了与 MinGW 的兼容性
[!] 旗舰版:改进了 DLL Box 的兼容性对于 Windows 8
[+] WebLM:添加了对 mbstring.func_overload = 2
[+] WebLM 的支持:在激活码中添加了一个新字段 “到期日期” 。(现在,如果当前日期超过到期日期,VMProtectActivateLicense 可以返回 ACTIVATION_EXPIRED)
[+] WebLM: “到期日期” 和 “最大构建日期” 字段现在包含 “购买后的天数” 值
2.12 版
[!] PE:修复了 x64 应用程序中的错误
[!] PE:修复了应用程序具有 IMAGE_DLLCHARACTERISTICS_NX_COMPAT 标志时发生的错误
[+] PE:添加了对 Windows 8 的支持
[+] WebLM:添加了俄语和中文
2.11 版
[!] 修复了在 х64 应用程序中 压缩 时的错误
[!] PE:修复了使用 “ 导入保护 ” 选项时发生的错误
[!] PE:修复了处理带有重定位表的 TLS 部分时出现的错误
[+] 旗舰版:添加了 激活/停用
[+] Mach-O:添加了 压缩
[*] PE:支持 DriverVerifier
[*] PE:改进了对 MSVC 的 SEH 的支持
[*] Mach-O:改进了对 IndirectSymbols 的支持
2.10 版
[!] 修复了使用 “ 资源保护 ” 选项时发生的错误
[!] 修复了使用 “ 导入保护 ” 选项时发生的错误
[!] 修复了没有重定位表的 x64 驱动程序受到保护时发生的错误
[+] 增加了对 Max OS X 可执行文件(Mach-O 格式)的支持
[+] 增加了对 HLT 命令的支持
[+] 向 SDK 添加了新的 API – VMProtectFreeString
[*] 改进了用 VMProtectDecryptStringA / VMProtectDecryptStringW 标记的标记和字符串的识别
[*] 现在您可以在输出文件名和授权参数中使用相对路径
[*] 改进了对 Delphi 的 SEH 的支持
[*] SenseLock [深思洛克]SE 版:添加了 “ 资源保护 ” 选项
[*] SenseLock [深思洛克]SE 版:在 GUI 版本中添加了 授权管理器
[*] SenseLock [深思洛克]SE 版:在 GUI 版本中添加了密钥编程
[*] 授权中的授权管理器现在可以复制粘贴到剪贴板/从剪贴板粘贴
2.09 版
[!] 修复了在 Windows 2000 下 检测到调试器 时发生的错误
[!] 修复了反汇编 PMULHUW 和 LDMXCSR 命令时发生的错误
[!] 修复了使用 内存保护 时发生的错误(未检查文件完整性)
[!] 旗舰版:修复了在 Windows 2000 下运行受保护文件时发生的错误(这需要 kernel32.dll 中的 EncodePointer/DecodePointer 函数)
[*] 改进了 Visual C 异常处理程序的虚拟化
[*] 资源保护 现在可用于精简版和专业版
[*] 在使用 资源保护 时添加了对 EnumResourceTypes、EnumResourceNames 和 EnumResourceLanguages 的支持 (仅在从主模块调用时可用)
[+] 增加了对 Borland C Builder 异常的支持
[+] 旗舰版:改进了 VMProtectGetSerialNumberState 和 VMProtectGetSerialNumberData 函数的性能
[+] TLicenseManager 的脚本现在包括 Save 方法
[-] “将资源移动到文件末尾” 选项被删除。资源部分现在总是最后一个。
2.08 版
[!] 修复了在组装 TEST [XXXX] 、REG 命令时出现的错误
[!] 修复了在反汇编带有 0×67 前缀的 х64 命令时出现的错误
[*] 改进了对 SectionAlignment 值较小的文件的支持
[*] 改进了 Intel Compiler 12 和 Lazarus 的标记和字符串的放置
[*] 改进了 导入保护
[*] 旗舰版:现在您可以使用许可参数加载工程文件
[+] 旗舰版:添加 资源保护
[+] 旗舰版:脚本现在包括类: TLicense 和 TLicenseManager
2.07 版
[!] 修复了在 Windows 使用除英语以外的其他系统语言时使用 授权管理器 时发生的错误
[+] 在专家模式下,您现在可以更改默认消息: “检测到调试器” 、 “检测到虚拟化工具” 、 “文件已损坏” 和 “需要序列号”
[+] 脚本类 TVMProtector 现在具有 消息 属性
[*] 改进了 内存保护 与某些防病毒软件的兼容性
2.06 版
[!] 修复了 MinGW 的标记名称识别错误
[!] 修复了х64 文件中 导入保护 时出现的错误
[!] 修复了 FILD WORD PTR [XXXX] 虚拟化过程中出现的错误
[!] 修复了反汇编时出现的错误PSRLW
[!] 修复了激活防病毒软件时 DLL Box 中发生的错误
[*] 工程文件现在保存为 XML
[*] 脚本现在存储在工程文件中
[*] 旗舰版: 授权管理器 现在是 GUI 版本
[*] 旗舰版:显着加快了 锁定到序列号 的代码的执行速度
[+] 添加了对 MinGW 的 MAP 文件的支持
[+] 添加了对 JCLDEBUG 的支持
[+] 脚本类 TPEDirectory 现在具有 Clear 方法
[+] 脚本类 TVMProcedure 现在具有属性: InputSize 和 OutputSize
[+] 旗舰版:向 SDK 添加新 API – VMProtectBeginVirtualizationLockByKey 和 VMProtectBeginUltraLockByKey
2.05 版
[!] 修复了 MinGW 程序的行识别错误
[!] 修复了在工程中添加许多程序时出现的 “系统资源不足” 错误
[!] 修复了控制台版本在输出字符串时出现的错误
[*] MAP 文件日期现在取自其内容
[+] 旗舰版:添加了使用 授权系统 (在 MSVC 和 Delphi 上)的示例
[+] 旗舰版:添加了 MSVC上的 序列号生成器 的源代码
[+] 旗舰版:添加了 DLL Box (仅适用于 EXE 文件)
[+] 旗舰版:在脚本中添加了一个新类 TInternalDLLs
[+] 旗舰版:在脚本类 TVMProtector 添加了一个新属性: InternalDlls
[+] 在脚本类 TMapRecord 中添加了一个新属性: SegmentName
[+] 在脚本类 TIntelRecord 中添加了一个新属性: Operands
[+] 添加了捷克语
2.04 版
[!] 修复 FDIVR [ESP+XXXX] 混淆过程中发生的错误
[!] 修复 x64 应用程序中 SWITCH 混淆过程中发生的错误
[*] 使用 “ 内存保护 ” 选项时,现在检查文件的完整性
[*] 旗舰版:将许可模块更好地集成到受保护程序
[+] 添加了对带有覆盖的文件的支持
[+] 旗舰版:添加了 C# 序列号生成器 的示例
[+] 旗舰版: 授权管理器 现在可以导出生成器的产品参数在 C#
[+] 旗舰版: 控制台版本 现在具有 “-lf” 参数来指定带有许可参数的文件
[+] 添加法语帮助文件
2.03 版
[!] 修复了在 SYS 文件中使用 导入保护 时发生的错误(在 Windows 7 下 hal.dll 的基地址不是确定的)
[!] 修复了在 SYS 文件中使用 CRx 寄存器对命令进行混淆时发生的错误
[!] 修复小问题
[*] 旗舰版本 授权系统 的改进
[+] 添加法语
2.02 版
[!] 修复精锐锁版中多个程序在密钥上使用不同授权同时运行时发生的错误(精锐锁版用户应更新主密钥固件)
[!] 修复 Delphi 程序中的 EntryPoint 反汇编错误
[!] 修复小问题
[*] 旗舰版 授权系统 的重要改进
[*] SenseLock [深思洛克]SE 版现在使用 旗舰版的授权系统(SenseLock [深思洛克]SE 版用户应更新主密钥固件)
[*] 改进了对标有 VMProtectDecryptStringA / VMProtectDecryptStringW 的字符串的检测
[+] GUI 现在支持 Unicode
[+] 添加繁体中文
2.01 版
[!] 修复了安装程序、 授权管理器 和 SDK 中的小问题
[*] VMProtect 现已在其自己的 授权系统 中注册
[+] 添加了简体中文
2.0 版
[!] 修复 CALL FWORD PTR [XXXX] 和 JMP FWORD PTR [XXXX] 命令的反汇编和虚拟化错误
[!] 修复精锐锁版在用户标准 PIN 更改后询问序列号时出现错误
[!] 修复了在 х64 应用程序中 SWITCH 虚拟化过程中发生的错误
[!] 修复了在 х64 应用程序中使用 REX 前缀反汇编命令时发生的错误:ROL、ROR、RCL、RCR、SHL、SHR、SAL 和 SAR
[!] 修复 CMOVxx 命令虚拟化时出错
[!] 修复小问题
[*] 俄文帮助文件更新
[*] 英文帮助文件更新
[+] 增加 授权系统 (仅在 旗舰版中可用)
[+] 向 SDK 添加了新 API – VMProtectDecryptStringA 和 VMProtectDecryptStringW
[+] 脚本类 TVMProcedure 现在具有新属性 CompilationOptions
[+] 脚本类 TVMProcedure 现在具有属性 SELicense 和 SEVersion (仅在SenseLock [深思洛克]SE 版中可用)
[+] 脚本类 TVMProtector 添加了新属性: VMSectionName 和 VMExecutorCount
[+] 脚本类 TVMProtector 添加了新属性: SEMasterPassword 、 SEUserPIN 、 SEKeyID 、 SELicense 和 SEVersion (仅在SenseLock [深思洛克]SE 版中可用)
[-] 删除 “动态创建在线命令” 选项
1.81 版
[!] 修复了在 Pentium 4 处理器上执行变异代码期间发生的错误
[!] 修复了在某些 Athlon 处理器上执行虚拟化代码期间发生的错误
[!] 修复了使用异常过滤器对异常处理程序结构进行反汇编和虚拟化期间发生的错误(针对 Delphi 和 Borland C++ Builder 上的程序)
[!] 修复了在 64 位文件中使用 多个 VM 时发生的错误
[!] 修复了小问题
[*] 增强了 标记 名称检测(针对 Visual C 上的程序)
[*] 编译过程中显着减少内存消耗
[*] “HTML” 资源现在不压缩
[*] 俄语帮助文件已更新
[+] 在 “Master” 模式下添加通配符搜索
[+] 添加具有更高压缩率的 新压缩模式
[+] 添加对带有 TLS 回调的文件的支持
[+] SDK 中添加了新 API – VMProtectIsValidImageCRC
1.8 版
[!] 修复SYS 文件 导入保护 时出现的错误
[!] 修复DLL/SYS 文件中 内存保护 时出现的错误
[!] 修复 DLL/SYS 文件中使用 多个 VM 时出现的错误
[!] 带有异常处理程序的代码变异
[!] 修复了同时使用 内存保护 和 水印 时发生的错误
[!] 修复了小错误
[*] 改进了对 标记 字符串的引用的检测(您不必将每个引用都标记为受保护的字符串)
[*] 改进的 导入保护
[*] 改进 调试器检测
[*] 俄语帮助文件已更新
[+] GUI 版本现在允许以不同名称保存工程文件
[+] 现在您可以打开工程文件
[+] 添加 沙盒检测
[+] 添加对使用编译的文件的支持/SAFESEH 键
[+] 添加了对 CodeGear 2009 的支持
[+] 现在您可以使用命名标记(当使用来自 VMProtectSDKxx.dll/VMProtectDDKxx.sys 的 VMProtectBegin / VMProtectBeginMutation / VMProtectBeginVirtualization / VMProtectBeginUltra 时)
[+] 新的 API 被添加到SDK( VMProtectIsDebuggerPresent 和 VMProtectIsVirtualMachinePresent )
[+] SenseLock [深思洛克]SE 版添加了一个新实用程序 – “远程更新和授权系统”
[+] SenseLock [深思洛克]SE 版现在具有密钥 ID 锁定
1.7 版
[!] 带有 SHAREABLE+WRITABLE 标志的部分现在不压缩
[!] 修复了小问题
[*] 改进了 SYS 文件的 导入保护
[*] 改进了 SYS 文件的 压缩 (压缩的部分不再用 WRITABLE 标记)
[*] 改进的 调试器检测
[+] 添加了 “ 内存保护 ” 选项(此选项防止在应用程序运行时对内存进行更改)
[+] 添加了 “ 检测虚拟化工具(VMware/Virtual PC) ” 选项
[+] 脚本类 TPEFile 现在有一个属性 EntryPoint
1.65 版
[!] 修复了小问题
[*] 改进了 导入保护
[*] 改进了 调试器检测
[+] 添加了未配对 标记 的识别(未配对标记在对象的常规列表中可用)
[+] 添加标记以应用预定义的编译类型:VMProtectBeginVirtualization、VMProtectBeginMutation 和 VMProtectBeginUltra
[+] 添加繁体中文
1.64 版
[!] 修复了 压缩文件 执行过程中出现的错误,如果它有 “TYPELIB” 、 “REGISTRY” 和 “MUI” 资源
[!] 修复了压缩文件执行过程中发生的 R6002 错误(对于在 Visual C 上编写的程序)
[!] 修复了在 64 位 SYS 文件中使用 “ 导入保护 ” 选项时发生的错误
[!] 修复了小问题
[*] 设置文件现在保存到 %APPDATA%/PolyTech/VMProtect
[*] 改进 导入保护
[+] 添加选项 “ 虚拟机 ” (不同的虚拟化代码片段在不同架构的不同虚拟机上执行)
[+] 添加选项 “ 调试器检测” ” (如果在受保护的应用程序执行期间检测到调试器,应用程序会显示相应的消息并关闭)
[+] 脚本类 TPESection 现在具有属性 IncludedInPacking
[+] 添加了对 IRETD 命令的支持
[+] 添加了使用示例拉撒路的标记
1.63 版
[!] 修复了使用 “导入保护 ” 选项时发生的错误
[!] 修复了小问题
[+] 脚本中添加了一个新事件: OnBeforePackFile
[+] 脚本类 TPEFile 现在有一个新属性 Handle
[+] 添加了在 Free Pascal中使用 标记 的示例
[*] 改进了 VM 对象的完整性控制
1.62 版
[!] 修复了使用 “ 导入保护 ” 选项时发生的错误
[!] 修复了在 “Ultra” 模式下处理 TRY/EXCEPT/END 块中的异常时发生的错误(针对在 Delphi 和 Borland C++ Builder 上编写的程序)
[*] 改进了对 SYS 文件的 导入保护
[+] 工程的每个对象现在都可以有自己的编译选项用于单独的性能调整(单独的选项在工程树中配置)
[+] 添加了 “将资源移动到末尾文件” 选项
[+] 添加了使用扩展标记的示例(参见示例\脚本\UseExtMarkers)
1.61 版
[!] 修复了在 Windows 95/98 下启动压缩文件时发生的错误
[!] 修复了一些小问题
[+] Lite 版本增加了通过命令行传递文件名的功能
[+] 增加了历史记录 “主” 模式
[+] 在 “主” 模式中添加语言选择
[+] 添加 “ 导入保护 ” 选项(建议与输出文件的压缩一起使用)
[+] 在 控制台版本 中,一个新的添加了参数 “-we” (使用此参数,所有警告都显示为错误)
[+] 将新类 TPEResourceRecords 添加到脚本
[+] 脚本类 TPEFile 现在有一个新属性 ResourceRecords
1.6 版
[!] 修复了小问题
[*] 改进了使用相同字符串的工作(现在相同的字符串显示为包含多个元素的单个对象)
[+] 添加了压缩输出文件的选项
[+] 添加了一个新类 TPEExportRecords 脚本
[+] 脚本类 TPEFile 现在有一个属性 ExportRecords
[+] 在脚本中添加了
一个新事件 OnBeforeSaveFile
[+] 添加了中文帮助文件(王小鹏翻译)
[+] 添加了 MAP 文件日期/时间检查。(如果 MAP 文件的修改日期和时间与受保护文件的不同,则不加载 MAP 文件)
1.56 版
[!] 修复了 BT、BTC、BTR 和 BTS 命令虚拟化过程中发生的错误
[!] 修复了小问题
[*] 选项列表按优先级排序
[*] 改进了对 VC8 的 SEH 支持
[*] 改进了动态在线命令生成
[*] 改进的 VM 对象完整性控制
[+] 增加了对 PREFETCH 和 PREFETCHW 命令的支持
[+] 脚本中添加了新函数 CompareText 和 AnsiCompareText
[+] 脚本类 TPEFile 现在有一个新属性 Size
[+] 增加了一个在MinGW中使用 标记 的例子
[+] 增加了中文(王小鹏翻译)
[+] 在程序中增加了对话 通配符搜索 添加( “*” 和 “?” 是允许的)
[+] 编译器的消息现在包括输出文件大小
1.55 版
[!] 修复了处理具有未对齐 ImageSize 值的文件时发生的错误
[!] 修复了在 Delphi 程序中计算 TRY 块时发生的错误
[!] 修复了在 Discardable 和 NonDiscardable 中处理 “混合” 代码时发生的错误SYS 文件部分
[!] 修复了 64 位 DLL/SYS 文件虚拟化期间发生的错误
[*] “退出 VM 时加密寄存器” 选项已恢复
[+] 将新类 TIniFile 添加到脚本
[+] 脚本类 TPEFile 现在有新的属性和方法
[+] GUI 版本现在有一个计算器,可以按地址计算文件偏移量
[+] 添加意大利语(Gabriele Lanza 翻译)
1.54 版
[!] 修复 PUSH ESP 命令变异时出错
[!] И修复 FLDCW [ESP+xxxx] 命令虚拟化时出错
[!] 修复字节码混淆时出错
[*] GUI 增强
[+] 添加了德语和西班牙语
[+] 添加了对 脚本 的支持
[+] 在 控制台版本 中添加了一个参数来指定脚本文件名
1.53 版
[!] 修复了 DLL/SYS 文件中代码虚拟化期间发生的错误
[*] 代码虚拟化改进
[*] 在 控制台版本 中,当输出定向到文件时, “运行” 百分比被删除
[+] 添加了一个选项为 x86-64 插入标记
[+] 添加了在工程中创建文件夹的功能
[+] 在 控制台版本 中,添加了一个新参数来标识工程的文件名
1.52 版
[!] 修复 CMOVxx, CMPXCHG 和 CMPXCHG8B 命令变异时出错
[!] 修复 LEA ESP, [ESP+xxxx] 命令变异时出错
[*] RCL 和 RCR 命令添加到基本逻辑VM
[+] 添加了对 x86-64的支持
[+] 在 GUI 版本中, “ 选项 ” 选项卡现在可以设置为显示输出文件名
[+] 添加了俄语和英语的帮助文件
1.51 版
[!] 修复创建零长度 “重定位表” 时出错
[!] 修复 DLL/SYS 文件中 “Mutation” 模式下 CALL [Xxxx] 命令变异时出错
[!] Delphi 中例如,VMProtectBegin 定义现在包括一个阻止优化 VMProtectBegin 的命令(优化可能导致受保护的应用程序无法正常工作)
[+] 添加了 “编译后自动保存工程” 选项
1.5 版
[!] 修复了将文件拖到主窗口时发生的错误
[!] 修复了处理只读文件时发生的错误
[!] 修复了 “Ultra” 模式下编译过程中的小问题
[*] 受保护的文件现在继承原始文件的属性
[+] 受保护过程列表现在可以包含字符串(必须使用标记选择字符串分配)
[+] 安装包包括在 Borland C++ Builder、Delphi、MASM、Visual Basic 和 Visual 中使用标记的示例C++
[+] 添加了一个选项: “集成到 shell”
1.4 版
[!] 修复 IMUL, MUL, IDIV, DIV 命令变异时出错
[!] 修复多个 CASE 表逐一虚拟化时出错
[!] 修复 POP word/dword ptr 虚拟化时出错 [esp+xxxx] 和 IMUL reg8 命令
[!] 修复了反汇编 MOVNTPS 和 MOVNTPD 命令时发生的错误
[+] 添加了一种新的编译类型 “Ultra” (变异+虚拟化)”
[+] 在 add 中添加了编译类型选择/修改过程窗口
[+] 增加了在进程中搜索水印(用于在压缩文件中搜索水印)
[*] 增强了与 ASM 编译器(TASM、MASM 等)的兼容性
1.3 版
[!] 修复了模拟 FILD word ptr [xxxx] 命令时发生的错误
[+] 每个程序都可以指定特定的编译类型( “Mutation” 或 “Virtualization” )
1.25 版
[+] 为 VC7-8 添加了对 SEH 的支持
[+] 在 Visual Basic 中添加了对标记的支持(片段的开头和结尾用以下几行标记:Call VarPtr( “VMProtect begin” ) 和 Call VarPtr( “VMProtect end ” ))
[*] 在注册版本中,VM 解释器现在完全改变(以防止签名扫描仪自动检测保护,如 PEiD、RDG Packer Detector 等)
1.24 版
[+] 添加了向受保护文件插入水印的可能性
[*] VM 解释器现在支持多线程应用程序(无需创建过程来为解释器分配内存)
[-] 为 VM 解释器分配内存的选项已移除。
1.23 版
[!] 修复了一些小问题
[+] 添加了 “主” 模式
[+] 程序树现在显示链接
[*] 选项 “隐藏常量” 、 “动态创建在线命令” 、 “跳转时加密寄存器” 、 “VM 对象完整性控制” 和其他仅适用于注册用户
1.22.2 版
[!] 修复了启用 “解释器中的内存分配” 选项的工程编译期间发生的错误
1.22 版
[!] 修复了小问题
[+] 增加了检查字节码完整性的可能性(需要启用 “VM 对象完整性控制” 选项)
1.21 版
[!] 修复了在 CMPXCHG8b 仿真过程中发生的错误,如果操作数是 EAX 和 EDX
[+] 现在解释器只包含那些将用于执行字节码的命令
[-] 从 VM 的基本逻辑中删除了一些命令(到复杂的字节码分析和反编译)
1.2 版
[!] 修复了移动绑定导入目录时发生的错误
[+] 增加了将代码的标记部分包含到工程中的可能性(片段的开头和结尾由以下代码汇编器插入标记 - “db $EB,$10,'VMProtect begin',0" 和 "db $EB,$0E,'VMProtect end',0")
[+] 添加了将导出函数包含到工程中的选项
[-] 删除了 “加密字节码” ” 选项(字节码现在总是加密的)
1.1 版
[!] 修正了以下发生的错误:模拟 SBB(某些标志的错误状态);CMOVxx、CMPXCHG 和 CMPXCHG8b 的仿真(当使用 ESP 或 DWORD 值寻址第二个操作数时)
[+] 在 VB6(本机)中添加了对 SEH 的支持
[+] 添加了对 IDA 生成的 MAP 文件的支持
[+] 添加了批量添加程序的选项
[+] 添加了在程序列表中直接显示命令的链接
[+] 添加了一个新选项: “在跳转时加密寄存器”
1.09 版
[*] 改进循环反汇编时的过程结束检测过程
[+] 对于 UPX 兼容性,可写部分的可共享标志被清除(如果旧的重定位表用于 VM 需要)
1.08 版
[*] 大片段代码反汇编加速
[*] 改进字节码解释器的变形机制
1.07 版
[!] 修复了以下情况发生的错误:使用 PE 文件(当代码段虚拟大小等于零时);混淆 FPU 命令(错误导致错误结果);反汇编(检测到 CWD 而不是 CWDE);模拟 ROL 和 ROR 命令(如果参数是 1 字节)
[+] 添加了对 SSE2 命令组的支持
1.06 版
[!] 修复了在模拟 SUB、CMP、DEC、NEG、CMPXCHG、SCAS 和 CMPS 命令后破坏 A 标志状态的错误。
[!] 修复了处理未对齐文件时发生的错误
[+] 增加了对 BSF、BSR 和 CMPXCHG8b 指令的支持
[+] 对于多线程应用程序,您可以为 VM 解释器指定内存分配过程(内存分配过程必须被定义为fastcall)
1.05 版
[+] 增加了对 FUCOMPP 和 FCMOVxx 指令的支持
[+] 编译器生成的字符串类型 (ANSI/Unicode/Pascal) 和结构字段的注释现在在查看部分代码时会显示
[+] 为字节码解释器
[+] 添加了新的编译选项: “字节码加密” 和 “条带重定位(仅适用于 EXE 文件)”
[-] 删除了 “混淆字节码” 选项(现在始终打开)
1.04 版
[!] 修复了检测 C++ 的 SEH 处理程序时发生的错误
[*] 字节码混淆器完全重新设计
[+] 重定位现在在代码中突出显示
1.03 版
[+] 原始代码部分的 “可用空间” 用于存储字节码
[+] 添加了对 “短” 帕斯卡格式字符串的检测(第一个字节定义字符串的长度)
1.02 版
[!] 修复了与在 DLL/SYS 中执行在线命令相关的错误
[*] 更改了字节码校验和的计算算法
[+] 添加了一个选项 “VM 解释器完整性控制” (如果解释器也可以作为反调试技术)正在调试并且调试器使用 INT 03 作为断点)。
[+] 使用 “旧” 重定位表来存储字节码
1.01 版
[!] 修复了创建重定位文件时出现的错误(Windows 95/98/Me 中运行 DLL/SYS 文件时出现的错误)
[!] 修复了反汇编器中的小问题
[+] 增加了对指令的支持: F2XM1, FABS, FCLEX, FCOS, FDECSTP, FINCSTP, FINIT, FLDCW, FLDLN2, FLDLG2, FPREM, FREM1, FPTAN, FRNDINT, FSIN, FSTCW, FTST, FYL2X, FPATAN, FLDZ, FISTP
[+] 添加了对 MAP 文件的支持Borland C Builder
[+] 现在您可以选择界面和消息的语言(俄语和英语可用)
1.0 版
[!] 修复了界面中的小错误
[+] 增加了对 CMOV 和 CMPXCHG 的支持
0.97 版
[!] 修复了界面中的小错误
[+] 增加了对 Virtual Pascal 的支持
0.96 版
[!] 修复了编译器中的错误(编译 NEG 和 SBB 指令时使用 C 标志不正确;修复了 POPF 处理;修复了处理外部条件跳转时错误的字节码 CRC 检查)
[!] 修复了 VM 解释器中与字节码混淆相关的错误
[+] 改进了对 C/C++ 编译器生成的 MAP 文件的处理(过程名称包含有关参数的信息)
0.94 版
[!] 修复了许多错误