现在 Target 高版本 Android 的应用, 还能否 远程下载二进制代码 并动态加载运行? - V2EX
V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
请不要在回答技术问题时复制粘贴 AI 生成的内容
einsdisp
V2EX    程序员

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

  •  
  •   einsdisp 2024-07-27 15:23:28 +08:00 2651 次点击
    这是一个创建于 443 天前的主题,其中的信息可能已经有所发展或是发生改变。

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

    但是你没有回复,能在此具体回复一下吗?或者看到这条评论的老哥也能回复教教我怎么复现吗?
    kile
        8
    kile  
       2024-07-28 04:14:51 +08:00
    target 越高权限收的越紧,有些不给调,有些调了直接蹦

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

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

    目前 Android14 targetSdkVersion 小于 23 的应用直接是装不了了,除非 ADB 开发者来装
    关于     帮助文档     自助推广系统     博客     API     FAQ     Solana     5560 人在线   最高记录 6679       Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 27ms UTC 08:55 PVG 16:55 LAX 01:55 JFK 04:55
    Do have faith in what you're doing.
    ubao snddm index pchome yahoo rakuten mypaper meadowduck bidyahoo youbao zxmzxm asda bnvcg cvbfg dfscv mmhjk xxddc yybgb zznbn ccubao uaitu acv GXCV ET GDG YH FG BCVB FJFH CBRE CBC GDG ET54 WRWR RWER WREW WRWER RWER SDG EW SF DSFSF fbbs ubao fhd dfg ewr dg df ewwr ewwr et ruyut utut dfg fgd gdfgt etg dfgt dfgd ert4 gd fgg wr 235 wer3 we vsdf sdf gdf ert xcv sdf rwer hfd dfg cvb rwf afb dfh jgh bmn lgh rty gfds cxv xcv xcs vdas fdf fgd cv sdf tert sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf shasha9178 shasha9178 shasha9178 shasha9178 shasha9178 liflif2 liflif2 liflif2 liflif2 liflif2 liblib3 liblib3 liblib3 liblib3 liblib3 zhazha444 zhazha444 zhazha444 zhazha444 zhazha444 dende5 dende denden denden2 denden21 fenfen9 fenf619 fen619 fenfe9 fe619 sdf sdf sdf sdf sdf zhazh90 zhazh0 zhaa50 zha90 zh590 zho zhoz zhozh zhozho zhozho2 lislis lls95 lili95 lils5 liss9 sdf0ty987 sdft876 sdft9876 sdf09876 sd0t9876 sdf0ty98 sdf0976 sdf0ty986 sdf0ty96 sdf0t76 sdf0876 df0ty98 sf0t876 sd0ty76 sdy76 sdf76 sdf0t76 sdf0ty9 sdf0ty98 sdf0ty987 sdf0ty98 sdf6676 sdf876 sd876 sd876 sdf6 sdf6 sdf9876 sdf0t sdf06 sdf0ty9776 sdf0ty9776 sdf0ty76 sdf8876 sdf0t sd6 sdf06 s688876 sd688 sdf86