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

因为反编译工具的存在, 安卓 APP 理论上是不是代码相当于裸奔?

  •  
  •   xiaoyanbot · 2017-04-06 00:09:46 +08:00 · 13255 次点击
    这是一个创建于 1918 天前的主题,其中的信息可能已经有所发展或是发生改变。
    47 条回复    2017-04-10 12:31:33 +08:00
    billlee
        1
    billlee  
       2017-04-06 00:42:03 +08:00
    客户端程序理论上都是裸奔
    seeker
        2
    seeker  
       2017-04-06 00:51:17 +08:00
    还有反汇编呢
    XiaoFaye
        3
    XiaoFaye  
       2017-04-06 05:50:41 +08:00
    大局域网内谁不是裸奔?
    kokutou
        4
    kokutou  
       2017-04-06 07:19:24 +08:00 via Android
    混淆。。。

    我在哪看到过说 bat 3 家的 app 混淆很恶心之类的。
    yidinghe
        5
    yidinghe  
       2017-04-06 08:32:54 +08:00 via Android
    混淆
    GoldenLee
        6
    GoldenLee  
       2017-04-06 08:42:50 +08:00 via Android
    混淆,加壳,修改 zip ,加 kotlin 反编译异常代码等等。

    这些只是增加了被反编译的成本,预防住了一大部分。
    相当于穿了防护衣,别人在不了解的情况下要扒光你是需要很大成本的。
    KNOX
        7
    KNOX  
       2017-04-06 08:44:35 +08:00 via Android
    加固过的 app 怎么反编译都是徒劳
    LeeSeoung
        8
    LeeSeoung  
       2017-04-06 09:02:18 +08:00
    @KNOX 加固过的 app 只是增加了反编译难度 并非徒劳
    KNOX
        9
    KNOX  
       2017-04-06 09:16:32 +08:00
    @LeeSeoung 加固了还能找到 dex ?我用的 360 加固不能,只剩下 360 的 smali 代码。
    hahiru
        10
    hahiru  
       2017-04-06 09:19:52 +08:00
    @KNOX 一般来讲不要把话说的太死比较妥当。
    KNOX
        11
    KNOX  
       2017-04-06 09:23:56 +08:00
    @hahiru 我是针对楼主的问题来说的,当然以后有更牛逼的砸壳方法那就另说了。
    LeeSeoung
        12
    LeeSeoung  
       2017-04-06 09:27:14 +08:00
    @KNOX 360 的加固原 apk 里的 classes.dex 只是壳的加载入口,真正的 dex 被加密压缩放到其他地方了,可以动态调试脱壳(较为方便)或者写静态脱壳机(老 360 版本的加固 rc4 加密+lzma 压缩,现在静态已经不好搞了)
    choury
        13
    choury  
       2017-04-06 09:33:39 +08:00 via Android
    @KNOX 你再加固也得在机器上能运行吧,我直接看汇编代码你怎么防
    KNOX
        14
    KNOX  
       2017-04-06 09:53:20 +08:00
    @LeeSeoung soga ,我还是 too young 了,多谢回复。
    ijiami
        15
    ijiami  
       2017-04-06 09:54:14 +08:00
    @GoldenLee 爱加密就是干这个的,赫赫
    KNOX
        16
    KNOX  
       2017-04-06 09:54:21 +08:00
    @choury 哦?那你很棒棒哟
    ydxred
        17
    ydxred  
       2017-04-06 09:58:16 +08:00
    @ijiami 就猜到你会来这儿!待会儿梆梆啊比戈啊这些我猜也会来的 哈哈
    ijiami
        18
    ijiami  
       2017-04-06 10:09:41 +08:00
    @ydxred 我感觉他们不会来。。
    ovear
        19
    ovear  
       2017-04-06 10:30:51 +08:00
    http://ovear.info/post/154

    很久之前坑掉的一篇文章

    带虚拟机的语言都不是事,直接做 memory dump ,拿出来就行。
    ovear
        20
    ovear  
       2017-04-06 10:34:01 +08:00
    @ovear 至于说加密原程序的,那类壳 C#上一大堆。。还不是一键脱,看懂 360 那段代码在做什么就好,当一次人肉 CPU 。
    偷懒的就直接上 memory dump
    yankebupt
        21
    yankebupt  
       2017-04-06 10:38:06 +08:00
    楼主估计想说,只有在线热补丁 hotfix 的代码比较安全......没运行过的都不下载,还能怎么安全
    不过 hotfix 差点被各家(目前好像只有苹果)市场禁掉,因为反过来对用户不够安全......
    Pastsong
        22
    Pastsong  
       2017-04-06 10:39:05 +08:00
    写前端从来都是裸奔...
    fuxkcsdn
        23
    fuxkcsdn  
       2017-04-06 10:50:56 +08:00 via iPhone
    @ovear 所以 3 年过去了,还不打算填坑吗
    est
        24
    est  
       2017-04-06 10:53:14 +08:00
    webpack 出来一个 10M 的 .min.js 去分析吧。
    yushiro
        25
    yushiro  
       2017-04-06 11:14:04 +08:00 via iPhone
    @est 先找一个实际生产环境中,有 10M 大小的单个 js 文件的网站来。这种大小的 js 部署上线不会被领导骂?
    maomaomao001
        26
    maomaomao001  
       2017-04-06 11:20:23 +08:00 via Android
    混淆过的 js 代码扔给你你也不想看了~~~(虽然它也是源代码,但是, 1 不能二次开发, 2 不能学习(除非是算法类),不然没多少意义)
    UnixCRoot
        27
    UnixCRoot  
       2017-04-06 11:25:32 +08:00
    你得看他会不会用……
    humgy
        28
    humgy  
       2017-04-06 11:53:37 +08:00
    成本,一切都是成本问题
    humgy
        29
    humgy  
       2017-04-06 11:54:00 +08:00
    就像黑客一样
    Chrisplus
        30
    Chrisplus  
       2017-04-06 12:18:12 +08:00
    理论上来说是裸的……
    混淆加固加壳各类工具本质上只是增加了反向的成本

    但是裸奔也不一定意味着非安全,比如核心秘密关键操作依赖于网络可信第三方或者本机专用安全硬件等……
    phithon
        31
    phithon  
       2017-04-06 12:50:56 +08:00
    网上那些使用开源程序的网站和服务,不能算裸奔吧,关键还是代码质量和通信过程的安全。
    hhh
        32
    hhh  
       2017-04-06 13:02:12 +08:00
    360 加固好像会夹带私货?
    debye
        33
    debye  
       2017-04-06 13:07:59 +08:00
    裸奔就裸奔也无所谓啊
    大部分业务逻辑基本都在 server 端,客户端只是少量的体验性功能,有的 app 甚至是空壳
    cwek
        34
    cwek  
       2017-04-06 16:35:04 +08:00
    简单可以用混淆和加壳。
    复杂就是将业务代码全部放在服务端处理,客户端就是收发界面。
    jccg90
        35
    jccg90  
       2017-04-06 17:05:21 +08:00
    是的。。。只要有足够的利益,客户端都是可以破的,参考腾讯的微信,安全算是顶级的了,也照样搞出各种插件和修改版来。。。
    changwei
        36
    changwei  
       2017-04-06 17:07:16 +08:00 via Android
    @yushiro 大项目多页面路由的情况下,在没做异步模块,懒加载之前有 10m 一点也不夸张,毕竟图片, css 都打包进了 js 里面呢。
    Lostars
        38
    Lostars  
       2017-04-06 18:33:12 +08:00
    http://www.mottoin.com/89035.html
    再怎么加固, dex 还是要加载到内存中运行的,可以通过各种手段 dump 出内存中的 dex 。
    其实苹果的 app 才是裸奔的,它只有 appStore 一层弱弱的保护。
    zongren
        39
    zongren  
       2017-04-06 18:47:01 +08:00
    混淆就可以了,还想咋的
    zhihaofans
        40
    zhihaofans  
       2017-04-06 18:50:52 +08:00 via iPhone
    @yankebupt 谷歌好像也是
    102errors
        41
    102errors  
       2017-04-06 22:40:56 +08:00
    @kenX 搞事情了😂
    introom
        42
    introom  
       2017-04-07 00:33:15 +08:00 via Android
    有些人眼里它是穿底裤的,有些人眼里它什么都没穿。还有些人压根就没看到它。
    纯粹看你是谁。
    pwcong
        43
    pwcong  
       2017-04-07 12:34:30 +08:00
    @ovear 我记得我前年看过这篇文章 (微笑)



    所以你不打算填坑了是吗 (╯▔皿▔)╯
    diefishfish
        44
    diefishfish  
       2017-04-07 21:39:41 +08:00
    所以才有服务端存在呀
    boolean93
        45
    boolean93  
       2017-04-08 00:58:38 +08:00
    @yankebupt 我记得 Google Play 也是不允许 hotfix 的
    boolean93
        46
    boolean93  
       2017-04-08 01:00:37 +08:00
    其实都是裸奔,读懂只是成本的问题。
    只能说,我们需要尽量地提高反编译成本,让做这件事变得不值得即可。
    FrankHB
        47
    FrankHB  
       2017-04-10 12:31:33 +08:00
    看你定义什么叫裸,或者说想裸到什么程度。
    比如我还没有见到会(无聊到)能逆向出源码中的 ASCII art 的反编译工具。
    关于   ·   帮助文档   ·   API   ·   FAQ   ·   我们的愿景   ·   广告投放   ·   感谢   ·   实用小工具   ·   1886 人在线   最高记录 5497   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 36ms · UTC 16:44 · PVG 00:44 · LAX 09:44 · JFK 12:44
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.