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

请教大神, APK 如何实现 dex 不落地加载?

  •  
  •   ice000 · 142 天前 via Android · 2694 次点击
    这是一个创建于 142 天前的主题,其中的信息可能已经有所发展或是发生改变。

    领导布置了一个关于 APK 加固的任务,我目前的思路是将一部分代码抽成 dex 文件加密,使用时解密完通过字节流加载 dex。卡在 dex 不落地加载上了,求大神提供下思路或者有更好的加固方案也可以提出来

    22 回复  |  直到 2019-09-05 12:19:55 +08:00
    hkitdog
        1
    hkitdog   142 天前 via iPhone
    类抽取加固?,但在 apk 运行时 dump 出 inscode 然后 patch 到 dump 出的 dex 文件里面,,还是可以脱...
    ice000
        2
    ice000   142 天前 via Android   ♥ 1
    @hkitdog 能挡住 80%的人就不错啦,防是防不住的
    LeeSeoung
        4
    LeeSeoung   142 天前
    直接买现成方案加固吧。。你能想到的大厂商都帮你想好了。。N 年前的大厂商做过把核心代码放进 so,运行时动态解密加载。。
    LeeSeoung
        5
    LeeSeoung   142 天前
    看完楼上那篇了。。讲的很详细,楼主可以参考下。。
    forrestvxu
        7
    forrestvxu   142 天前
    360 的加固保有免费的可以用哇
    ice000
        8
    ice000   142 天前
    @linhua 多谢
    ice000
        9
    ice000   142 天前
    @LeeSeoung 想找个带源码的方案,查问题也方便一些。由于 APK 写的比较杂,用腾讯的乐固加固后加载不出某些插件
    ice000
        10
    ice000   142 天前
    @forrestvxu 360 的加固产品有黑历史,不敢用
    ice000
        11
    ice000   142 天前
    @xingda920813 API 有限制
    xingda920813
        12
    xingda920813   142 天前
    @ice000 InMemoryDexClassLoader API 有什么限制?
    ice000
        13
    ice000   142 天前
    @xingda920813 Added in API level 26
    HangoX
        14
    HangoX   142 天前
    放弃吧,加固这个东西太影响运行效率了。你在内存中我直接 dump 就好了,还不如直接用 c 写,然后混淆
    no1xsyzy
        15
    no1xsyzy   142 天前
    设计个词法反人眼、语法反直觉、但语义就是 Java 的语言
    写个 JVM 下的该垃圾语言解释器
    写个 Java 编译到这个该垃圾语言的编译器
    能挡住 99% 的人
    同理可扩展到其他任何语言
    就好像机器语言和 C 语言的关系(
    walkfish
        16
    walkfish   142 天前
    用方舟编译器啊,直接二进制文件
    ice000
        17
    ice000   141 天前 via Android
    @HangoX 一般项目混淆就足够了,手头这个项目几乎能预料到他们拿来 APK 第一件事就是研究怎么破解~~用 c 写也是一个办法
    ice000
        18
    ice000   141 天前 via Android
    @no1xsyzy 大佬大佬
    ice000
        19
    ice000   141 天前 via Android
    @walkfish 螃蟹留给别人先吃吧
    wjh3936
        20
    wjh3936   141 天前
    360 有啥黑历史嘛……好奇
    forrestvxu
        21
    forrestvxu   141 天前
    @HangoX 这位同学说得对~单纯的内存加载已经过时了,现在脱壳工具一大堆。如果你完整的加载到内存,dump 出来就行了,哪怕不完整加载,也有修复手段~
    ice000
        22
    ice000   141 天前 via Android
    关于   ·   FAQ   ·   API   ·   我们的愿景   ·   广告投放   ·   感谢   ·   实用小工具   ·   1719 人在线   最高记录 5168   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.3 · 20ms · UTC 10:54 · PVG 18:54 · LAX 02:54 · JFK 05:54
    ♥ Do have faith in what you're doing.