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

请教大家有没有 app 反破解的思路

  •  
  •   wangyuhang · 2020-05-20 09:49:41 +08:00 via Android · 13571 次点击
    这是一个创建于 1653 天前的主题,其中的信息可能已经有所发展或是发生改变。

    代码或者思路,密钥层面的,不用 c 的代码

    33 条回复    2020-08-08 05:57:52 +08:00
    InkStone
        1
    InkStone  
       2020-05-20 09:53:26 +08:00   ❤️ 1
    你这个“密钥层面”指的是什么?要隐藏你 APP 中的密钥么。用白盒加密就好了。

    最简单的方法当然是直接买加壳服务,不过免费的那种基本没有,得指令抽取级别的壳才有点防护能力。

    不想花钱,自己弄的话,就是字符串混淆+控制流混淆+动态代码加载。不过用处也不大,Java 层做不到什么很强有力的防护。
    ai277014717
        2
    ai277014717  
       2020-05-20 09:53:54 +08:00
    功能全都做到服务端上。
    atfeel
        3
    atfeel  
       2020-05-20 09:59:34 +08:00
    一样被这个问题困扰,加壳服务有哪个能推荐下的,个人 APP,不是公司。价格太高用不起
    ColoThor
        4
    ColoThor  
       2020-05-20 10:23:48 +08:00
    全部东西都从服务器端取,权限也是服务端判断。另外混淆是最基本的,自己不写 c 代码,只能用第三方服务,java 转 c 的最好,不过价格高,性能也会降低
    zoharSoul
        5
    zoharSoul  
       2020-05-20 10:24:01 +08:00
    关键功能依赖服务端.
    blackfire
        6
    blackfire  
       2020-05-20 10:33:05 +08:00
    密钥层面?所以是啥?
    Cmdhelp
        7
    Cmdhelp  
       2020-05-20 10:49:29 +08:00
    只能提高破解者的逆向成本,没有绝对的反破解
    jacklin96
        8
    jacklin96  
       2020-05-20 11:21:02 +08:00
    用 flutter 写+自带混淆就完事了 能过滤掉一大批用脚本的
    wujieyuan
        9
    wujieyuan  
       2020-05-20 11:31:43 +08:00
    所有功能和数据都做到服务端, 用 RSA 非对称加密, 这样就无法篡改服务端的数据也就无法破解. 服务端的数据加上时间戳, 防止被缓存.
    如果仅仅靠客户端去做防破解, 可以告诉你, 没有任何可能, 哪怕什么加壳混淆都只是增加破解难度, 只要想破解早晚能破
    ccpp132
        10
    ccpp132  
       2020-05-20 12:24:52 +08:00 via Android   ❤️ 4
    加壳只是坑正版用户,单机应用防不了破解的。让正版用户体验好点吧
    LokiSharp
        11
    LokiSharp  
       2020-05-20 12:28:15 +08:00 via iPhone   ❤️ 1
    把部分逻辑放到赴约,通过验证后下发
    uTOmOuk3L6sb4MSI
        12
    uTOmOuk3L6sb4MSI  
       2020-05-20 12:32:25 +08:00 via iPhone
    https://i.loli.net/2020/05/20/FutIJHpBQc6UTGD.jpg

    一、数据加密
    二、用 SSL Pinning
    三、api 权限服务器校验

    我使用 quanX,发现大多 App 响应体没加密,可以直接修改,达到 vip 身份;而且 vip 功能基本上能正常使用,所以建议以上三点一定要做足够。

    web 要用到的接口用 1 、3,App 应该用 2 就够了,App 方面不了解,我不是 App 开发,以上是个人破解过程发现的现象。
    uTOmOuk3L6sb4MSI
        13
    uTOmOuk3L6sb4MSI  
       2020-05-20 12:39:18 +08:00 via iPhone
    补充,以上只是修改 api 响应体达到破解 vip 功能,并不需要自己去改 App 。
    改 App 那有用正版劫持方便。
    uTOmOuk3L6sb4MSI
        14
    uTOmOuk3L6sb4MSI  
       2020-05-20 12:44:48 +08:00 via iPhone
    SSL Pinning 还能防羊毛党,防自动签到等效果。
    api 用户身份服务器校验,是否能使 App 反破解也没办法正常使用?
    ccloudk
        15
    ccloudk  
       2020-05-20 12:49:31 +08:00 via Android
    老王?
    tetora
        16
    tetora  
       2020-05-20 12:56:26 +08:00   ❤️ 1
    小软件价格定低一点 8 块以下,基本没人去破解了
    HongJay
        17
    HongJay  
       2020-05-20 13:11:06 +08:00   ❤️ 1
    @tetora #16 别人只是顺手破解。就算去掉点广告或者图片也开心
    fyooo
        18
    fyooo  
       2020-05-20 15:14:35 +08:00
    如果是 Android 的话,ProGuard 有什么不足么?
    tankren
        19
    tankren  
       2020-05-20 15:53:59 +08:00
    卖便宜一点
    dullwit
        20
    dullwit  
       2020-05-20 16:45:20 +08:00
    客户端没有绝对的防破解,只是难度高低而已。包括 so 库不混淆,防动态 load 等手段,跟明文没啥区别,所以别单纯以为写 c 就能防止破解了。
    murmur
        21
    murmur  
       2020-05-20 16:53:15 +08:00   ❤️ 1
    后端越重破解越没用,所以避开工具类软件
    tetora
        22
    tetora  
       2020-05-20 16:53:53 +08:00
    @HongJay 应该说是 8 块以下你还会冒风险去用破解版的软件吗?遇上爱好者当然是没法防的
    heart4lor
        23
    heart4lor  
       2020-05-20 18:57:26 +08:00
    ssl pinning 依然是可以被跳过的,hook 掉本地相关验证的逻辑就可以。任何本地做的验证计算都可以被跳过,破解成本问题。想彻底解决只有全部放到服务端运算和验证
    xFrye
        24
    xFrye  
       2020-05-20 19:16:08 +08:00
    你能在网上搜到的方案,基本上都能被逆向,只是门槛差别。真要安全验证只能交给服务端做
    Jirajine
        25
    Jirajine  
       2020-05-20 19:44:09 +08:00 via Android
    核心思路就是堵不如疏,破解只有让本来会买正版的用户不买才会造成损失。基于这个思路:
    防护只做基本的,简单的验证下签名、传输加密,方便的话移到 so 里(如果 app 原本用不到 so 那也没必要做),能挡住脚步小子、不被一键 K 掉就行。影响正常用户的加壳、影响调试的混淆都没必要做。
    对那些破解的,自用的不用管它,没什么影响。发布分享的只管能跑就行,所以留点暗桩,不要直接 crash 他们就不会额外花精力去掉。暗桩弄点小 bug,莫名少点数据让盗版用户不那么舒心,然后随机弹个窗警告用户盗版不安全啊、有 bug 之类的,再给点小优惠引导他们购买。把那些分发盗版的当成推广渠道,他们用习惯了,再加上盗版用着不爽,自然就会乖乖入正。
    s127
        26
    s127  
       2020-05-20 19:53:43 +08:00
    @atfeel 360 加固,好像有免费版
    hyshuang2006
        27
    hyshuang2006  
       2020-05-20 21:57:53 +08:00
    @tetora 别人在网上一搜,绿色版本,免安装,不要钱啊!!!
    mtdhllf
        28
    mtdhllf  
       2020-05-20 23:45:18 +08:00
    360 加固啊,免费的已经够用了~
    keymao
        29
    keymao  
       2020-05-21 09:02:01 +08:00
    1.法律层面
    2.做成服务
    3.花钱购买加固产品
    uestcfei
        30
    uestcfei  
       2020-05-21 09:04:10 +08:00
    免费的加固:腾讯、360 、邦邦加固、爱加密 我觉得都够用了
    dearmymy
        31
    dearmymy  
       2020-05-21 10:12:51 +08:00
    我是搞逆向的。你个人自以为加密再好都没用。安全这块交给专业人。
    用的人不多,那就找些免费的混淆,ollvm 啥的。
    用户量大了,可以去买些专业的。
    vove
        32
    vove  
       2020-06-06 16:57:22 +08:00
    核心代码用 c 写 + 混淆
    MePride
        33
    MePride  
       2020-08-08 05:57:52 +08:00
    @tetora 我的软件定价 5r 买断,被破解了.....有够好笑....
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   1327 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 29ms · UTC 17:47 · PVG 01:47 · LAX 09:47 · JFK 12:47
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.