软件加密系统Themida应用程序保护指南(七):外挂插件

发布于:2022-11-09 ⋅ 阅读:(13) ⋅ 点赞:(0) ⋅ 评论:(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®包括用于检测注册表和文件监视工具的最先进技术。开发人员在检测到监视工具后选择所需的选项来完成其应用程序的执行。

外挂程式

Themida允许您插入将嵌入受保护的二进制文件内的自定义插件(DLL)。嵌入式插件可以实现在发生特定保护事件时将调用的特定已定义回调,因此您可以对保护进行更多控制,添加自己的自定义保护等。

插件基本上是经过编译的本机DLL(不支持.NET DLL),可导出与特定名称模式匹配的特定功能名称。例如,回调“ * SecureEngineInitialize * ”(注意通配符)意味着您可以定义(要导出的)任何函数,该函数将在函数名称中包含“ SecureEngineInitialize”字符串。例如,函数名称MyPlugin_SecureEngineInitialize将匹配“ * SecureEngineInitialize * ”回调。

选项

执行进程挂钩:此选项将完全模拟您的DLL在内存中的加载。仅特定插件需要此选项。没有此选项,大多数插件都可以正常工作。首选是取消选中此选项,因为它不会在当前进程上执行任何挂钩。

测试插件

修改完插件后,最好测试一下插件,以确保已按预期定义了调用约定(stdcall)和参数。要测试您的插件,您可以右键单击它,然后选择“ Test Plugin ”。您定义的回调将使用默认/虚拟参数进行调用以测试您的回调。如果回调失败(产生异常等),它将在用户界面上报告。

支持的编译器

对于用于创建插件的编译器没有任何限制。唯一的要求是,该插件不能是.NET(或混合托管)DLL。仅支持本机DLL。

如果您使用Visual Studio创建插件,则应避免与Microsoft运行时库(例如MSVCR100等)的显式链接。您应该使用/ MT编译器开关来编译DLL。

插件回调

该插件系统将在将来的版本中通过新的回调进行扩展。当前定义的回调(名称模式)为:

  • SecureEngineInitialize:保护启动时,在将应用程序处理(解密,解压缩等)以在内存中执行之前,将调用此函数。如果要添加自己的保护检查等,这可能是个好地方。
  • SecureEngineFinalize:当执行保护引导加载程序时,您的应用程序已准备好控制CPU,就会调用此函数。
  • SecureEngineShowCustomMessage:当保护将要显示“自定义对话框”时,将调用此函数。该函数接收保护将以ANSI格式(SecureEngineShowMessageA)或UNICODE格式(SecureEngineShowMessageW)显示的消息。
    3
  • SecureEngineGetEncryptionKey:此功能允许您指定加密密钥以对应用程序中的特定区域进行加密/解密。目前,仅支持PE文件中不同部分的加密/解密(参数“ ZoneId = 0”)
    2