GKLBB

当你经历了暴风雨,你也就成为了暴风雨

导航

应用安全 --- apk应知应会 之 so加载流程

一个app的so文件有三种,一种是系统库,一种是应用本地库,还有一种是运行时加载库常见加密库。且so是按需加载的,先加载核心系统库,在加载应用启动后调用的so,最后加载动态运行库

下面我将为您详细解析这三种类型的 SO 文件。

核心分类对比表

特性系统库 (System Libraries)应用本地库 (Local Libraries)运行时加载库 (Runtime-loaded Libraries)
来源 Android 操作系统、芯片厂商(如高通)、设备制造商 随 APK 一起打包发布 从网络下载,或从 APK 的 assets/res 目录解密后释放
存放路径 /system/lib(64)//vendor/lib(64)//apex/ /data/app/.../lib/arm64/ (APK 安装时解压) /data/data/<package>/files//data/data/<package>/cache/
加载方式 System.loadLibrary() (由系统或其他库隐式加载) System.loadLibrary() System.load(String absolutePath)
主要作用 提供系统核心服务、硬件抽象层(HAL)、基础运行时 实现应用核心功能、性能敏感模块、JNI 接口 插件化功能、热更新、安全加固(加密算法核心)
可见性 对所有应用可见 容易被静态提取和分析 隐藏于 APK 之外,需动态捕获
加密情况 不加密 通常不加密(或使用厂商基础加固) 几乎总是被加密或混淆
调试与分析 容易,有公开符号 较容易,可静态分析 困难,需要动态脱壳、内存 dump

详细解析

1. 系统库 (System Libraries)

这些是构成 Android 系统基础的共享库,由手机厂商提供。

  • 例子:

    • libc.so (Bionic C 库)

    • liblog.so (Android 日志系统)

    • libandroid_runtime.so (Android 运行时环境)

    • libgui.solibui.so (图形系统)

    • libOpenSLES.so (音频 API)

    • /vendor/lib64/libxxx.so (厂商特有的硬件抽象层库,如高通、三星的图形、传感器驱动)

  • 特点:

    • 路径固定:位于 /system/vendor/apex 等分区。

    • 隐式加载:当你的应用或应用加载的本地库依赖它们时,系统链接器会自动加载它们。你不需要(也不应该)在自己的代码中显式加载它们。

    • 公开API:它们通过 NDK 提供头文件,开发者可以合法地链接和使用它们的功能。

2. 应用本地库 (Local Libraries)

这些是开发者编写并编译后,随 APK 一起发布的库。它们实现了应用的核心功能。

  • 例子:

    • 自己实现的 JNI 方法库:libnative-lib.so

    • 集成的第三方 SDK:libweibosdkcore.so (微博 SDK)、libAMapSDK.so (高德地图)

    • 性能敏感的引擎:游戏引擎 (libunity.solibil2cpp.so)、音视频编码库 (libffmpeg.so)、机器学习推理框架 (libtensorflowlite.so)

  • 特点:

    • 存放于 APK:位于 APK 压缩包的 lib/arm64-v8a/ 等目录下。

    • 安装时解压:在安装时,系统会将其解压到应用私有目录 /data/app/.../lib/arm64/

    • 显式加载:开发者需要在 Java 代码中调用 System.loadLibrary("native-lib") 来加载(注意省略 lib 前缀和 .so 后缀)。

    • 分析目标:这是静态逆向分析的主要目标,使用 IDA Pro、Ghidra 等工具可以直接分析磁盘上的这个文件。

3. 运行时加载库 (Runtime-loaded Libraries / “加密库”)

这是安全加固和对抗逆向的核心手段。这些库不直接存在于 APK 的 lib 目录下,而是被隐藏或加密。

  • 目的:

    • 对抗静态分析:防止分析者直接使用工具打开分析核心算法。

    • 防止篡改:加固后的 APK 难以被直接修改和重打包。

    • 业务灵活性:实现插件化、热更新,动态添加新功能。

  • 实现流程:

    1. 隐藏/加密:将核心 SO 文件加密后放在 APK 的 assets 或 res/raw 目录,或者在应用第一次启动时从服务器下载。

    2. 释放:在运行时(通常在 Application 的 onCreate 或启动页中),将加密的文件解密,并写入到应用的数据目录,如 /data/data/<package>/files/ 或 /data/data/<package>/cache/。这个目录通常命名为 libspluginxxx_x86(用于迷惑)等。

    3. 加载:使用 System.load("/data/data/.../files/libencrypted.so") (传入绝对路径)来加载这个刚刚解密出来的文件。

  • 特点:

    • 核心逻辑:真正的业务逻辑、加密算法、协议通信等核心代码都在这里。

    • 对抗手段:分析者无法通过解压 APK 直接获得它,必须采用动态分析技术:

      • Frida / Xposed Hook:Hook System.load 等函数,捕获解密后的文件路径,在它被加载前从磁盘上取走。

      • 内存 Dump:在 SO 被加载到内存后,使用 GDB、Frida 脚本或 /proc/<pid>/maps 和 dd 命令将内存中的整个 SO 镜像 dump 下来,再进行修复和分析。

      • 模拟执行:使用 Unidbg 这类工具模拟执行 SO 代码,避免逆向算法本身。

总结与关联

一个加固后的应用,其 SO 结构通常是这样的:

  1. 外壳 (Stub):APK 自带的应用本地库(如 libshell.so)。它本身可能被混淆,但主要职责是解密和加载真正的核心库。它几乎没有业务逻辑。

  2. 核心 (Core):被加密存放的运行时加载库(如 libcore.so)。它包含了所有需要保护的核心算法和逻辑。外壳会解密并加载它。

  3. 依赖 (Dependencies):在整个过程中,系统库会被自动加载,为前两者提供运行环境。

因此,在分析一个加固过的 App 时,逆向工程师的首要目标就是突破外壳的保护,获取到内存中解密后的核心 SO 文件,而这正是双方攻防的焦点。





[*] 共找到 323 个SO模块 [*] 开始枚举当前进程加载的SO模块... 模块名称 内存起始地址 大小 路径 ---------------------------------------------------------------------------------------------------- libandroid_runtime.so 745528e000 1757184 bytes /system/lib64/libandroid_runtime.so libbase.so 7451442000 249856 bytes /system/lib64/libbase.so libbinder.so 74531c6000 667648 bytes /system/lib64/libbinder.so libcutils.so 7452f5d000 73728 bytes /system/lib64/libcutils.so libhidlbase.so 7452441000 679936 bytes /system/lib64/libhidlbase.so liblog.so 7451a50000 73728 bytes /system/lib64/liblog.so libnativeloader.so 7452c09000 221184 bytes /apex/com.android.art/lib64/libnativeloader.so libutils.so 7452148000 122880 bytes /system/lib64/libutils.so libwilhelm.so 7451540000 262144 bytes /system/lib64/libwilhelm.so libc++.so 7453a0b000 716800 bytes /system/lib64/libc++.so libc.so 7450701000 3223552 bytes /apex/com.android.runtime/lib64/bionic/libc.so libm.so 744fec7000 225280 bytes /apex/com.android.runtime/lib64/bionic/libm.so libdl.so 74538a4000 20480 bytes /apex/com.android.runtime/lib64/bionic/libdl.so libmillet_comm.so 7455211000 16384 bytes /system/lib64/libmillet_comm.so libharfbuzz_ng.so 7450086000 729088 bytes /system/lib64/libharfbuzz_ng.so libhwui.so 7453d73000 7909376 bytes /system/lib64/libhwui.so libminikin.so 74533ca000 167936 bytes /system/lib64/libminikin.so libnativehelper.so 7450172000 32768 bytes /apex/com.android.art/lib64/libnativehelper.so libz.so 7453524000 94208 bytes /system/lib64/libz.so libziparchive.so 745361e000 65536 bytes /system/lib64/libziparchive.so libandroidicu.so 7452106000 212992 bytes /apex/com.android.art/lib64/libandroidicu.so libbpf_android.so 7451a2c000 53248 bytes /system/lib64/libbpf_android.so libnetdbpf.so 7453457000 159744 bytes /system/lib64/libnetdbpf.so libnetdutils.so 7452eeb000 81920 bytes /system/lib64/libnetdutils.so libmemtrack.so 7455022000 16384 bytes /system/lib64/libmemtrack.so libandroidfw.so 7450d86000 458752 bytes /system/lib64/libandroidfw.so libappfuse.so 7453559000 57344 bytes /system/lib64/libappfuse.so libcrypto.so 7451e94000 1126400 bytes /system/lib64/libcrypto.so libdebuggerd_client.so 7450f4e000 40960 bytes /system/lib64/libdebuggerd_client.so libui.so 7452c48000 290816 bytes /system/lib64/libui.so libgraphicsenv.so 7451714000 57344 bytes /system/lib64/libgraphicsenv.so libgui.so 7452540000 1048576 bytes /system/lib64/libgui.so libmediandk.so 7451d4d000 204800 bytes /system/lib64/libmediandk.so libsensor.so 7451244000 98304 bytes /system/lib64/libsensor.so libinput.so 7454701000 229376 bytes /system/lib64/libinput.so libcamera_client.so 7451484000 491520 bytes /system/lib64/libcamera_client.so libcamera_metadata.so 745235f000 53248 bytes /system/lib64/libcamera_metadata.so libsqlite.so 7453048000 1208320 bytes /system/lib64/libsqlite.so libEGL.so 7450184000 229376 bytes /system/lib64/libEGL.so libGLESv1_CM.so 7450b6a000 36864 bytes /system/lib64/libGLESv1_CM.so libGLESv2.so 7451a9e000 106496 bytes /system/lib64/libGLESv2.so libGLESv3.so 7453689000 106496 bytes /system/lib64/libGLESv3.so libincfs.so 7450597000 135168 bytes /system/lib64/libincfs.so libdataloader.so 74521e3000 65536 bytes /system/lib64/libdataloader.so libvulkan.so 7452189000 167936 bytes /system/lib64/libvulkan.so libETC1.so 74539e0000 16384 bytes /system/lib64/libETC1.so libhardware.so 745330d000 12288 bytes /system/lib64/libhardware.so libhardware_legacy.so 745390f000 28672 bytes /system/lib64/libhardware_legacy.so libselinux.so 7452514000 110592 bytes /system/lib64/libselinux.so libmedia.so 74510c3000 630784 bytes /system/lib64/libmedia.so libmedia_helper.so 7453659000 98304 bytes /system/lib64/libmedia_helper.so libmediametrics.so 7452751000 86016 bytes /system/lib64/libmediametrics.so libmeminfo.so 7452883000 53248 bytes /system/lib64/libmeminfo.so libaudioclient.so 7452208000 847872 bytes /system/lib64/libaudioclient.so libaudiofoundation.so 745209b000 94208 bytes /system/lib64/libaudiofoundation.so libaudiopolicy.so 74518b1000 24576 bytes /system/lib64/libaudiopolicy.so libusbhost.so 74501c7000 20480 bytes /system/lib64/libusbhost.so libpdfium.so 7454899000 4984832 bytes /system/lib64/libpdfium.so libimg_utils.so 745508f000 122880 bytes /system/lib64/libimg_utils.so libnetd_client.so 74527b5000 36864 bytes /system/lib64/libnetd_client.so libprocessgroup.so 7454580000 262144 bytes /system/lib64/libprocessgroup.so libnativebridge_lazy.so 7451d15000 20480 bytes /system/lib64/libnativebridge_lazy.so libnativeloader_lazy.so 7454866000 16384 bytes /system/lib64/libnativeloader_lazy.so libmemunreachable.so 745280d000 196608 bytes /system/lib64/libmemunreachable.so libvintf.so 7453bf0000 569344 bytes /system/lib64/libvintf.so libnativedisplay.so 74517a7000 77824 bytes /system/lib64/libnativedisplay.so libnativewindow.so 7450faf000 28672 bytes /system/lib64/libnativewindow.so libdl_android.so 7451e21000 12288 bytes /apex/com.android.runtime/lib64/bionic/libdl_android.so libstatslog.so 7453429000 73728 bytes /system/lib64/libstatslog.so libstatssocket.so 74533a3000 24576 bytes /apex/com.android.os.statsd/lib64/libstatssocket.so libtimeinstate.so 7451349000 49152 bytes /system/lib64/libtimeinstate.so server_configurable_flags.so 74527e7000 20480 bytes /system/lib64/server_configurable_flags.so libstatspull.so 7453973000 266240 bytes /apex/com.android.os.statsd/lib64/libstatspull.so libvndksupport.so 74538ed000 16384 bytes /system/lib64/libvndksupport.so libnativebridge.so 74532ed000 24576 bytes /apex/com.android.art/lib64/libnativebridge.so libmedia_codeclist.so 745378d000 65536 bytes /system/lib64/libmedia_codeclist.so libaudiomanager.so 7450b01000 20480 bytes /system/lib64/libaudiomanager.so libdatasource.so 7453761000 81920 bytes /system/lib64/libdatasource.so libstagefright.so 7450bc4000 1802240 bytes /system/lib64/libstagefright.so libstagefright_foundation.so 745318a000 212992 bytes /system/lib64/libstagefright_foundation.so libstagefright_http_support.so 745000f000 16384 bytes /system/lib64/libstagefright_http_support.so libdng_sdk.so 74537c1000 778240 bytes /system/lib64/libdng_sdk.so libexpat.so 7450ac2000 139264 bytes /system/lib64/libexpat.so libjpeg.so 7450654000 319488 bytes /system/lib64/libjpeg.so libpiex.so 7452ae7000 102400 bytes /system/lib64/libpiex.so libpng.so 7452903000 217088 bytes /system/lib64/libpng.so libbinder_ndk.so 7450a9f000 73728 bytes /system/lib64/libbinder_ndk.so libheif.so 745231c000 40960 bytes /system/lib64/libheif.so libprotobuf-cpp-lite.so 7452004000 483328 bytes /system/lib64/libprotobuf-cpp-lite.so libft2.so 74513ab000 593920 bytes /system/lib64/libft2.so libsync.so 7451dcf000 16384 bytes /system/lib64/libsync.so libforcedark.so 74546f0000 20480 bytes /system/lib64/libforcedark.so libicuuc.so 7451b4a000 1789952 bytes /apex/com.android.art/lib64/libicuuc.so libicui18n.so 7454d81000 2539520 bytes /apex/com.android.art/lib64/libicui18n.so libbpf.so 74534cd000 36864 bytes /system/lib64/libbpf.so android.hardware.memtrack@1.0.so 7450e03000 86016 bytes /system/lib64/android.hardware.memtrack@1.0.so libprocinfo.so 7452f24000 16384 bytes /system/lib64/libprocinfo.so android.hardware.graphics.allocator@2.0.so74511c3000 98304 bytes /system/lib64/android.hardware.graphics.allocator@2.0.so android.hardware.graphics.allocator@3.0.so7452403000 98304 bytes /system/lib64/android.hardware.graphics.allocator@3.0.so android.hardware.graphics.allocator@4.0.so7452392000 90112 bytes /system/lib64/android.hardware.graphics.allocator@4.0.so android.hardware.graphics.common-V1-ndk_platform.so74528c2000 32768 bytes /system/lib64/android.hardware.graphics.common-V1-ndk_platform.so android.hardware.graphics.common@1.2.so 745108e000 16384 bytes /system/lib64/android.hardware.graphics.common@1.2.so android.hardware.graphics.mapper@2.0.so 74551c5000 106496 bytes /system/lib64/android.hardware.graphics.mapper@2.0.so android.hardware.graphics.mapper@2.1.so 745468d000 110592 bytes /system/lib64/android.hardware.graphics.mapper@2.1.so android.hardware.graphics.mapper@3.0.so 7450203000 118784 bytes /system/lib64/android.hardware.graphics.mapper@3.0.so android.hardware.graphics.mapper@4.0.so 7453ad2000 147456 bytes /system/lib64/android.hardware.graphics.mapper@4.0.so libgralloctypes.so 745524a000 77824 bytes /system/lib64/libgralloctypes.so android.hardware.graphics.bufferqueue@1.0.so7450a43000 245760 bytes /system/lib64/android.hardware.graphics.bufferqueue@1.0.so android.hardware.graphics.bufferqueue@2.0.so7450f06000 217088 bytes /system/lib64/android.hardware.graphics.bufferqueue@2.0.so android.hardware.graphics.common@1.1.so 7453729000 16384 bytes /system/lib64/android.hardware.graphics.common@1.1.so android.hidl.token@1.0-utils.so 7452fbb000 20480 bytes /system/lib64/android.hidl.token@1.0-utils.so android.frameworks.bufferhub@1.0.so 745505c000 122880 bytes /system/lib64/android.frameworks.bufferhub@1.0.so libbufferhub.so 74526d4000 61440 bytes /system/lib64/libbufferhub.so libbufferhubqueue.so 745334e000 114688 bytes /system/lib64/libbufferhubqueue.so libpdx_default_transport.so 745104f000 155648 bytes /system/lib64/libpdx_default_transport.so libandroid_runtime_lazy.so 7450605000 16384 bytes /system/lib64/libandroid_runtime_lazy.so libmediadrm.so 745028f000 188416 bytes /system/lib64/libmediadrm.so libmedia_omx.so 74536ce000 192512 bytes /system/lib64/libmedia_omx.so libmedia_jni_utils.so 7450bab000 12288 bytes /system/lib64/libmedia_jni_utils.so libmediandk_utils.so 7451fc2000 16384 bytes /system/lib64/libmediandk_utils.so libbacktrace.so 74520d4000 159744 bytes /system/lib64/libbacktrace.so android.hardware.configstore@1.0.so 7453492000 143360 bytes /system/lib64/android.hardware.configstore@1.0.so android.hardware.configstore-utils.so 7451774000 16384 bytes /system/lib64/android.hardware.configstore-utils.so libSurfaceFlingerProp.so 7454645000 114688 bytes /system/lib64/libSurfaceFlingerProp.so android.hardware.graphics.common@1.0.so 7452fe7000 16384 bytes /system/lib64/android.hardware.graphics.common@1.0.so android.system.suspend@1.0.so 7450e87000 114688 bytes /system/lib64/android.system.suspend@1.0.so libpcre2.so 7450497000 327680 bytes /system/lib64/libpcre2.so libpackagelistparser.so 74517e0000 12288 bytes /system/lib64/libpackagelistparser.so capture_state_listener-aidl-V1-cpp.so 7450fe1000 40960 bytes /system/lib64/capture_state_listener-aidl-V1-cpp.so libaudioutils.so 745328e000 139264 bytes /system/lib64/libaudioutils.so libmediautils.so 74550c2000 253952 bytes /system/lib64/libmediautils.so libnblog.so 745270b000 204800 bytes /system/lib64/libnblog.so libvibrator.so 7453004000 49152 bytes /system/lib64/libvibrator.so libshootdetect.so 745118e000 28672 bytes /system/lib64/libshootdetect.so libstdc++.so 74512ee000 16384 bytes /system/lib64/libstdc++.so libelevoc_single_rn.so 7452d19000 1695744 bytes /system/lib64/libelevoc_single_rn.so libcgrouprc.so 745026f000 20480 bytes /system/lib64/libcgrouprc.so libhidl-gen-utils.so 74519e8000 57344 bytes /system/lib64/libhidl-gen-utils.so libtinyxml2.so 745451c000 106496 bytes /system/lib64/libtinyxml2.so android.hardware.media.omx@1.0.so 7453b43000 495616 bytes /system/lib64/android.hardware.media.omx@1.0.so libdovi.so 74523dc000 131072 bytes /system/lib64/libdovi.so libstagefright_framecapture_utils.so 7455112000 180224 bytes /system/lib64/libstagefright_framecapture_utils.so libcodec2.so 7453d2a000 12288 bytes /system/lib64/libcodec2.so libcodec2_vndk.so 745158d000 610304 bytes /system/lib64/libcodec2_vndk.so libmedia_omx_client.so 7450eeb000 24576 bytes /system/lib64/libmedia_omx_client.so libsfplugin_ccodec.so 744ff22000 602112 bytes /system/lib64/libsfplugin_ccodec.so libsfplugin_ccodec_utils.so 745182a000 303104 bytes /system/lib64/libsfplugin_ccodec_utils.so libstagefright_codecbase.so 745130e000 32768 bytes /system/lib64/libstagefright_codecbase.so libstagefright_omx_utils.so 74519b1000 24576 bytes /system/lib64/libstagefright_omx_utils.so libRScpp.so 7451af5000 290816 bytes /system/lib64/libRScpp.so libhidlallocatorutils.so 7451e4b000 12288 bytes /system/lib64/libhidlallocatorutils.so libhidlmemory.so 7452ce8000 28672 bytes /system/lib64/libhidlmemory.so android.hidl.allocator@1.0.so 7451945000 77824 bytes /system/lib64/android.hidl.allocator@1.0.so android.hidl.memory@1.0.so 7452be0000 122880 bytes /system/lib64/android.hidl.memory@1.0.so android.hardware.cas.native@1.0.so 745454e000 102400 bytes /system/lib64/android.hardware.cas.native@1.0.so android.hardware.drm@1.0.so 7453c89000 425984 bytes /system/lib64/android.hardware.drm@1.0.so android.hardware.common-V1-ndk_platform.so74506e6000 20480 bytes /system/lib64/android.hardware.common-V1-ndk_platform.so android.hardware.media@1.0.so 7451220000 16384 bytes /system/lib64/android.hardware.media@1.0.so android.hidl.token@1.0.so 744ffcd000 86016 bytes /system/lib64/android.hidl.token@1.0.so libmediadrmmetrics_lite.so 745101c000 122880 bytes /system/lib64/libmediadrmmetrics_lite.so android.hardware.drm@1.1.so 7452b53000 286720 bytes /system/lib64/android.hardware.drm@1.1.so android.hardware.drm@1.2.so 7454741000 430080 bytes /system/lib64/android.hardware.drm@1.2.so android.hardware.drm@1.3.so 7451d99000 159744 bytes /system/lib64/android.hardware.drm@1.3.so libunwindstack.so 74547d0000 454656 bytes /system/lib64/libunwindstack.so android.hardware.configstore@1.1.so 7452861000 122880 bytes /system/lib64/android.hardware.configstore@1.1.so libspeexresampler.so 7451933000 20480 bytes /system/lib64/libspeexresampler.so libdolbyottcontrol.so 745294d000 1462272 bytes /system/lib64/libdolbyottcontrol.so android.hardware.media.bufferpool@2.0.so74545c1000 241664 bytes /system/lib64/android.hardware.media.bufferpool@2.0.so libion.so 7450568000 16384 bytes /system/lib64/libion.so libfmq.so 7450048000 16384 bytes /system/lib64/libfmq.so libstagefright_bufferpool@2.0.1.so 7451283000 172032 bytes /system/lib64/libstagefright_bufferpool@2.0.1.so android.hardware.media.c2@1.0.so 745165b000 655360 bytes /system/lib64/android.hardware.media.c2@1.0.so libcodec2_client.so 74505c8000 151552 bytes /system/lib64/libcodec2_client.so libstagefright_bufferqueue_helper.so 7453b15000 90112 bytes /system/lib64/libstagefright_bufferqueue_helper.so libstagefright_omx.so 7455145000 327680 bytes /system/lib64/libstagefright_omx.so libstagefright_xmlparser.so 7452694000 90112 bytes /system/lib64/libstagefright_xmlparser.so android.hidl.memory.token@1.0.so 7451525000 77824 bytes /system/lib64/android.hidl.memory.token@1.0.so android.hardware.cas@1.0.so 74535aa000 282624 bytes /system/lib64/android.hardware.cas@1.0.so liblzma.so 745050b000 180224 bytes /system/lib64/liblzma.so libdexfile_support.so 74518ec000 20480 bytes /system/lib64/libdexfile_support.so android.hidl.safe_union@1.0.so 7452647000 12288 bytes /system/lib64/android.hidl.safe_union@1.0.so android.hardware.media.c2@1.1.so 7452b04000 217088 bytes /system/lib64/android.hardware.media.c2@1.1.so libcodec2_hidl_client@1.0.so 7450e44000 114688 bytes /system/lib64/libcodec2_hidl_client@1.0.so libcodec2_hidl_client@1.1.so 745462d000 16384 bytes /system/lib64/libcodec2_hidl_client@1.1.so libclang_rt.ubsan_standalone-aarch64-android.so74502c5000 1777664 bytes /system/lib64/libclang_rt.ubsan_standalone-aarch64-android.so libavenhancements.so 7455583000 512000 bytes /system/system_ext/lib64/libavenhancements.so libstagefright_httplive.so 74556d8000 544768 bytes /system/lib64/libstagefright_httplive.so libmediaplayerservice.so 73cf6c2000 1290240 bytes /system/lib64/libmediaplayerservice.so libnbaio.so 74558f5000 45056 bytes /system/lib64/libnbaio.so libdrmframework.so 745598a000 143360 bytes /system/lib64/libdrmframework.so libpowermanager.so 74558a0000 77824 bytes /system/lib64/libpowermanager.so libart.so 73cf001000 7012352 bytes /apex/com.android.art/lib64/libart.so libartpalette.so 74554f5000 16384 bytes /apex/com.android.art/lib64/libartpalette.so libsigchain.so 745552b000 20480 bytes /system/lib64/libsigchain.so libartbase.so 73cef87000 495616 bytes /apex/com.android.art/lib64/libartbase.so libdexfile.so 73cfe65000 270336 bytes /apex/com.android.art/lib64/libdexfile.so libdexfile_external.so 7455691000 28672 bytes /apex/com.android.art/lib64/libdexfile_external.so libprofile.so 7455549000 217088 bytes /apex/com.android.art/lib64/libprofile.so libartpalette-system.so 73cef48000 24576 bytes /system/lib64/libartpalette-system.so libtombstoned_client.so 74557ed000 24576 bytes /system/lib64/libtombstoned_client.so libadbconnection.so 73c6cd4000 65536 bytes /apex/com.android.art/lib64/libadbconnection.so libadbconnection_client.so 73c6c80000 221184 bytes /apex/com.android.adbd/lib64/libadbconnection_client.so libperfetto_hprof.so 73c6885000 372736 bytes /apex/com.android.art/lib64/libperfetto_hprof.so libandroid.so 73c6859000 147456 bytes /system/lib64/libandroid.so libxml2.so 73c5584000 1261568 bytes /system/lib64/libxml2.so libaaudio.so 73c54f8000 28672 bytes /system/lib64/libaaudio.so libaaudio_internal.so 73c551f000 311296 bytes /system/lib64/libaaudio_internal.so libamidi.so 73c54a6000 36864 bytes /system/lib64/libamidi.so libcamera2ndk.so 73c5442000 249856 bytes /system/lib64/libcamera2ndk.so libjnigraphics.so 73c543a000 24576 bytes /system/lib64/libjnigraphics.so libOpenMAXAL.so 73c53c6000 16384 bytes /system/lib64/libOpenMAXAL.so libOpenSLES.so 73c53a9000 16384 bytes /system/lib64/libOpenSLES.so libRS.so 73c5286000 73728 bytes /system/lib64/libRS.so libutilscallstack.so 73c5344000 24576 bytes /system/lib64/libutilscallstack.so android.hardware.renderscript@1.0.so 73c52e1000 372736 bytes /system/lib64/android.hardware.renderscript@1.0.so libwebviewchromium_plat_support.so 73c5246000 20480 bytes /system/lib64/libwebviewchromium_plat_support.so libicu_jni.so 73c521f000 53248 bytes /apex/com.android.art/lib64/libicu_jni.so libjavacore.so 73c5182000 253952 bytes /apex/com.android.art/lib64/libjavacore.so libandroidio.so 73c51d0000 16384 bytes /apex/com.android.art/lib64/libandroidio.so libopenjdk.so 73c3907000 221184 bytes /apex/com.android.art/lib64/libopenjdk.so libopenjdkjvm.so 73c3970000 40960 bytes /apex/com.android.art/lib64/libopenjdkjvm.so libart-compiler.so 73c358f000 3493888 bytes /apex/com.android.art/lib64/libart-compiler.so libvixl.so 73c336c000 2113536 bytes /apex/com.android.art/lib64/libvixl.so libqti-at.so 73b9973000 16384 bytes /system/system_ext/lib64/libqti-at.so libqti-perfd-client_system.so 73b99b5000 32768 bytes /system/system_ext/lib64/libqti-perfd-client_system.so vendor.qti.hardware.perf@2.0.so 73b991a000 118784 bytes /system/system_ext/lib64/vendor.qti.hardware.perf@2.0.so libmiuinative.so 73b80d3000 86016 bytes /system/lib64/libmiuinative.so libjavacrypto.so 73b7a80000 294912 bytes /apex/com.android.conscrypt/lib64/libjavacrypto.so libcrypto.so 73b7b07000 1126400 bytes /apex/com.android.conscrypt/lib64/libcrypto.so libssl.so 73b7d22000 335872 bytes /apex/com.android.conscrypt/lib64/libssl.so libc++.so 73b7c47000 737280 bytes /apex/com.android.conscrypt/lib64/libc++.so libmedia_jni.so 73b2ce5000 544768 bytes /system/lib64/libmedia_jni.so libmediadrmmetrics_consumer.so 73b2ca8000 28672 bytes /system/lib64/libmediadrmmetrics_consumer.so libmtp.so 73b29c4000 245760 bytes /system/lib64/libmtp.so libsonivox.so 73b2d96000 614400 bytes /system/lib64/libsonivox.so libmediadrmmetrics_full.so 73b2e56000 147456 bytes /system/lib64/libmediadrmmetrics_full.so libasyncio.so 73b2a39000 12288 bytes /system/lib64/libasyncio.so libprotobuf-cpp-full.so 73b2a41000 2228224 bytes /system/lib64/libprotobuf-cpp-full.so libsoundpool.so 73b2e82000 86016 bytes /system/lib64/libsoundpool.so libaudioeffect_jni.so 73b299e000 49152 bytes /system/lib64/libaudioeffect_jni.so librs_jni.so 73b2947000 73728 bytes /system/lib64/librs_jni.so android.hardware.graphics.mapper@3.0-impl-qti-display.so73b1b09000 45056 bytes /vendor/lib64/hw/android.hardware.graphics.mapper@3.0-impl-qti-display.so libutils.so 73b1f02000 122880 bytes /apex/com.android.vndk.v30/lib64/libutils.so libcutils.so 73b1e1b000 73728 bytes /apex/com.android.vndk.v30/lib64/libcutils.so libhardware.so 73b2017000 12288 bytes /apex/com.android.vndk.v30/lib64/libhardware.so libhidlbase.so 73b1cc0000 757760 bytes /apex/com.android.vndk.v30/lib64/libhidlbase.so libqdMetaData.so 73b1fca000 28672 bytes /vendor/lib64/libqdMetaData.so libgrallocutils.so 73b1e91000 45056 bytes /vendor/lib64/libgrallocutils.so libgralloccore.so 73b1b4d000 69632 bytes /vendor/lib64/libgralloccore.so vendor.qti.hardware.display.mapper@3.0.so73b1e45000 98304 bytes /vendor/lib64/vendor.qti.hardware.display.mapper@3.0.so vendor.qti.hardware.display.mapperextensions@1.0.so73b1b87000 131072 bytes /vendor/lib64/vendor.qti.hardware.display.mapperextensions@1.0.so android.hardware.graphics.mapper@2.0.so 73b2096000 102400 bytes /apex/com.android.vndk.v30/lib64/android.hardware.graphics.mapper@2.0.so android.hardware.graphics.mapper@2.1.so 73b1c8d000 106496 bytes /apex/com.android.vndk.v30/lib64/android.hardware.graphics.mapper@2.1.so vendor.qti.hardware.display.mapperextensions@1.1.so73b20dc000 122880 bytes /vendor/lib64/vendor.qti.hardware.display.mapperextensions@1.1.so android.hardware.graphics.mapper@3.0.so 73b1bc4000 114688 bytes /apex/com.android.vndk.v30/lib64/android.hardware.graphics.mapper@3.0.so libc++.so 73b1a4a000 716800 bytes /apex/com.android.vndk.v30/lib64/libc++.so libprocessgroup.so 73b19c1000 258048 bytes /apex/com.android.vndk.v30/lib64/libprocessgroup.so libbase.so 73b1c02000 249856 bytes /apex/com.android.vndk.v30/lib64/libbase.so libgralloc.qti.so 73b1db0000 32768 bytes /vendor/lib64/libgralloc.qti.so libgralloctypes.so 73b1a1d000 77824 bytes /apex/com.android.vndk.v30/lib64/libgralloctypes.so android.hardware.graphics.common@1.2.so 73b1dd8000 12288 bytes /apex/com.android.vndk.v30/lib64/android.hardware.graphics.common@1.2.so android.hardware.graphics.mapper@4.0.so 73b1f8c000 151552 bytes /apex/com.android.vndk.v30/lib64/android.hardware.graphics.mapper@4.0.so libion.so 73b2063000 16384 bytes /apex/com.android.vndk.v30/lib64/libion.so android.hardware.graphics.common@1.0.so 73b1c78000 12288 bytes /apex/com.android.vndk.v30/lib64/android.hardware.graphics.common@1.0.so android.hardware.graphics.common@1.1.so 73b1ece000 12288 bytes /apex/com.android.vndk.v30/lib64/android.hardware.graphics.common@1.1.so android.hardware.graphics.common-V1-ndk_platform.so73b19a8000 24576 bytes /apex/com.android.vndk.v30/lib64/android.hardware.graphics.common-V1-ndk_platform.so android.hardware.common-V1-ndk_platform.so73b1f4f000 16384 bytes /apex/com.android.vndk.v30/lib64/android.hardware.common-V1-ndk_platform.so android.hardware.graphics.mapper@4.0-impl-qti-display.so73b18dc000 81920 bytes /vendor/lib64/hw/android.hardware.graphics.mapper@4.0-impl-qti-display.so libhidltransport.so 73b1976000 12288 bytes /vendor/lib64/libhidltransport.so vendor.qti.hardware.display.mapper@4.0.so73b1907000 110592 bytes /vendor/lib64/vendor.qti.hardware.display.mapper@4.0.so libEGL_adreno.so 73b180f000 45056 bytes /vendor/lib64/egl/libEGL_adreno.so libadreno_utils.so 73b1889000 94208 bytes /vendor/lib64/libadreno_utils.so libgsl.so 73b15d5000 2125824 bytes /vendor/lib64/libgsl.so libz.so 73b1846000 94208 bytes /apex/com.android.vndk.v30/lib64/libz.so libGLESv2_adreno.so 73b11d5000 4030464 bytes /vendor/lib64/egl/libGLESv2_adreno.so libllvm-glnext.so 73b0483000 13778944 bytes /vendor/lib64/libllvm-glnext.so libGLESv1_CM_adreno.so 73b0444000 241664 bytes /vendor/lib64/egl/libGLESv1_CM_adreno.so eglSubDriverAndroid.so 73b0409000 77824 bytes /vendor/lib64/egl/eglSubDriverAndroid.so vendor.qti.hardware.display.mapper@2.0.so73b03e6000 102400 bytes /vendor/lib64/vendor.qti.hardware.display.mapper@2.0.so libcompiler_rt.so 73b0306000 544768 bytes /system/lib64/libcompiler_rt.so libqti_performance.so 73b02dd000 28672 bytes /system/system_ext/lib64/libqti_performance.so vendor.qti.hardware.iop@2.0.so 73b029b000 102400 bytes /system/system_ext/lib64/vendor.qti.hardware.iop@2.0.so libwebviewchromium_loader.so 73b01e7000 16384 bytes /system/lib64/libwebviewchromium_loader.so libGameVMP.so 734f80c000 454656 bytes /data/app/~~YxjKiMfU5GhbqDTDhPhhpw==/com.shizhuang.duapp-f6V4lziH2H4ySLWwb1S4_A==/lib/arm64/libGameVMP.so libmmkv.so 7346bf3000 532480 bytes /data/app/~~YxjKiMfU5GhbqDTDhPhhpw==/com.shizhuang.duapp-f6V4lziH2H4ySLWwb1S4_A==/lib/arm64/libmmkv.so libxcrash.so 7346b5f000 118784 bytes /data/app/~~YxjKiMfU5GhbqDTDhPhhpw==/com.shizhuang.duapp-f6V4lziH2H4ySLWwb1S4_A==/lib/arm64/libxcrash.so libxdl.so 7346b22000 53248 bytes /data/app/~~YxjKiMfU5GhbqDTDhPhhpw==/com.shizhuang.duapp-f6V4lziH2H4ySLWwb1S4_A==/lib/arm64/libxdl.so libdulog.so 7345e1a000 114688 bytes /data/app/~~YxjKiMfU5GhbqDTDhPhhpw==/com.shizhuang.duapp-f6V4lziH2H4ySLWwb1S4_A==/lib/arm64/libdulog.so liboaid_crash_fixer_so_loader.so 733aa2c000 36864 bytes /data/app/~~YxjKiMfU5GhbqDTDhPhhpw==/com.shizhuang.duapp-f6V4lziH2H4ySLWwb1S4_A==/lib/arm64/liboaid_crash_fixer_so_loader.so libxhook.so 7345dcd000 53248 bytes /data/app/~~YxjKiMfU5GhbqDTDhPhhpw==/com.shizhuang.duapp-f6V4lziH2H4ySLWwb1S4_A==/lib/arm64/libxhook.so libc++_shared.so 7345c84000 929792 bytes /data/app/~~YxjKiMfU5GhbqDTDhPhhpw==/com.shizhuang.duapp-f6V4lziH2H4ySLWwb1S4_A==/lib/arm64/libc++_shared.so libxunwind.so 7345d9f000 69632 bytes /data/app/~~YxjKiMfU5GhbqDTDhPhhpw==/com.shizhuang.duapp-f6V4lziH2H4ySLWwb1S4_A==/lib/arm64/libxunwind.so libduhook.so 733aa95000 1220608 bytes /data/app/~~YxjKiMfU5GhbqDTDhPhhpw==/com.shizhuang.duapp-f6V4lziH2H4ySLWwb1S4_A==/lib/arm64/libduhook.so libshadowhook.so 733aa63000 81920 bytes /data/app/~~YxjKiMfU5GhbqDTDhPhhpw==/com.shizhuang.duapp-f6V4lziH2H4ySLWwb1S4_A==/lib/arm64/libshadowhook.so libduHA.so 73398c7000 12288 bytes /data/app/~~YxjKiMfU5GhbqDTDhPhhpw==/com.shizhuang.duapp-f6V4lziH2H4ySLWwb1S4_A==/lib/arm64/libduHA.so libszstone.so 7338556000 2220032 bytes /data/app/~~YxjKiMfU5GhbqDTDhPhhpw==/com.shizhuang.duapp-f6V4lziH2H4ySLWwb1S4_A==/lib/arm64/libszstone.so libdewuhelper.so 733852d000 28672 bytes /data/app/~~YxjKiMfU5GhbqDTDhPhhpw==/com.shizhuang.duapp-f6V4lziH2H4ySLWwb1S4_A==/lib/arm64/libdewuhelper.so libdusanwa.so 73384c2000 139264 bytes /data/app/~~YxjKiMfU5GhbqDTDhPhhpw==/com.shizhuang.duapp-f6V4lziH2H4ySLWwb1S4_A==/lib/arm64/libdusanwa.so libkbArt.so 733848e000 114688 bytes /data/app/~~YxjKiMfU5GhbqDTDhPhhpw==/com.shizhuang.duapp-f6V4lziH2H4ySLWwb1S4_A==/lib/arm64/libkbArt.so libdu_mediacache.so 73381df000 2744320 bytes /data/app/~~YxjKiMfU5GhbqDTDhPhhpw==/com.shizhuang.duapp-f6V4lziH2H4ySLWwb1S4_A==/lib/arm64/libdu_mediacache.so libmonochrome_64.so 73701e7000 183156736 bytes/data/app/~~LsoxdtSgGQhOGoQClL7nGQ==/com.google.android.trichromelibrary_636712333-F1txeyJUk4kuPZelwpCAuQ==/base.apk!/lib/arm64-v8a/libmonochrome_64.so libimagepipeline.so 72f92c7000 16384 bytes /data/app/~~YxjKiMfU5GhbqDTDhPhhpw==/com.shizhuang.duapp-f6V4lziH2H4ySLWwb1S4_A==/lib/arm64/libimagepipeline.so libnative-crypto-hook.so 72ee08e000 69632 bytes /data/app/~~YxjKiMfU5GhbqDTDhPhhpw==/com.shizhuang.duapp-f6V4lziH2H4ySLWwb1S4_A==/lib/arm64/libnative-crypto-hook.so libfbjni.so 72f834f000 200704 bytes /data/app/~~YxjKiMfU5GhbqDTDhPhhpw==/com.shizhuang.duapp-f6V4lziH2H4ySLWwb1S4_A==/lib/arm64/libfbjni.so libduv8.so 72b0b05000 15179776 bytes /data/app/~~YxjKiMfU5GhbqDTDhPhhpw==/com.shizhuang.duapp-f6V4lziH2H4ySLWwb1S4_A==/lib/arm64/libduv8.so libyoga.so 72b088a000 184320 bytes /data/app/~~YxjKiMfU5GhbqDTDhPhhpw==/com.shizhuang.duapp-f6V4lziH2H4ySLWwb1S4_A==/lib/arm64/libyoga.so libhawk.so 72ab3ce000 1994752 bytes /data/app/~~YxjKiMfU5GhbqDTDhPhhpw==/com.shizhuang.duapp-f6V4lziH2H4ySLWwb1S4_A==/lib/arm64/libhawk.so gralloc.msmnile.so 728cc8c000 45056 bytes /vendor/lib64/hw/gralloc.msmnile.so libboost.so 7289460000 16384 bytes /system/lib64/libboost.so libByteVC1_dec.so 727e505000 450560 bytes /data/app/~~YxjKiMfU5GhbqDTDhPhhpw==/com.shizhuang.duapp-f6V4lziH2H4ySLWwb1S4_A==/lib/arm64/libByteVC1_dec.so libttheif_dec.so 727e5d8000 147456 bytes /data/app/~~YxjKiMfU5GhbqDTDhPhhpw==/com.shizhuang.duapp-f6V4lziH2H4ySLWwb1S4_A==/lib/arm64/libttheif_dec.so libheif.so 727e46c000 65536 bytes /data/app/~~YxjKiMfU5GhbqDTDhPhhpw==/com.shizhuang.duapp-f6V4lziH2H4ySLWwb1S4_A==/lib/arm64/libheif.so libstatic-webp.so 727e38b000 569344 bytes /data/app/~~YxjKiMfU5GhbqDTDhPhhpw==/com.shizhuang.duapp-f6V4lziH2H4ySLWwb1S4_A==/lib/arm64/libstatic-webp.so libMNN.so 72bf04c000 1904640 bytes /data/data/com.shizhuang.duapp/files/soloader_x64/libMNN.so libdu_edge_ai_mnn.so 72bf013000 61440 bytes /data/data/com.shizhuang.duapp/files/soloader_x64/libdu_edge_ai_mnn.so libdu_heif.so 72347c1000 1806336 bytes /data/data/com.shizhuang.duapp/files/soloader_x64/libdu_heif.so libMNN_Vulkan.so 722ffd9000 536576 bytes /data/data/com.shizhuang.duapp/files/soloader_x64/libMNN_Vulkan.so libMNN_Express.so 722fece000 798720 bytes /data/data/com.shizhuang.duapp/files/soloader_x64/libMNN_Express.so libMNNOpenCV.so 722fe60000 266240 bytes /data/data/com.shizhuang.duapp/files/soloader_x64/libMNNOpenCV.so libMNN_CL.so 722fccb000 1323008 bytes /data/data/com.shizhuang.duapp/files/soloader_x64/libMNN_CL.so libxyp2psdk.so 722f9c8000 3100672 bytes /data/data/com.shizhuang.duapp/files/soloader_x64/libxyp2psdk.so libijmdetect_drisk.so 722a31e000 1417216 bytes /data/data/com.shizhuang.duapp/files/soloader_x64/libijmdetect_drisk.so libdu_security.so 722a247000 172032 bytes /data/data/com.shizhuang.duapp/files/soloader_x64/libdu_security.so [*] 共找到 323 个SO模块

 

 

下面我将这些模块按功能大类进行归纳总结:

1. 系统核心与运行时环境 (System Core & Runtime)

这些是Android系统运行的基础,提供最根本的服务。

  • C库与基础运行时:libc.solibm.solibdl.so (Bionic C库),libc++.so (C++标准库),libutils.solibcutils.so (Android工具库),libbase.so

  • Android运行时(ART):libart.solibartbase.solibart-compiler.solibdexfile.solibjavacore.solibopenjdk.so。负责Java字节码的执行、垃圾回收等。

  • 原生库加载:libnativeloader.solibnativebridge.so。管理SO库的加载。

2. 硬件抽象层与驱动接口 (Hardware Abstraction Layer - HAL)

Android通过HAL来标准化硬件访问,应用间接使用这些库。

  • 图形显示:libui.solibgui.solibgralloc.qti.solibgralloctypes.so, 以及大量的 android.hardware.graphics.*.so (如 allocatormappercommonbufferqueue)。

  • 多媒体:android.hardware.media.*.soandroid.hardware.cas.*.so (条件接收系统),android.hardware.drm.*.so (数字版权管理)。

  • 传感器:libsensor.soandroid.hardware.sensors.*.so

  • 相机:libcamera_client.solibcamera2ndk.solibcamera_metadata.so

  • 音频:libaudioclient.solibaudiofoundation.solibaudiopolicy.solibaaudio.so

  • 其他硬件:android.hardware.memtrack@1.0.soandroid.hardware.configstore@1.0.solibvibrator.so

3. 图形与渲染 (Graphics & Rendering)

负责2D和3D图形绘制、UI渲染。

  • OpenGL ES:libEGL.solibGLESv1_CM.solibGLESv2.solibGLESv3.so (OpenGL接口库),以及高通的具体实现 libEGL_adreno.solibGLESv2_adreno.so

  • 底层图形驱动:libhwui.so (硬件加速UI渲染), libgsl.so (高通图形驱动), libllvm-glnext.so (高通GPU编译器)。

  • 字体与文本渲染:libminikin.so (字体), libharfbuzz_ng.so (文本 shaping), libft2.so (FreeType, 字体光栅化)。

  • 图像处理:libRScpp.so (RenderScript), libpng.solibjpeg.so

4. 多媒体处理 (Media Processing)

处理音视频的编解码、播放、录制。

  • 媒体框架:libmedia.solibmediaplayerservice.solibstagefright.so (核心媒体引擎),libmediadrm.so

  • 编解码器:libcodec2.solibcodec2_vndk.solibsfplugin_ccodec.so (软件编解码器)。

  • 格式解析:libstagefright_httplive.so (HLS流),libexpat.so (XML解析,用于SMIL等)。

  • 音效处理:libsonivox.so (MIDI合成器),libelevoc_single_rn.so (Elevoc AI降噪)。

5. 网络与连接 (Networking & Connectivity)

处理网络通信和数据交换。

  • 网络栈:libnetd_client.solibnetdutils.so

  • 加密与安全通信:libcrypto.so (OpenSSL加密算法),libssl.so (SSL/TLS)。

  • 数据序列化:libprotobuf-cpp-lite.solibprotobuf-cpp-full.so (Protocol Buffers)。

6. 进程间通信 (Inter-Process Communication - IPC)

Android组件和系统服务通信的基石。

  • Binder:libbinder.so (最核心的IPC机制),libbinder_ndk.so (Binder的NDK接口)。

  • HIDL:libhidlbase.solibhidltransport.soandroid.hidl.*.so (用于HAL的IPC接口)。

  • 其他:libfmq.so (快速消息队列)。

7. 安全与权限 (Security & Permissions)

负责系统安全和权限检查。

  • SELinux:libselinux.so

  • 安全功能:libincfs.so (增量文件系统,用于APK验证),libvndksupport.so (Vendor NDK支持)。

8. 工具与辅助库 (Utility & Helper Libraries)

提供各种辅助功能。

  • 压缩:libz.so (gzip), liblzma.so (xz)。

  • XML解析:libxml2.so

  • 日志:liblog.so

  • 数据库:libsqlite.so

  • 调试与跟踪:libbacktrace.solibunwindstack.so (调用栈展开),libperfetto_hprof.so (性能分析)。

9. 应用框架与NDK (Application Framework & NDK)

连接Java层和Native层的桥梁,提供Android特色功能。

  • Android Runtime交互:libandroid_runtime.so

  • NDK库:libandroid.solibjnigraphics.solibOpenSLES.solibOpenMAXAL.solibnativewindow.so。为Native代码提供访问Android系统功能的API。

10. 厂商特定与设备特定 (Vendor & Device Specific)

由手机厂商(如小米)或芯片厂商(如高通Qualcomm)提供的优化库。

  • 高通(Qualcomm):大量以 libqti-vendor.qti.hardware. 开头的库,以及Adreno GPU系列库。

  • 小米(Xiaomi):libmiuinative.so

  • 其他:libavenhancements.solibdolbyottcontrol.so (杜比音效),libmillet_comm.so (小米自研通信机制)。

总结

这个列表清晰地展示了 一个典型的Android应用并不是一个孤立的岛屿,而是构建在一个极其庞大且复杂的系统生态之上的。应用通过依赖这些系统提供的SO库,才能高效、安全地使用设备的硬件(摄像头、麦克风、GPU、传感器)、系统服务(通知、窗口管理、活动管理)和核心功能(网络、图形、多媒体)。

对于安全研究人员或开发者来说,分析这些依赖可以帮助:

  1. 了解攻击面:例如,libcrypto.solibssl.so的版本可能存在漏洞。

  2. 分析应用行为:应用依赖了多媒体和图形库,表明它可能有丰富的音视频和UI功能。

  3. 性能优化:识别可能引起性能瓶颈的大型库(如libllvm-glnext.so有13MB+)。

  4. 兼容性排查:某些厂商特定库可能在其它品牌的设备上不存在或行为不一致。

这份列表中的模块绝大部分都是Android操作系统原生的,是正常且必需的。

 
 

分析缺失的SO文件

从您提供的文件列表和Frida输出对比来看,以下SO文件在APK中存在但没有被加载到内存中:

  1. libGameVData.so - 存在但未加载

  2. libantitrace.so - 存在但未加载

  3. libarcore_sdk_c.so - 存在但未加载

  4. libarcore_sdk_jni.so - 存在但未加载

  5. libbitmapmonitor.so - 存在但未加载

  6. libbytehook.so - 存在但未加载

  7. libdewuffmpeg.so - 存在但未加载

  8. libduapm.so - 存在但未加载

  9. libducloudpix.so - 存在但未加载

  10. libduplayer.so - 存在但未加载

  11. libfb.so - 存在但未加载

  12. libgifimage.so - 存在但未加载

  13. libkoom-java.so - 存在但未加载

  14. libkwai-android-base.so - 存在但未加载

  15. libmemory-hook.so - 存在但未加载

  16. libmsaoaidauth.so - 存在但未加载

  17. libnative-filters.so - 存在但未加载

  18. libnative-imagetranscoder.so - 存在但未加载

  19. libnativebitmap.so - 存在但未加载

  20. libnetwork-diagnose.so - 存在但未加载

  21. libxcrash_dumper.so - 存在但未加载

  22. libxhook_lib.so - 存在但未加载

可能的原因

  1. 延迟加载:某些SO文件可能只在特定功能被调用时才加载

  2. 条件加载:根据设备特性或配置决定是否加载某些SO

  3. 动态加载:应用可能使用System.load()而不是System.loadLibrary()动态加载SO

  4. 插件化架构:某些SO可能作为插件,只在需要时才加载

  5. 错误处理:某些SO加载失败但被应用静默处理

  6. 架构不匹配:某些SO可能针对不同CPU架构,当前设备不匹配

 

posted on 2025-08-21 06:09  GKLBB  阅读(158)  评论(0)    收藏  举报