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

51 天前
 einsdisp

(前文故事中, 有人提到了 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 版本越高越好), 就相对更安全一些呢?

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

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

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

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

目前 Android14 targetSdkVersion 小于 23 的应用直接是装不了了,除非 ADB 开发者来装

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/1060528

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX