loader在进行动态链接的时候,会将有相同符号名的符号覆盖成LD_PRELOAD指定的so文件中的符号。换句话说,可以用我们自己的so库中的函数替换原来库里有的函数,从而达到hook的目的。这和Windows下通过修改import table来hook API很类似。相比较之下,LD_PRELOA ...
分类:
其他好文 时间:
2016-08-01 13:48:43
阅读次数:
167
一、模块机制module1.什么是module对于用户来说,一个module相当于一个so库。模块的主要目标是实现代码的共享。2.如何编写modulelua是通过table来实现模块的,典型的写法如下。localM={}----通常是加local的,如果不加,则M默认注册到_G中,require后,即使不return也可以直接..
分类:
其他好文 时间:
2016-07-30 22:49:11
阅读次数:
719
Ffmpeg 无处不在,自然android系统少不了它,折腾了不少时间完成 ndk编译ffmpeg,生成so库中引用了外部库librtmp,libx264。条条大路通罗马, 也许还有别的更好的方法去完成它,我没有仔细研究。我使用的方法完全可以达到我的预期目的。 一.选择编译环境 可以选择window ...
分类:
其他好文 时间:
2016-07-21 00:35:56
阅读次数:
826
使用math.h中声明的库函数还有一点特殊之处,gcc命令行必须加-lm选项,因为数学函数位于libm.so库文件中(这些库文件通常位于/lib目录下),-lm选项告诉编译器,我们程序中用到的数学函数要到这个库文件里找。本书用到的大部分库函数(例如printf)位于libc.so库文件中,使用lib ...
分类:
系统相关 时间:
2016-07-18 02:25:44
阅读次数:
206
一、为什么调用c的dll要用源码编译成so库 Android系统是基于linux内核的移动终端系统,而dll是在windows环境下生成和调用的c库,所以不可以直接为android系统调用。 二、安装 (I)安装cygwin 1.下载cygwincygwin可以在windows上虚拟unix编译环境 ...
分类:
移动开发 时间:
2016-07-06 17:52:30
阅读次数:
207
问题描述:Android如何调用第三方SO库;已知条件:SO库为Android版本连接库(*.so文件),并提供了详细的接口说明;已了解解决方案:1.将SO文件直接放到libs/armeabi下,然后代码中System.loadLibrary("xxx");再public native static ...
分类:
移动开发 时间:
2016-07-06 16:35:28
阅读次数:
210
Tools下的mdscongiguer 文件中 43行 oracle 配置 发现需要连接库 -lclntsh libclntsh.so 库是个什么东西呢? 分想一个知乎网站上的帖子: $ORACLE_HOME/lib/下的libclntsh.so.10.1到底是个什么神秘文件呢? Tools下的md ...
分类:
数据库 时间:
2016-07-05 15:32:07
阅读次数:
139
在AndroidStudio中引入so库,只需在app/jniLibs下放入so文件,然后在Module的build.gradle中加入:sourceSets{main{jniLibs.srcDirs=[‘libs‘]}}完整的build.gradle如下:applyplugin:‘com.android.library‘android{compileSdkVersion23buildToolsVersion"23.0.2"defaultConfig{..
分类:
移动开发 时间:
2016-06-29 01:18:10
阅读次数:
232
二、libbase 其实上面加载完SO库后,hook的功能我们完全可以自己在动态库中实现。而adbi作者为了方便我们使用,编写了一个通用的hook框架工具即libbase库。libbase依然在解决两个问题:1.获取要hook的目标函数地址;2.给函数打二进制补丁即inline hook。 关于获取 ...
分类:
移动开发 时间:
2016-06-27 19:56:40
阅读次数:
300