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

2024-07-27 15:23:28 +08:00
 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 版本越高越好), 就相对更安全一些呢?

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

但是你没有回复,能在此具体回复一下吗?或者看到这条评论的老哥也能回复教教我怎么复现吗?
kile
2024-07-28 04:14:51 +08:00
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