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

apk 反编译后能否使用 gradle 重新打包?

  •  
  •   qw30716 · 2019-07-31 12:02:40 +08:00 · 7180 次点击
    这是一个创建于 1702 天前的主题,其中的信息可能已经有所发展或是发生改变。

    目前正在研究脚本打包,但是发现很多打包都是 apktool 反编译,然后将资源合并,处理 jar 文件,再回编译成 apk,但是如果 apk 反编译后,能够使用 gradle 回编译打包,那么对于一些第三方 SDK aar 包,接入就更方便了,不知道可不可行

    29 条回复    2020-03-23 13:35:10 +08:00
    liberize
        1
    liberize  
       2019-07-31 12:05:32 +08:00 via Android
    目前的反编译工具都不完美,大一点的 apk 反编译会有很多错误,不能直接回编译
    qw30716
        2
    qw30716  
    OP
       2019-07-31 12:11:43 +08:00
    @liberize 很多第三方公司打包都是利用 apktool 回编译的
    loginbygoogle
        3
    loginbygoogle  
       2019-07-31 12:16:57 +08:00 via Android
    二次打包仔,真卑微
    qw30716
        4
    qw30716  
    OP
       2019-07-31 12:24:56 +08:00
    @loginbygoogle 看来你是不懂棱镜,quick 这些公司了
    hhh798
        5
    hhh798  
       2019-07-31 12:29:27 +08:00
    为什么要干这种事呢
    twirain
        6
    twirain  
       2019-07-31 12:30:16 +08:00
    之前考虑过这个,应该是可行的,但是成本太大,不如接入时拆解 aar
    liberize
        7
    liberize  
       2019-07-31 12:48:51 +08:00 via Android
    @qw30716 apktool 是编译 smali,不是源代码。楼主说的用 gradle 应该指的源代码回编译。
    murmur
        8
    murmur  
       2019-07-31 12:50:03 +08:00
    黑产就黑产,还出来交流技术?
    qw30716
        9
    qw30716  
    OP
       2019-07-31 13:36:31 +08:00
    @twirain 我也是觉得应该有办法
    qw30716
        10
    qw30716  
    OP
       2019-07-31 13:40:24 +08:00
    @liberize 我的想法是反编译母包,然后把 dex 转成 jar,然后在利用 gradle 打包,就不用考虑 smali 了,不知道是否可行
    qw30716
        11
    qw30716  
    OP
       2019-07-31 13:41:06 +08:00
    @nioncodotcom 游戏公司接入第三方 SDK,自动化打包呗
    qw30716
        12
    qw30716  
    OP
       2019-07-31 13:43:47 +08:00
    @murmur 所以你对世界缺乏认知,游戏公司,安全公司哪个不需要反编译,回编译,人家还以此成立公司,看看棱镜这些
    yukiww233
        13
    yukiww233  
       2019-07-31 15:27:02 +08:00
    是要批量盗版游戏加广告加内购?现在做黑产都那么理直气壮么
    momocraft
        14
    momocraft  
       2019-07-31 15:30:47 +08:00
    在麦当劳叉薯条也是世界五百强 对吧
    qw30716
        15
    qw30716  
    OP
       2019-07-31 15:50:34 +08:00
    这个世界上沉溺于自己的世界键盘侠多的是,总有人以最大的恶意看待一切,你永远叫不醒一个装睡的人
    leopku
        16
    leopku  
       2019-07-31 16:11:21 +08:00
    借楼问下安卓的 proguard 能防 apktool 吗?
    qw30716
        17
    qw30716  
    OP
       2019-07-31 16:14:18 +08:00   ❤️ 1
    @leopku proguard 只是混淆吧,想看你源码还是可以看
    nicevar
        18
    nicevar  
       2019-07-31 16:19:27 +08:00
    又觉得可行,又不愿意仔细研究,跑来问很难到你想要的答案,你至少好好研究一下 gradle,我看 dex 转成 jar 估计你都没怎么仔细看过吧,随便找几个 apk 练习一下也不是什么麻烦事,要是那么容易 dex 就成可编译源码,你都不会在这里提问了
    nicevar
        19
    nicevar  
       2019-07-31 16:20:40 +08:00   ❤️ 1
    @leopku 防不住,progruard 基本上就是个重命名,只是稍微浪费反编译人的时间而已,so 都能被安排的明明白白的,别说混淆了
    zw1one
        20
    zw1one  
       2019-07-31 16:27:00 +08:00
    建议你上 Stack Overflow 问,这里难道不是聊天灌水的地方?(狗头)
    leopku
        21
    leopku  
       2019-07-31 16:35:53 +08:00
    @qw30716 @nicevar 多谢
    maokabc
        22
    maokabc  
       2019-07-31 16:36:49 +08:00 via Android
    这么做本来就有问题,方向反了,真要处理。第三方 sdk 用 dx 这些命令转成 dex,然后用 smali 或者直接用它的 dexlib2 把第三方 dex 合并进去。
    qw30716
        23
    qw30716  
    OP
       2019-07-31 16:41:25 +08:00
    @nicevar 目前一直测试研究中
    qw30716
        24
    qw30716  
    OP
       2019-07-31 16:42:30 +08:00
    @maokabc 现在我这边就是这个方式,所以想研究其他的
    qw30716
        25
    qw30716  
    OP
       2019-07-31 16:49:36 +08:00
    为啥要研究这个,我说明一下,因为我们是游戏公司,需要接国内国外各种渠道 SDK,但是国外 SDK 都是 aar 形式的多,我们的自动化打包工具是反编译,利用 dx 把 jar 转成 dex,最后在回编译成 apk,但是对于国外的 aar,基本只能依靠单独的一个项目打包,因为依赖太多了,所以想研究一下能否使用 gradle 处理 aar,然后利用 apktool 打包
    nicevar
        26
    nicevar  
       2019-07-31 17:56:59 +08:00
    @qw30716 为啥不对 aar 的 sdk 进行单独处理?我不知道你们是集成什么样的 sdk,如果都是同一类型抽象一层出来,比如广告之类的,无论集成多少家,动态配置 gradle 的模块就行了
    qw30716
        27
    qw30716  
    OP
       2019-07-31 18:04:38 +08:00
    @nicevar 有的 aar 有引用别 aar 这点你不好处理 要手动把所有 aar 下载下来 ,有的 aar 里面有七八个 aar 文件,如 Facebook
    nicevar
        28
    nicevar  
       2019-07-31 18:40:40 +08:00
    @qw30716 我怀疑你是不是停留在 eclipse+ant 的年代,现在 gradle 的配置不就是各种依赖,你模块化之后各个模块的依赖各自管理,你要是嫌下载依赖麻烦本地缓存或者公司搭建一个 nexus
    Mcoffee
        29
    Mcoffee  
       2020-03-23 13:35:10 +08:00
    @qw30716 楼主还关注这个吗,我最近也在搞这个,依赖可以建个 module 处理,有的游戏的 aar 资源处理麻烦
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   我们的愿景   ·   实用小工具   ·   942 人在线   最高记录 6543   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 24ms · UTC 20:55 · PVG 04:55 · LAX 13:55 · JFK 16:55
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.