【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 动态库 ;


目录
相关文章
|
存储 安全 算法
【C++智能指针 相关应用】深入探索C++智能指针:跨进程、动态库与最佳实践
【C++智能指针 相关应用】深入探索C++智能指针:跨进程、动态库与最佳实践
265 5
|
存储 Java API
Android 浅度解析:mk预置AAR、SO文件、APP包和签名
Android 浅度解析:mk预置AAR、SO文件、APP包和签名
1720 0
|
消息中间件 Linux API
C/C++ 进程间通信system V IPC对象超详细讲解(系统性学习day9)
C/C++ 进程间通信system V IPC对象超详细讲解(系统性学习day9)
|
C语言 C++
【c++】c++ 编译链接时提醒 搜索动态库 -lxxxx 时跳过不兼容的libxxx.so
问题描述:这个问题的表现是——在通过g++或者gcc编译链接可执行程序的时候因为代码使用需要,需要添加对应 的三方库,这个时候在编译指令中 需要添加 动态库添加指令 告诉 ld 链接 对应名称的动态库、或者静态库。
816 0
【c++】c++ 编译链接时提醒 搜索动态库 -lxxxx 时跳过不兼容的libxxx.so
|
Linux API C++
超级好用的C++实用库之动态库加载器
超级好用的C++实用库之动态库加载器
139 0
|
安全 Android开发 C++
在 Android 中使用 Kotlin 调用动态库
在 Android 中使用 Kotlin 调用动态库
646 0
|
Linux C++
Linux C/C++动态库制作
Linux C/C++动态库制作
|
编译器 API C++
【C++ 动态库设计】动态库中的模板函数:解决如果将模板函数封装成API库
【C++ 动态库设计】动态库中的模板函数:解决如果将模板函数封装成API库
552 0
|
SQL API 开发工具
【C/C++ API设计】C/C++ API与动态库设计:从入门到精通
【C/C++ API设计】C/C++ API与动态库设计:从入门到精通
1598 0
|
Linux 编译器 开发者
C/C++动态库与静态库 的详细解析
C/C++动态库与静态库 的详细解析
1342 0

热门文章

最新文章