vmprotect VMProtect VMProtect-VMProtect,VMProtect-VMProtect历史更新

vmprotect VMProtect VMProtect-VMProtect,VMProtect-VMProtect历史更新

VMProtect 是新一代的软件保护系统,将保护后的代码放到虚拟机中运行,这将使分析反编译后的代码和破解变得极为困难。使用 MAP 文件或内建的反编译引擎,您可以快速选择需要保护的代码。

vmprotect_VMProtect -VMProtect

与传统保护方式的比较:

传统的保护软件都有一个共同的弱点,即他们都不修改源代码。保护方式仅仅是通过“信封”原理将软件主体封装起来,然后通过一个装载器解压缩保护的软件主体,解压后的软件在内存中很容易被转储并被非法修改。破解者拥有一系列反编译工具可以破坏这种保护,网络上也有许多文章阐述如何脱壳常规的保护软件。

VMProtect 是新一代的软件保护系统,不像市场上其它常见的保护软件,VMProtect 可以修改软件产品的源代码,转换部分代码为在虚拟机上运行的字节码(bytecode)。您可以将虚拟机想象成为带有不同于Intel 8086处理器系统指令的虚拟处理器。例如,虚拟机没有比较两个操作数的指令,也没有条件跳转和无条件跳转指令等等。这样一来,破解者就需要开发一整套的解析引擎来分析和反编译字节码,以现有的解密理论,破解者想要还原出源代码几乎是不可能的。

支持的编译器:

Delphi

Borland C Builder

Visual C/C++

Visual Basic (native)

Virtual Pascal

支持的文件类型(32 位和 64 位):

EXE

DLL

BPL

OCX

SYS

支持的操作系统:

Windows 95/98

Windows ME

Windows NT

Windows 2000

Windows XP

Windows 2003

Windows Vista

vmprotect_VMProtect -VMProtect 历史更新

Version 1.81

[!] 修复在 Pentium 4 处理器执行变异后的代码可能出现错误的缺陷

[!] 修复在 Athlon 处理器执行虚拟化的代码可能出现错误的缺陷

[!] 修复反汇编和虚拟化 Borland 编译的程序结构时可能出现错误的缺陷

[!] 修复加密 64 位应用程序时可能产生错误的缺陷

[!] 修复诸多缺陷

[*] 重定义加密标记名称(仅限 Visual C)

[*] 减少加密时的内存占用

[*] HTML 资源不再被压缩

[*] 更新俄语帮助文件

[+] 向导模式新增流程列表筛选

[+] 新增高压缩率的压缩模式

[+] 新增对 TLS 回调的支持

[+] SDK 添加新的 API 函数 - VMProtectIsValidImageCRC

Version 1.8

[!] 修复保护驱动文件的输入表可能产生错误的缺陷

[!] 修复保护 DLL/SYS 文件内存时可能产生错误的缺陷

[!] 修复在 DLL/SYS 文件中使用多个 VM 标记可能产生错误的缺陷

[!] 修复带有异常句柄的代码变异时可能产生错误的缺陷

[!] 修复同时使用内存和水印保护可能产生错误的缺陷

[!] 修复其它小缺陷

[*] 改进对标记字符串参考的检测(不需要标记所有的字符串参考)

[*] 改进输入表保护

[*] 改进调试器检测

[*] 更新俄语帮助文件

[+] 项目文件可以保存为不同的名称

[+] 新增项目文件支持

[+] 新增对 Sandboxie 的检测

[+] 新增对带有 /SAFEseh属性编译文件的支持

[+] 新增对CodeGear2009 的支持

[+] 加密标记可以重命名(对于 VMProtectBegin/VMProtectBeginMutation/VMProtectBeginVirtualization/VMProtectBeginUltra 来自 VMProtectSDKxx.dll/VMProtectDDKxx.sys 文件)

[+] SDK 添加新的 API 函数(VMProtectIsDebuggerPresent 和 VMProtectIsVirtualMachinePresent)

[+] SenseLock 版本新增远程更新和授权系统

[+] SenseLock 版本新增固定密钥锁定功能

Version 1.7

[!] 具有 SHAREABLE+WRITABLE 标志的区段不会再被压缩

[!] 修复部分缺陷

[*] 改进驱动文件的输入表保护

[*] 改进驱动文件的压缩(压缩区段不再设置为 WRITABLE 标志)

[*] 改进调试器检测方式

[+] 新增“内存保护”选项(用于程序运行时保护内存不被修改)

[+] 新增“虚拟运行环境检测 (VMware/Virtual PC)”选项

[+] 脚本新增 TPEFile 类的 EntryPoint 属性

Version 1.65

[!] 修复部分缺陷

[*] 改进输入表保护

[*] 改进反调试保护

[+] 支持未闭合的加密标识 (也就是未两两配对的加密标识)

[+] 新增三种明确编译方式的加密标识:VMProtectBeginVirtualization, VMProtectBeginMutation 和 VMProtectBeginUltra

[+] 新增繁体中文语言文件

Version 1.64

[!] 修复处理 "TYPELIB", "REGISTRY" 和 "MUI" 资源时可能导致错误的缺陷

[!] 修复处理 Visual C 程序出现 R6002 错误的缺陷

[!] 修复 64 位 SYS 文件应用“输入表保护”可能导致错误的缺陷

[!] 修复更多的小缺陷

[*] 文件选项现在保存在 %APPDATA%/PolyTech/VMProtect 目录

[*] 改进输入表保护

[+] 新增“虚拟计算机”选项(不同的虚拟代码会由不同体系的虚拟计算机执行)

[+] 新增“VMware/Virtual PC 检测”选项(保护后的程序启动时如果检测到 VMware/Virtual PC 等虚拟运行环境,会弹出提示窗口并自动关闭)

[+] 新增“调试器检测”选项(保护后的程序启动时如果检测到调试器,会弹出提示窗口并自动关闭)

[+] 新增 Lazarus 环境下的加密标识实例

Version 1.63

[!] 修复“输入表保护”选项导致错误的缺陷

[!] 修复部分缺陷

[+] 脚本新增 OnBeforePackFile 事件

[+] 脚本新增 TPEFile 类的 Handle 属性

[+] 新增在Free Pascal使用加密标识的实例

[*] 改进对 VM 对象的完整性控制

Version 1.62

[!] 修复“输入表保护”选项导致错误的缺陷

[!] 修复“超级”编译模式处理 TRY/EXCEPT/END 异常语句时导致错误的缺陷(由 Delphi 和 Borland C++ Builder 编译的程序)

[*] 改进 SYS 驱动文件的输入表保护

[+] 项目中的每一个对象都可以精确选择不同的编译类型(在项目树中配置)

[+] 新增“挪动资源到文件尾”选项

[+] 增加一个使用扩展标记的实例(位于 ExamplesScriptsUseExtMarkers 目录)

Version 1.61

[!] 修复在 Windows 95/98 系统下加载压缩文件可能导致错误的缺陷

[!] 修复部分缺陷

[+] 现在简装版也可以通过命令行传递文件名称

[+] 历史记录添加到“向导模式”窗口

[+] “向导模式”窗口新增语言选择选项

[+] 新增“输入表保护”选项(推荐与“压缩输出文件”一起使用)

[+] 命令行版本新增 "-we" 参数(如果使用此参数,会显示所有的错误消息)

[+] 脚本新增 TPEResourceRecords 类

[+] 脚本新增 TPEFile 类的 ResourceRecords 属性

Version 1.6

[!] 修复部分缺陷

[*] 改进对相同字符串的处理方式(现在相同的字符串显示为一个包含多个记录的对象)

[+] 新增 压缩引擎,可以压缩输出文件

[+] 脚本新增 TPEExportRecords 类

[+] 脚本 TPEFile 类新增 ExportRecords 属性

[+] 脚本新增 OnBeforeSaveFile 事件

[+] 新增简体中文版帮助文件

[+] 载入 MAP 文件时,新增文件修改时间的检测(如果 MAP 文件的修改时间与主文件不符,该 MAP 文件将不会被载入)

Version 1.56

[!] 修复 虚拟 BT, BTC, BTR 和 BTS 时 可能导致错误的缺陷

[!] 修复部分缺陷

[*] 保护选项列表按优先级排序

[*] 对 VC8 改进 SEH 支持

[*] 改进动态创建联机命令

[*] 改进对 VM 对象的完整性控制

[+] 新增 PREFETCH 和 PREFETCHW 命令支持

[+] 新增脚本函数CompareText 和 ANSICompareText

[+] 脚本中 TPEFile 类新增属性 Size

[+] 新增在 MinGW 使用加密标识的实例

[+] 新增简体中文语言文件

[+] “新建流程”对话框新增"*" 和"?" 通配符支持

[+] 编译器消息窗口新增输出文件大小消息

Version 1.55

[!] 修复 处理未对齐映像大小的文件时 可能导致错误的缺陷

[!] 修复 确定 Delphi 程序 TRY 代码块起始位置时 可能导致错误的缺陷

[!] 修复 处理 SYS 文件 Discardable 和 NonDiscardable 节中混合代码时 可能导致错误的缺陷

[!] 修复 虚拟 64 位 DLL/SYS 文件时 可能导致错误的缺陷

[*] 恢复“离开虚拟机时加密寄存器”选项

[+] 脚本新增 TIniFile 类

[+] 脚本中 TPEFile 类新增附加属性和方法

[+] 图形界面版本新增计算地址偏移量的计算器功能

[+] 新增意大利语言文件(由 Gabriele Lanza 提供翻译)

Version 1.54

[!] 修复 变异 PUSH ESP 时 可能导致错误的缺陷

[!] 修复 虚拟 FLDCW [ESP+xxxx] 命令时 可能导致错误的缺陷

[!] 修复 混乱字节码时 可能导致错误的缺陷

[*] 改进图形界面

[+] 新增德国和西班牙语言文件

[+] 新增脚本支持

[+] 命令行版本新增指定脚本文件名称的参数

Version 1.53

[!] 修复 虚拟 DLL/SYS 文件代码时 可能导致错误的缺陷

[*] 改进代码虚拟化功能

[*] 命令行版本移除输出文件重定向到文件时的动态百分比显示

[+] 新增对 x86-64 加密标识的支持

[+] 项目新增创建文件夹功能

[+] 命令行版本新增指定项目文件名称的参数

Version 1.52

[!] 修复 变异 CMOVxx, CMPXCHG 和CMPXCHG8B命令时 可能导致错误的缺陷

[!] 修复 变异 LEA ESP, [ESP+xxxx] 命令时 可能导致错误的缺陷

[*] VM 逻辑新增 RCL 和 RCR 命令

[+] 新增对 x86-64 的支持

[+] “选项”标签新增指定输出文件名称功能

[+] 新增 英文和俄语帮助文件

Version 1.51

[!] 修复 创建 0 大小的重定位表时 可能导致错误的缺陷

[!] 修复 变异 DLL/SYS 文件中 CALL [xxxx] 命令时 可能导致错误的缺陷

[!] Delphi 实例新增阻止 VMProtectBegin 优化命令的 VMProtectBegin 声明(VMProtectBegin 的优化可以从被保护的文件运行时就阻止)

[+] 新增“编译后自动保存项目文件”选项

Version 1.5

[!] 修复 主窗口拖放文件时 可能导致错误的缺陷

[!] 修复 处理具有只读属性的文件时 可能导致错误的缺陷

[!] 修复“超级”编译模式的部分缺陷

[*] 现在保护后的文件与原文件具有相同的属性

[+] 保护流程新增对字符串的支持(字符串必须由加密标识标记)

[+] 发行版新增 Borland C++ Builder, Delphi, MASM, Visual Basic 和 Visual C++ 的加密标识实例

[+] 新增“整合右键菜单”选项

Version 1.4

[!] 修复 变异IMUL, MUL, IDIV, DIV 命令时 可能导致错误的缺陷

[!] 修复 虚拟连续的 CASE 表时 可能导致错误的缺陷

[!] 修复 虚拟 POP word/dword ptr [esp+xxxx] 和 IMUL reg8 命令时 可能导致错误的缺陷

[!] 修复 反编译 MOVNTPS 和 MOVNTPD 命令时 可能导致错误的缺陷

[+] 添加新的编译类型:“超级(变异 + 虚拟)”

[+] 添加/编辑流程 对话框新增“编译类型”选项

[+] 新增 搜索水印 功能(用于在保护后的文件中搜索水印)

[*] 改进对 ASM 编译器兼容性的支持 (TASM, MASM, etc.)

Version 1.3

[!] 修复 模拟fildword ptr [xxxx] 命令时 可能导致错误的缺陷

[+] 现在可以对每个流程指定编译类型(变异 或 虚拟)

Version 1.25

[+] 新增对 VC7-8 SEH 支持

[+] 新增对 Visual Basic 加密标识的支持(加密区间的 开始/结束 分别用 Call VarPtr("VMProtect begin") 和 Call VarPtr("VMProtect end") 标记)

[*] 注册版的 VM 解析引擎已经完全改变(可以有效防止PEID, RDGpackerDetector 之类的探壳工具查明保护方式)

Version 1.24

[+] 新增水印功能

[*] 现在 VM 解析引擎完全支持多线程应用程序(您完全不必再为解析引擎的内存定位烦恼)

[-] 移除 解析引擎内存定位 功能

Version 1.23

[!] 改进部分功能

[+] 新增向导模式

[+] 流程树新增参考

[*] 选项“隐藏常量”,“动态创建联机命令”,“跳转时加密寄存器”,“检查虚拟机对象的完整性”仅注册用户可以使用

Version 1.22.2

[!] 修复 当“解析引擎内存定位”选项激活时编译项目文件 可能导致错误的缺陷

Version 1.22

[!] 修复部分缺陷

[+]新增字节码完整性检查(需要激活“检查虚拟机对象的完整性”选项)

Version 1.21

[!] 修复 如果 EAX 和edX寄存器有操作数时模拟 CMPXCHG8b 可能导致错误的缺陷

[+] 解析引擎只包含那些参与执行字节码的命令

[-] 从 VM 逻辑中移除部分命令(它们的存在使分析和汇编字节码变得很麻烦)

Version 1.2

[!] 修复 移动 Bound Import 时 可能导致错误的缺陷

[+] 新增加密标识功能(加密区间的 开始/结束 分别用 "db $EB,,'VMProtect begin',0" 和 "db $EB,E,'VMProtect end',0" 标记)

[+] 项目文件新增对导出函数的支持

[-] 移除“加密字节码”选项(现在字节码永远都处于加密状态)

Version 1.1

[!] 修复 模拟SBB(部分标志位不正确),模拟 CMOVxx, CMPXCHG 和 CMPXCHG8b (在某些情况下 ESP 寄存器存储地址或 DWORD 值作为第二个变量)时 可能导致错误的缺陷

[+] 新增对 VB6 SEH 的支持 (native)

[+] 新增对 IDA 创建的 MAP 文件的支持

[+] 新增批量添加流程的功能

[+] 流程列表新增命令参考

[+] 新增“跳转时加密寄存器”选项

Version 1.09

[*] 改进对循环流程结尾检测的处理方式

[+] 改进对 UPX 的兼容性,清除可写区段的共享标志(当旧的重定位表需要被虚拟机使用时)

Version 1.08

[*] 增强反编译大段代码的速度

[*] 改进字节码解析引擎变形机制

Version 1.07

[!] 修复 处理 PE 文件(代码段虚拟大小为 0);混乱 FPU 命令(导致不正确结果的错误);反编译(cwdE 命令被认为是 CWD 命令);模拟ROL和ROR命令(如果参数是 1 字节)时 可能导致错误的缺陷

[+] 新增对组命令 SSE2 的支持

Version 1.06

[!] 修复 模拟 SUB, CMP, DEC, NEG, CMPXCHG, SCAS 和cmps命令后导致错误的 A 标志位状态的缺陷

[!] 修复 处理非对齐的文件时 可能导致错误的缺陷

[+] 新增对BSF, BSR 和 CMPXCHG8b 指令的支持

[+] 新增 指定多线程应用程序 VM 解析引擎的内存定位 功能(内存定位流程必须定义为 fastcall)

Version 1.05

[+] 新增对 FUCOMPP 和 FCMOVxx 指令的支持

[+] 结构代码查看新增字符串类型 (ANSI/Unicode/Pascal) 和注释

[+] 新增字节码解析引擎变形处理

[+] 添加新的编译选项:“加密字节码”和“移除可配置元素(仅支持 EXE 文件)”

[-] 移除“混乱字节码”选项(现在字节码总是处于混乱状态)

Version 1.04

[!] 修复 检测 C++ SEH 句柄时 可能导致错误的缺陷

[*] 改进字节码混乱功能

[+] 查看代码时,新增可配置元素的高亮显示

Version 1.03

[+] 新增使用原文件的“自由空间”存储字节码

[+] 新增对 Pascal 格式短字符串的识别(首字节为字符串长度)

Version 1.02

[!] 修复 执行 DLL/SYS 文件联机命令时 可能导致错误的缺陷

[*] 改进计算字节码校验和算法

[+] 新增“检查 VM 解析引擎完整性”选项(当调试器使用 INT 03 中断来调试解析引擎时,此选项可以用作反调试器)

[+] 使用旧的可配置元素来存储字节码

Version 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 指令的支持

[+] 新增对 Borland C Builder 创建的 MAP 文件的支持

[+] 新增多语言支持(俄语和英文)

Version 1.0

[!] 修复图形界面的一些缺陷

[+] 新增对 CMOV 和 CMPXCHG 指令的支持

Version 0.97

[!] 修复图形界面的一些缺陷

[+] 新增对 Virtual Pascal 的支持

Version 0.96

[!] 修复编译器的一些缺陷(编译 NEG 和 SBB 指令时 C 标志的错误;修正 POPF 处理方式;处理外部条件跳转时检查字节码 CRC 校验的错误)

[!] 修复 VM 解析引擎中字节码混乱功能的缺陷

[+] 改进对 C/C++ 创建的 MAP 文件的处理方式

Version 0.94

[!] 修复大量缺陷

  

爱华网本文地址 » http://www.413yy.cn/a/8103470103/109583.html

更多阅读

转载 历史教师袁腾飞 袁腾飞这个历史挺靠谱

原文地址:历史教师袁腾飞作者:Annie的春天公主历史教师袁腾飞北京历史教师袁腾飞最近火爆互联网,被中国央视邀请做演讲,形成了“袁腾飞现象”,但其大胆评价历史被官方极左派媒体所围攻。被网友称为“史上最牛历史老师”的北京教师袁腾

历史上的今天2月20日 历史上的今天8月20日

历史上2月20日这一天发生了哪些大事?历史时段:1933~2003(更新时间:2012-2-20)世界社会公正日每年的2月20日是“世界社会公正日”。联合国设立它的目的是进一步推动国际社会在消除贫困、实现男女平等和促进社会公正等方面所进行的努力。200

历史上的今天8月20日 历史上的今天10月20日

历史上8月20日这一天发生了哪些大事?历史时段:1905~2008(更新时间:2012-8-20)孙中山(二排左起第7人)与同盟会会员合影1905年8月20日,中国同盟会在东京举行成立大会。会议推选孙中山为同盟会总理,黄兴为执行部庶务。同盟会的成立,使中国资产阶级

历史上的今天(12月31日) 历史上的今天9月12日

历史上12月31日这一天发生了哪些大事?历史时段:1850~2008(更新时间:2014-12-31)多尔衮1650年12月31日,多尔衮病卒于喀喇城(今河北承德市郊),年39岁。多尔衮是清初重要的政治家和军事家,谋勇兼备,能重用汉族谋臣和将吏。统兵驭将,赏罚分明。善于

声明:《vmprotect VMProtect VMProtect-VMProtect,VMProtect-VMProtect历史更新》为网友情戁分享!如侵犯到您的合法权益请联系我们删除