• Themida是先进的Windows软件保护系统


    了解风险
    在创建应用程序时,编译器会将应用程序源代码编译成多个由机器语言代码组成的目标文件。然后将目标文件链接在一起以创建最终的可执行文件。


    图 1:源代码的编译
    与在编译时将应用程序的源代码转换为机器代码的方式相同,有一些工具可以将已编译的应用程序转换为汇编语言或高级编程语言。这些工具被称为反编译器和反编译器。


    图 2:应用程序的反编译
    攻击者可以使用反编译器或反编译器来研究特定应用程序的工作原理以及特定例程的作用。当攻击者对目标应用程序有很好的了解时,他可以修改编译后的应用程序来改变他的行为。例如,攻击者可以绕过检查应用程序试用期的例程,使其永久运行,甚至更糟,使应用程序表现得好像它已注册一样。
    软件保护器
    创建软件保护程序是为了防止攻击者直接检查或修改已编译的应用程序。软件保护器就像一个保护应用程序加密并防止可能的攻击的盾牌。当操作系统要运行受保护的应用程序时,软件保护程序将首先控制 CPU 并检查可能在系统上运行的破解工具(反编译器或反编译器)。如果一切安全,软件保护程序将继续解密受保护的应用程序,并让其控制 CPU 正常执行。
    使用软件保护器的优点是:

    • 保护应用程序免受盗版。
    • 防止攻击者研究应用程序是如何实现的。
    • 不允许攻击者修改应用程序以改变其行为

    弱点
    自从软件保护器诞生以来,许多攻击者将大部分精力集中在攻击软件保护器本身而不是应用程序上。已经开发了许多有助于攻击软件保护程序的工具。这些攻击通常会导致攻击者获得已解密并删除保护包装的原始应用程序。


    图 3:常见的软件保护理念
    软件保护器的主要问题是它们使用了破解者非常熟悉的保护技术,因此可以很容易地用传统的破解工具绕过它们。软件保护器的另一个重要问题是它们受操作系统限制执行,即它们以正常的应用程序权限运行。因此,攻击者可以使用与操作系统具有相同优先级的破解工具,从而使他们能够完全监督软件保护者在特定时间所做的事情并在特定位置对其进行攻击。
    革命性的解决方案
    借助 Themida®,我们将重点放在软件保护程序的主要弱点上,从而提供了一个完整的解决方案来克服这些问题。Themida® 使用 SecureEngine® 保护技术,当以最高优先级运行时,实施前所未有的保护技术来保护应用程序免受高级软件破解。


    图 4:Themida® 保护程序
    SecureEngine® 击败了所有当前可用于攻击受保护应用程序的破解工具,它将确保您的受保护应用程序仅在安全环境中运行。 


    图 5:SecureEngine® 技术为现有保护增加了更多强度
    当前的保护者声称是最好的!
    对于大多数程序员来说,软件保护编程并不是一个众所周知的领域。软件保护技术不像可以看到和比较的“可见”功能。正因为如此,大多数软件保护作者可以谈论包含在保护方案深处的令人印象深刻的技术,而很多时候这些技术中的大多数几乎不存在,或者它们比看起来要简单得多。大多数软件保护者反复强调使用非常强大的加密算法,如 RSA、椭圆曲线和 AES,希望最终用户会相信这些保护器和加密算法是牢不可破的。这与事实相去甚远,因为软件保护与数据保护有很大不同。即使软件保护程序使用最强大的加密算法对受保护的应用程序进行加密,受保护的应用程序也迟早需要解密才能由 CPU 运行。在这个阶段,大多数攻击者将通过将解密的应用程序从内存转储到磁盘来开始他们的工作,因此不必处理加密算法和重建原始应用程序。
    使命
    Themida®​​​​​​​ 中,我们希望了解攻击者可以利用哪些弱点,以及我们真正需要注意什么,以保护具有最高安全性的应用程序免受软件破解。
    特征
    这些是 Themida® 的主要特点:

    • 检测/欺骗任何类型的调试器的反调试器技术
    • 任何 Ring3 和 Ring0 转储器的反内存转储器技术
    • 每个受保护应用程序中的不同加密算法和密钥
    • 避免重建原始导入表的反 API 扫描器技术
    • 目标应用程序中的自动反编译和加扰技术
    • 特定代码块中的虚拟机仿真
    • 先进的 Mutator 引擎
    • SDK与保护层通信
    • 任何静态和交互式反汇编程序的反反汇编技术
    • 具有超过 50.000 个排列的多个多态层
    • 高级 API 包装技术
    • 针对文件和注册表监视器的反监视器技术
    • 真实指令之间的随机垃圾代码插入
    • 专用保护线
    • 高级线程网络通信
    • 目标应用程序中的反内存修补和 CRC 技术
    • 变形引擎打乱原始指令
    • 高级入口点保护
    • 目标应用程序中的动态加密
    • 真实指令之间的反跟踪代码插入
    • 高级反断点管理器
    • 目标应用程序中的实时保护
    • 压缩目标应用程序、资源和保护代码
    • 反“调试器隐藏”技术
    • 保护代码中的完全突变以避免模式识别
    • 目标应用程序中的实时仿真
    • 在目标应用程序内插入智能保护代码
    • 随机内部数据重定位
    • 可以在受保护的应用程序中自定义对话框
    • 命令行支持

  • 相关阅读:
    高性能数据访问中间件 OBProxy(三):问题排查和服务运维
    阿袍的思考
    RPA流程调试:准确定位错误原因及位置
    【Python语言速回顾】——异常&文件操作
    Linux | 磁盘结构 | 文件系统认识 | inode | 软硬链接
    SUSE linux的快照和恢复
    Springboot餐饮点餐系统毕业设计源码301749
    Linux——进程概念
    5个网络问题,了解网络协议栈的哪些不为人知的八股文(来波千人福利)
    SQL分页查询,SQL的LIMIT语句用法,SQL如何实现分页查询,SpringBoot实现分页查询。
  • 原文地址:https://blog.csdn.net/goldksoft/article/details/127652013