关于SO的动态注册在这里补上一篇科普贴
so文件是unix(一个系统的名字)的动态连接库,是二进制文件,作用相当于windows下的.dll文件。
补充:
在Android中调用动态库文件(*.so)都是通过jni的方式。
Android中加载so文件的提供的API:
void System.load(String pathName);
说明:pathName:文件名+文件路径;
也就是说Java层的代码太容易被逆向或者破解了,由于一些底层的算法,
比如说账号登陆的算法,不想被外界看到就需要这种底层的SO文件,在SO层内部对密码进行加密,
然后对内外都留有接口,方便SO层跟Java层之间互相通信,或者是互相调用。
我们导入一个SO文件到IDA进行查看
(1)Exports窗口是导出表(方便Java层能调用SO层的函数)
(2)Imports窗口是导入表(方便SO层调用Java层的函数)
小贴士:如果找不到IDA里面看不到这两个窗口的话