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

现在 Target 高版本 Android 的应用, 还能否 远程下载二进制代码 并动态加载运行?

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

    (前文故事中, 有人提到了 Target SDK)

    然后我在官方 Android 文档的API 29 的变更中看到这么一句话:

    移除了应用主目录的执行权限

    从可写应用的主目录执行文件的行为违反了 W^X 安全机制。

    应用应仅加载在应用的 APK 文件中嵌入的二进制代码。

    我不懂 Android 开发, 上述文档能否理解为:

    Target SDK 29 之后的应用, 其所有可会涉及到的二进制代码, 必须全打包进 APK 文件, 不允许从远程服务器下载二进制代码 (包括 Java 的 dex, jar 文件, C/C++ 的 so 文件) 然后动态加载并运行?

    不知道这个理解是否正确.

    像之前拼多多那种, 或其它国产流氓应用, 他们会使用一种病毒木马才会用的黑科技, 就是将部分的流氓的代码, 并未打包进 APK, 而是等待程序运行后, 从服务器远程下载二进制代码并运行. 按上述 Android 文档的描述, 这种黑科技在高版本 Android 下被废掉了吗?

    就是说如果我需要从第三方网站下载没在 Play 商店上架的应用, 只要专门寻找 Target SDK 29 版本后的 (Target 版本越高越好), 就相对更安全一些呢?

    8 条回复    2024-07-28 04:14:51 +08:00
    mars2023
        1
    mars2023  
       42 天前
    动态加载还是可以的;
    拼多多之前的行为主要是提权。
    codehz
        2
    codehz  
       42 天前   ❤️ 1
    dex 不需要 x 权限(
    starsight
        3
    starsight  
       42 天前
    热更新?这种不管吧
    yanqiyu
        4
    yanqiyu  
       42 天前 via Android
    > 应用应仅加载在应用的 APK 文件中嵌入的二进制代码。
    只是没了+x ,受影响的也就 termux 这种加载 ELF 格式可执行的程序会受到影响
    不过我猜动态可执行还是能从 linker 执行,除非 Android 的 linker 改变了行为
    yankebupt
        5
    yankebupt  
       42 天前
    没办法,国外一般更新审核审一天就过了,国内一审审一礼拜……
    结果全搞热更新去了
    sir283
        6
    sir283  
       42 天前
    这个只是由 data 的 app home 路径,改为 app 的 library 路径了,内嵌一个 libso 文件即可执行 elf 二进制文件。国内的酷安社区有很多现成的成品,比如 adb tool 、Android IDE 、sence 等。
    lisongeee
        7
    lisongeee  
       42 天前
    我在你上一个帖子 /t/1060321 里回复 《 xiaomi Android 14 没复现,能说一下具体的复现步骤吗?》

    但是你没有回复,能在此具体回复一下吗?或者看到这条评论的老哥也能回复教教我怎么复现吗?
    kile
        8
    kile  
       42 天前
    target 越高权限收的越紧,有些不给调,有些调了直接蹦

    还有 Android 版本越高,你能装的 target 版本的 app 也会越高

    建议去谷歌市场,新更新的再过几个月 target 版本直接干到 33 去了

    目前 Android14 targetSdkVersion 小于 23 的应用直接是装不了了,除非 ADB 开发者来装
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   2400 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 104ms · UTC 03:48 · PVG 11:48 · LAX 20:48 · JFK 23:48
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.