zoukankan      html  css  js  c++  java
  • 如何选择加壳工具?

    加壳工具是指注入一段功能代码到 APP 中,并可以将原始的二进制指令经过混淆、虚拟化等手段进行等价变换,实现满足 APP 多种安全需求。根据功能的不同可以分为:压缩壳、加密壳、虚拟机壳

    压缩壳

    以隐藏程序代码和数据为目的,并将隐藏后的代码和数据进行压缩。但是,压缩壳由于在运行时会将代码段和数据段还原,所以安全性较低。

    加密壳

    功能与压缩壳类似,可以将代码和数据进行加密,也可以对单个函数加密,只有函数被执行时才进行解密。同样,由于在运行时仍需要解密代码和数据,所以只能起到辅助的效果。

    虚拟机壳

    将原始的指令经过虚拟化,翻译成自定义的虚拟机指令。由于虚拟机指令不对外公开,每次加壳都能产生随机化的虚拟机操作码,如果要逆向虚拟化的指令,需要先分析自定义虚拟机,分析难度极高。

    加壳工具六大特性

    01 安全性

    虚拟机外壳同时具备基础保护和高级保护功能,是公认的强度最高的保护方式。

    加密外壳的主要作用是保护核心代码逻辑和增加软件逆向难度。高安全性是选择一款加壳工具的金标准。安全性可以从两个方面进行分析:

    基础保护功能

    基础保护功能是指对程序的整体保护。基础保护可以大辐度提高程序破解的门槛,延长破解时间。

    • 对于本地可执行程序而言主要包括:代码段加密/压缩、导入表保护、字符串加密、资源加密、反调试、内存完整性检查等。
    • 对于.NET 程序而言主要包括:压缩/元数据隐藏、名称混淆、反调试等。

    高级保护功能

    高级保护是指函数级保护,对指定的函数进行混淆、虚拟化等保护。具有高安全性,破解难度极高。

    02 加壳后程序的稳定性

    一定要选择市场上比较成熟的加壳产品。

    对程序进行加壳,会增加软件的复杂程度。加壳程序的某些特殊处理,很容易造成保护后程序的不稳定性。甚至会出现某些加壳后的程序被杀毒软件拦截查杀的现象。加壳后的程序如果不稳定,会给使用者带来极大的不便,影响工作效率。

    03 加壳后是否影响性能

    选择支持性能调节的加壳工具。

    外壳对程序的性能影响体现在两方面,一是单个保护方式对程序性能影响大小,二是在追求高安全性的同时,性能是否可以调节。性能调节是指加壳工具对所保护程序进行性能分析、准确判断性能瓶颈。对保护后的程序进行性能诊断会占用开发人员大量时间,如果在保护过程中就能够轻松诊断出性能瓶颈,可以明显提升开发效率。

    04 支持范围

    选择支持范围广泛的加壳工具。

    目前,应用程序正在向多平台化发展,外壳工具的支持范围可以从以下三个维度来权衡:

    • CPU 架构:是否支持 x86、x64 以及 ARM 32、ARM 64 指令集。
    • 操作系统:是否支持 Windows、Linux、macOS、Android、ARM Linux 等。
    • 程序类型:C/C++、Delphi、Go 等静态语言编译生成的本地可执行程序。C#、VB 编译生成的 .NET 程序。游戏编程流行的 Unity3D 程序。Python、PHP 等脚本语言程序。

    05 数据保护

    选择有数据保护功能的加壳工具。

    软件在运行过程需要加载一些重要数据来完成某项功能,数据文件的安全也应该被重视。防止数据文件的泄露和破坏才能更好的实现软件安全。选择加壳工具时要关注一下是否支持数据文件保护。

    06 用户体验

    选择操作简单的产品。

    界面工具:优先考虑界面直观、操作简单的产品,这样能够事半功倍,提升加密效率。

    命令行:团队开发流程往往会使用 CI 系统自动编译,甚至有专门的构建团队,所以命令行加壳是必不可少的。

    不再让加密困扰软件开发者:https://www.cnblogs.com/ssprotect/p/12605436.html

  • 相关阅读:
    【经典数据结构】B树与B+树
    【经典算法】线性时间排序
    【经典算法】归并排序
    【经典算法】快速排序
    python模块之shelve
    python模块之pickle
    python模块之json
    python之序列化
    python模块之shutil和zipfile
    python模块之sys
  • 原文地址:https://www.cnblogs.com/ssprotect/p/12605436.html
Copyright © 2011-2022 走看看