【Android 逆向】Android 中常用的 so 动态库 ( /system/lib/libc.so 动态库 | libc++.so 动态库 | libstdc++.so 动态库 )

简介: 【Android 逆向】Android 中常用的 so 动态库 ( /system/lib/libc.so 动态库 | libc++.so 动态库 | libstdc++.so 动态库 )

文章目录

一、拷贝并分析 Android 中的 /system/lib/libc.so 动态库

二、拷贝并分析 Android 中的 /system/lib/libc++.so 动态库

三、拷贝并分析 Android 中的 /system/lib/libstdc++.so 动态库

总结





一、拷贝并分析 Android 中的 /system/lib/libc.so 动态库


/system/lib/libc.so 是 C 函数标准库 ;


执行


cp /system/lib/libc.so /sdcard/Pictures


命令 , 将 libc.so 拷贝到手机的 SD 卡中 , 从 SD 卡可以将该动态库拷贝到 Windows 文件中 ;

image.png



使用 64 位的 IDA 打开上述动态库 ;

image.png



libc.so 中有以下几个导入库 , dlopen , dlerror , dlclose ;


加载 libc.so 库之前 , 要先加载 /system/bin/linker 库 , 这是 so 动态库的加载模块 , 该动态库中 , 主要是实现了 dlopen 方法 ;


image.png






二、拷贝并分析 Android 中的 /system/lib/libc++.so 动态库


/system/lib/libc++.so 动态库是 C++ 程序中使用的动态库 ;


使用下面的命令拷贝该动态库 ;


cp /system/lib/libc++.so /sdcard/Pictures

image.png



使用 64 位的 IDA 打开上述动态库 ; 搜索 std , 即可查看常用的标准库中的函数 ;


image.png






三、拷贝并分析 Android 中的 /system/lib/libstdc++.so 动态库


/system/lib/libstdc++.so 动态库是 C++ 程序中使用的动态库 ;


使用下面的命令拷贝该动态库 ;


cp /system/lib/libstdc++.so /sdcard/Pictures


image.png


使用 64 位的 IDA 打开上述动态库 ;


该 libstdc++.so 动态库 , 主要是导出 new 和 delete 函数 ,


image.png


该动态库的内部实际上使用 malloc 实现 , malloc 来自于 libc.so 动态库 ;

image.png



总结

/system/lib/libc.so 动态库是被引用最多的函数库 ,

/system/lib/libc++.so 动态库 和 /system/lib/libstdc++.so 动态库 都依赖于 libc.so 动态库 ;


目录
相关文章
|
存储 Java API
Android 浅度解析:mk预置AAR、SO文件、APP包和签名
Android 浅度解析:mk预置AAR、SO文件、APP包和签名
3086 0
|
消息中间件 Linux API
C/C++ 进程间通信system V IPC对象超详细讲解(系统性学习day9)
C/C++ 进程间通信system V IPC对象超详细讲解(系统性学习day9)
|
安全 Java Shell
Android发送广播时报错:Sending non-protected broadcast xxxxxxx from system xxxxxxxxxx
Android发送广播时报错:Sending non-protected broadcast xxxxxxx from system xxxxxxxxxx
2451 0
|
安全 Android开发 C++
在 Android 中使用 Kotlin 调用动态库
在 Android 中使用 Kotlin 调用动态库
1062 0
|
API Android开发
Android12 内置应用问题 mismatch in the <uses-library> tags between the build system and the manifest
Android12 内置应用问题 mismatch in the <uses-library> tags between the build system and the manifest
1259 0
|
Android开发
Android修改默认system/bin/下可执行程序拥有者和权限,使用实例,只有root和系统app权限才能执行某个命令。
Android修改默认system/bin/下可执行程序拥有者和权限,使用实例,只有root和系统app权限才能执行某个命令。 【5月更文挑战第2天】
1192 0
|
编译器 Android开发
深度解读Android崩溃日志案例分析1:so崩溃
深度解读Android崩溃日志案例分析1:so崩溃
1115 1
|
C语言 C++ Windows
【c++】设置控制台窗口字体颜色和背景色(system和SetConsoleTextAttribute函数 )(内含超好玩的c++游戏链接)
【c++】设置控制台窗口字体颜色和背景色(system和SetConsoleTextAttribute函数 )(内含超好玩的c++游戏链接)
1967 0
【c++】设置控制台窗口字体颜色和背景色(system和SetConsoleTextAttribute函数 )(内含超好玩的c++游戏链接)
|
Java Android开发 C++
[笔记]Visual Studio 2015 开发安卓so库JNI层——回调调用
[笔记]Visual Studio 2015 开发安卓so库JNI层——回调调用
352 0