• 软件加密系统Themida应用程序保护指南(四):虚拟机的选择


    Themida是先进的Windows软件保护系统,它被用于满足软件开发人员对于所开发应用程序安全保护的需求,使其远离被先进的逆向工程和软件破解的危险。Themida采用最新最强大的软件保护技术SecureEngine®设计。

    从攻击者的角度来看,Themida与传统的软件保护器完全不同,这是因为其复杂的保护引擎和高优先级的代码,可以针对可能的攻击者对整个系统进行监督。从软件开发人员的角度来看,Themida非常易于使用,并且可以轻松地调整其保护技术以满足开发人员的需求。

    Themida使用SecureEngine®保护系统来涵盖各种情况。在以下情况下,SecureEngine®是理想的解决方案:

    • 保护应用程序免遭修改和软件盗版: SecureEngine®通过使用革命性的技术克服了任何传统或最新的破解工具,在运行时对应用程序的代码进行加密和解密,从而保护了应用程序的完整性。
    • 保护应用程序免受逆向工程: SecureEngine®使用多种技术来防止逆向工程。攻击者将无法使用破解工具来分析受保护应用程序的代码。
    • 保护应用程序免受监视工具的侵害: SecureEngine®包括用于检测注册表和文件监视工具的最先进技术。开发人员在检测到监视工具后选择所需的选项来完成其应用程序的执行。

    虚拟机

    虚拟机面板允许您将虚拟机技术集成到您的应用程序中。

    可用的虚拟机

    该面板显示了可以在受保护的应用程序中使用的所有可用虚拟机。对于特定客户,某些虚拟机是公共的,而其他虚拟机是专用的。

    假设使用 TIGER 虚拟机对同一个应用程序进行两次保护。每个被保护的实例都包含一个独特的 TIGER 虚拟机,它的寄存器、指令处理程序、操作码表等都与前一个实例不同,只是共享 TIGER 架构的内部骨架。它们只是共享 TIGER 架构的内部骨架。裂解者必须研究TIGER架构的内部骨架,然后试图找到一种方法来攻击所有不同的TIGER架构。这个方案包含了目前所有基于虚拟机的软件保护程序(它们使用的是由它们定义的内部架构模型的突变/变化)。

    在强大的虚拟机生成器工具的帮助下,创建多个虚拟机架构。比较两个不同的架构名称,比如TIGER和LION,就相当于比较一个Intel x86处理器和一个ARM处理器。每一个架构都是完全独立的,而且在开发时没有考虑到另一个架构。

    复杂度和速度列显示了一些关于给定虚拟机的执行速度和复杂度的统计。请注意,根据虚拟机内部的修订版,这些值可能会发生变化(在不同版本中增加或减少)。

    实例列允许您指定将为给定虚拟机架构生成的副本数量。即使使用相同的架构名称,生成的虚拟机也会包含不同的寄存器位置、不同的处理程序、不同的操作码表等。当您为给定的虚拟机插入多个CPU时,一些保护代码和您的虚拟机宏将与任何生成的CPU一起被虚拟化

    为保护启动加载器选择的虚拟机

    保护启动加载器(在您的应用程序控制之前执行的代码)使用内部虚拟化引擎来保护自己不被检查。可以选择一个特定的虚拟机,将保护启动代码虚拟化。要做到这一点,只需右键单击特定的虚拟机并选择 "在保护启动中使用它"。我们建议您不要使用非常复杂的虚拟机(速度较低),以避免在加载您的应用程序时出现明显的性能下降。

    为标准(旧)虚拟机宏选择的虚拟机

    如果在源代码中插入了旧的VM_START/END宏,您可以将特定的虚拟机名称关联到这些宏。要做到这一点,只需右键单击特定的机器,然后选择 "将其用于旧的虚拟机宏"

    选择虚拟机的准则

    开发者可能会感到困惑,他们应该选择哪种虚拟机,以便为他们的应用程序获得所需的安全性。一些开发者可能会有这样的想法,即尽可能多地添加虚拟机和CPU,以高度增加其应用程序的安全性。这可能不会产生他们想要的效果。

    1. 只插入一个或几个虚拟机。如果你插入几个虚拟机和CPU,就会在磁盘和内存上产生一个大的受保护的应用程序,因为有些虚拟机可能会超过1Mb。注意,如果您选择了几个虚拟机,而它们没有在下部的 "虚拟化 "面板中被选择,SecureEngine将不会在您的应用程序内插入这些虚拟机,因为它们将被保护不使用(优化受保护应用程序的最终大小)。
    2. 当您在应用程序中使用虚拟化宏时,您应该避免使用旧的VM宏,并指定保护特定宏的虚拟机架构(例如:"VM_TIGER_RED_START/END")。这将允许您使用复杂的虚拟机来处理您最敏感的代码,而使用较轻的虚拟机来处理需要虚拟化并以较高速度执行的代码。
    3. 不时考虑更新您的虚拟化宏,以指向不同或更新的虚拟机架构。如果您已经使用了一段时间的TIGER架构,您可能需要在新版本的应用程序中选择不同的架构,以对抗已经在您的应用程序后面一段时间的破解者。

     如有产品相关方面的需求,欢迎私聊我们获取~

  • 相关阅读:
    nginx的重定向
    王道数据结构5(树与二叉树)
    性能测试之性能监控和性能优化
    武汉ITSS运维服务认证价值
    MySQL约束详解
    线程基础概念
    JavaScript函数高级应用
    0019Java程序设计-SSM + MySQL 家庭医生预约平台
    2023网络工程毕业设计选题推荐 - 计算机毕业设计题目大全
    Python面向对象2-继承-
  • 原文地址:https://blog.csdn.net/m0_67129275/article/details/127684914