V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
wtfhaier
V2EX  ›  macOS

为了保护公司的 App 安全,我用遍了市面上的加固产品

  •  
  •   wtfhaier · 2018-09-12 20:23:34 +08:00 · 5633 次点击
    这是一个创建于 2271 天前的主题,其中的信息可能已经有所发展或是发生改变。
    加固是保护 App 安全的重要手段之一,不仅能够保障 App 代码安全,防止被破解入侵篡改,更是等保、测试等合规性要求。
    最近,公司开发了一款运动 App,主要面向苹果用户。我试遍了市场主流的 iOS 加固产品。虽然国内外的都有,但是差距很大。当然,能够拿出来单独说的不超过 6 款。以下是 iOS App 加固产品选型时的一点心得,主要有 Obfuscator-LLVM、网易 iOS 加固、360iOS 加固、顶象 iOS 加固和数字遁甲 iOS 加固。
    Obfuscator-LLVM
    Obfuscator-LLVM 是瑞士西北应用科技大学安全实验室于 2010 年 6 月份发起的一个项目,该项目旨在提供一套开源的针对 LLVM 的代码混淆工具,以增加对逆向工程的难度。后期转向商业项目 strong.protect。目前,OLLVM 已经支持 LLVM-4.0 版本。
    作为代码混淆的优秀开源项目,Obfuscator-LLVM 提供控制流扁平化、指令替换、虚假控制流等功能,不支持 swift 和 Bitcode,加固强度比较低。

    Obfuscator-LLVM 使用时必须集成到 xcode 上,也就是插件形式进行加固,开发调试很简单。
    Obfuscator-LLVM 的混淆样式如下:

    网易 iOS 加固
    iOS 加固( dun.163.com/product/ios
    是网易易盾下面的一个移动安全产品。主要提供字符串加密、代码逻辑混淆、字符串混淆和反调试等功能,也不支持 swift 和 Bitcode,加固强度中等。

    网易 iOS 加固是一套独立工具,开发调试程度一般。
    它提供了 15 天的企业免费试用。需要提供 bundleID 和邮箱。
    使用过程如下:

    360iOS 加固
    360iOS 加固( jiagu.360.cn/#/global/in
    是 360 加固保旗下的产品。主要提供源代码进行常量加密、逻辑混淆、结构替换、多路径执行等保护,同样也不支持 swift 和 Bitcode,加固强度中等。

    360iOS 加固是在线加固的形式。在官网注册账号,上传文件即可使用。
    开发调试程度比较麻烦。

    数字遁甲 iOS 加固
    数字遁甲是新崛起的一个加固厂商。其 iOS 加固产品主要提供二进制加固、字符串混淆和高级反调试等功能,不支持 swift 和 Bitcode,加固强度较低。

    数字遁甲也是在线加固的形式,使用比较简单。直接上传 ipa 文件,然后获取提取码,再用提取码下载加固后的 ipa 文件。但是在开发调试方面同样不方便。

    以下是一个加固后的结果。

    顶象 iOS 加固
    顶象 iOS 加固( www.dingxiang-inc.com/business/io
    是顶象技术端安全旗下产品,主要提供代码虚拟化、字符串加密、代码混淆等功能。支持 swift 和 Bitcode 两种(这也是目前唯一支持该两类语言加固的工具),加固强度较高。
    多说一句,该产品团队人员主要来自阿里巴巴移动安全产品团队。

    顶象 iOS 加固比较有意思,提供两种在线和插件两种形式。
    在线添加参加,然后直接上传文件即可使用。

    为了文件上传方便,顶象还做了一个辅助工具,用来提取加固需要的文件和合并文件。

    第二种方式是插件,与 Obfuscator-LLVM 类似,也是到 xcode 上。
    使用流程如下:

    加固效果如下(一个简单的计算器 demo )。

    五款 iOS 加固工具比较


    写在最后的总结
    1、功能。这几款工具都具备了市面上目前常见的字符串加密、代码和符号混淆、代码混乱等基础功能。其中,网易 iOS 加固和数字遁甲 iOS 加固还提供了防调试功能,开启后自动注入防调试代码,省去了手写;而顶象 iOS 加固集成了代码虚拟化功能,开启后会使函数体消失,进入虚机运行,整体加固效果较佳。
    2、操作。Obfuscator-LLVM 集成到新版 xcode(9.4.1)上,操作比较麻烦。网易 iOS 加固单独工具操作比较简单,但是不能集成到 xcode 使用; 360 加固和数字遁甲 iOS 加固是在线服务,也比较简单;顶象 iOS 加固既可以在线使用,也可以集成到 xcode 上,可谓两不误。
    3、语言支持。swift 是苹果 2014 年发布一个新编程语言,bitcode 是编译的中间语言,都是比较常用的。但是除了顶象 iOS 加固外,其他均不支持。
    4、配置方式。Obfuscator-LLVM、网易 iOS 加固、顶象 iOS 加固的配置方式类似。
    5、版本更新。Obfuscator-LLVM 是全部免费的,但是已经停止了更新。其他产品都有更新。
    6、加固文件。顶象 iOS 加固在线使用时,不需要上传源码,这与其他几个在线加固的产品不同。
    8 条回复    2018-09-13 08:43:26 +08:00
    wtfhaier
        1
    wtfhaier  
    OP
       2018-09-12 20:25:11 +08:00
    无法加图片...
    des
        2
    des  
       2018-09-12 21:02:23 +08:00 via Android
    有专门的推广节点,请发到这里 https://www.v2ex.com/go/promotions
    @Livid
    ponder
        3
    ponder  
       2018-09-12 21:09:15 +08:00
    明显软文
    mrchi
        4
    mrchi  
       2018-09-12 21:15:41 +08:00
    推广自己家产品,就不能站在自己产品的角度,好好讲讲自己家的优势吗?非要装成用户,跟地方电视台卖药的广告有什么区别,真当产品受众都是傻子,看不出这是软文。
    beastk
        5
    beastk  
       2018-09-12 22:24:26 +08:00 via iPhone
    你是卖茶叶的妹子吗?推广就写推广,搞这些花样干啥?
    AEANWspPmj3FUhDc
        6
    AEANWspPmj3FUhDc  
       2018-09-12 22:37:48 +08:00   ❤️ 1
    不明白为什么要伪装成用户,认真看到后面,居然是推广,block 了。
    Alexander321
        7
    Alexander321  
       2018-09-13 08:25:21 +08:00 via iPhone
    标题太简书了,建议去简书
    liuyinltemp
        8
    liuyinltemp  
       2018-09-13 08:43:26 +08:00
    太假了,按理说第一是爱加密
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   2723 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 24ms · UTC 12:36 · PVG 20:36 · LAX 04:36 · JFK 07:36
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.