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

如何防止 apk 被反编译,感觉混淆用处不大,请教下大家有啥好方法吗?

  •  
  •   DrSpencerReid · 2019-06-18 14:45:06 +08:00 · 13548 次点击
    这是一个创建于 2011 天前的主题,其中的信息可能已经有所发展或是发生改变。
    29 条回复    2019-06-21 19:05:17 +08:00
    stephonhu
        1
    stephonhu  
       2019-06-18 14:58:02 +08:00
    加固,聊胜于无
    有钱买企业级的,反正我司也没用过,不知道好不好[手动狗头]
    Shouldong
        2
    Shouldong  
       2019-06-18 15:06:41 +08:00
    一般的混淆用处不大,但是混淆成 '",‘”, 这种真的有点用。。。
    DrSpencerReid
        3
    DrSpencerReid  
    OP
       2019-06-18 15:09:15 +08:00
    @stephonhu 太惨了,买企业级的吧
    DrSpencerReid
        4
    DrSpencerReid  
    OP
       2019-06-18 15:10:37 +08:00
    @Shouldong 可以让反编译的人眼瞎。。
    GTim
        5
    GTim  
       2019-06-18 15:32:20 +08:00
    了胜于无

    加强参数校验

    比如逆天的 拼多多,有一个 anti_content 字段,它的构成,爬虫的劝退着
    lvsemi1
        6
    lvsemi1  
       2019-06-18 15:36:02 +08:00
    真干这行的字节码都看,混淆不混淆也就多点时间成本
    lihongming
        7
    lihongming  
       2019-06-18 15:36:06 +08:00 via iPhone
    用那个把变量名和方法名都混淆成 1li!|组合的混淆器,防不住也烦死他
    nonprocoder
        8
    nonprocoder  
       2019-06-18 15:37:54 +08:00
    先想想真的有必要混淆吗
    Jirajine
        9
    Jirajine  
       2019-06-18 15:43:24 +08:00 via Android
    混淆是比较有用的。除非你的软件是 Adobe 那种涉程度不然没人真的去搞你。一般都是些脚本小子拿工具瞎弄,不好弄谁费那个劲,还如直接买。
    另外不要加固,一来加固除非高价买企业级不然脱个壳相当容易,二来某些无良公司( tx,360 )的加固就是给你的应用挂马,你的应用变流氓并且还要用你的签名为它背书。
    lowett
        10
    lowett  
       2019-06-18 15:44:15 +08:00   ❤️ 1
    只能增加破解的难度,从 app 上是防不住的

    最近在学些这块的东西。
    结论只有一个:只要你的 app 值得破解,任何防破解手段都是无效,时间长短而已。
    DrSpencerReid
        11
    DrSpencerReid  
    OP
       2019-06-18 15:51:17 +08:00
    @Jirajine 本来想直接买企业级加固的,听你一说感觉像是花钱求着别人来搞自己。
    pkookp8
        12
    pkookp8  
       2019-06-18 15:51:52 +08:00 via Android
    从另一个思路考虑,定时向服务器检验数据合法性和 id ?
    hyyou2010
        13
    hyyou2010  
       2019-06-18 15:56:48 +08:00
    很麻烦的,很不推荐。做成 so 可能有点用。

    最佳是把核心的东西放服务器上,客户端就一个操作界面。
    AndroidEngineer
        14
    AndroidEngineer  
       2019-06-18 16:13:12 +08:00
    @hyyou2010 so 库用 ida 一样逆向
    superalsrk
        15
    superalsrk  
       2019-06-18 16:15:42 +08:00
    核心签名核心业务放到 so 里, 可以参考 抖音那种 libcms.so 用 ollvm 混淆一下, 虽然 IDA 也能看, 但是难了数量级, 直接劝退只会用 AK 的水货
    DrSpencerReid
        16
    DrSpencerReid  
    OP
       2019-06-18 16:21:00 +08:00
    @superalsrk 这个是增加难度系数的好方法,我打算试试。谢谢
    0Zed
        17
    0Zed  
       2019-06-18 16:31:03 +08:00
    增强 app 与服务器之间的各种校验 +1
    littiefish
        18
    littiefish  
       2019-06-18 17:37:28 +08:00 via iPhone
    @pkookp8 工具类的我一般禁网,不联网不让用的直接舍弃。貌似还没有哪个 APP 是必须使用的
    WordTian
        19
    WordTian  
       2019-06-18 17:41:19 +08:00 via Android
    @AndroidEngineer 并不,so 可以加壳的
    lollipop43
        20
    lollipop43  
       2019-06-18 18:08:54 +08:00
    If it runs, it can be cracked.
    ——语出我的大学老师
    unclemcz
        21
    unclemcz  
       2019-06-18 18:39:26 +08:00 via Android
    核心算法放 so,数据放云,证书双向验证,然后证书密钥都放 so,可以防 99.9%了应该。
    sampeng
        22
    sampeng  
       2019-06-18 18:46:54 +08:00 via iPhone
    @unclemcz 补充那 0.01 。自己做硬件。
    akira
        23
    akira  
       2019-06-18 18:51:20 +08:00
    混淆 可以挡住 90%以上的人了
    menyakun
        24
    menyakun  
       2019-06-18 19:36:25 +08:00
    用 C++写关键逻辑,xjb 继承,这样逆向汇编就不太好搞了
    u823tg
        25
    u823tg  
       2019-06-18 21:46:13 +08:00
    @WordTian 加壳也能托,说实话都是增加破解难度而已。
    tpkxywxd
        26
    tpkxywxd  
       2019-06-18 22:21:07 +08:00
    @lowett 哈哈,真相了
    qwwuyu
        27
    qwwuyu  
       2019-06-19 18:42:01 +08:00
    如果能做到这个 apk(MT 管理器 未加固)的混淆程度,不知道有几个能看懂的..我是完全看不懂
    DrSpencerReid
        28
    DrSpencerReid  
    OP
       2019-06-21 15:48:04 +08:00
    @akira 有点防君子不防小人的感觉
    akira
        29
    akira  
       2019-06-21 19:05:17 +08:00
    @DrSpencerReid 小人的话 你怎么都防不了的 都是加大成本而已
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   1017 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 22ms · UTC 20:56 · PVG 04:56 · LAX 12:56 · JFK 15:56
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.