软件加密系统Themida应用程序保护指南(八):额外的选择

发布于:2022-11-10 ⋅ 阅读:(554) ⋅ 点赞:(0)

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

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

下载Themida最新版icon-default.png?t=M85Bhttps://www.evget.com/product/3593/download

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

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

额外的选择

清单选项

如果不受保护的应用程序中不存在自定义清单资源,则可以将其显式添加到受保护的应用程序中。

  • 从XBundler文件添加清单:有时,捆绑的DLL(未提取到磁盘)需要清单才能正确运行(例如,它需要管理员的权限)。如果DLL是捆绑的,则操作系统不会显示该清单,因此它无法在应用程序启动之前应用它。此选项提取捆绑文件的清单,并将其应用于受保护的应用程序。
  • 从文件添加清单:您可以从外部文本文件将任何清单信息添加到受保护的应用程序中。如果您需要从外部二进制文件(EXE / DLL)中提取清单,则可以使用任何可以读取/显示资源部分的PE文件编辑器,并且可以从此处获取清单(以文本格式)。之后,只需创建一个包含该信息的文本文件,然后将该文件的路径传递到“从文件添加清单”选项中即可。这是一个可能的外部清单文件的内容示例,该文件要求在受保护的应用程序中具有管理员权限:
    <assembly xmlns="urn:schemas-microsoft-com:asm.v1" manifestVersion="1.0">
    
     <assemblyIdentity version="1.0.0.0"
    
          processorArchitecture="X86"
    
          name="AliasDatabaseServer"
    
          type="win32" />
    
     <description>AlaiasDatabaseServer manifest</description>
    
     <trustInfo xmlns="urn:schemas-microsoft-com:asm.v3">
    
       <security>
    
         <requestedPrivileges>
    
           <requestedExecutionLevel level="requireAdministrator" />
    
         </requestedPrivileges>
    
       </security>
    
     </trustInfo>
    
    </assembly>

溅射选项

您可以插入一个启动图像(JPG图像),该图像将在应用程序启动之前(运行保护启动代码时)显示。如果在“虚拟机”面板中使用沉重的虚拟机进行启动保护,则启动屏幕非常适合让客户知道您的应用程序正在启动。

显示启动画面时,有几种方法可以关闭启动画面,例如,单击鼠标时关闭,几秒钟后关闭或从代码中关闭它。

要从您自己的应用程序中关闭启动画面,您可以从环境变量SecureEngineSplashWnd中读取启动画面窗口。获得启动窗口后,您只需向该窗口发送WM_DESTROY消息即可。这是Delphi中的一个示例:

procedure CloseSplash;

var

 WndStr: String;

begin

 WndStr := GetEnvVarValue('SecureEngineSplashWnd');

 SendMessage(StrToInt(WndStr), WM_DESTROY, 0, 0);

end;

优化选项

在某些情况下或对于特定应用程序,为了获得额外的速度或减小受保护的二进制文件的大小,您可能会牺牲一些保护方面的复杂性。以下选项对此有所帮助:

  • 优先于保护的速度:此选项降低了保护启动加载程序的复杂性,从而增加了受保护应用程序的启动时间
  • 支持大小优先于保护:此选项在较小程度上降低了保护,并使用其他压缩算法以实现更好的压缩
  • 针对ARM上的Windows进行优化:在仿真特定的代码或数据访问时,Windows on ARM仿真会产生一些损失。此选项生成的保护代码在Windows on ARM上可以更快地仿真,而保护代码的复杂性仅得到很小的降低。

 如有产品方面的需求,欢迎留言咨询~

本文含有隐藏内容,请 开通VIP 后查看

网站公告

今日签到

点亮在社区的每一天
去签到