Android NDK 开发
不局限于应用层的开发
闽农qq:994955138
闽南老农qq:994955138
展开
-
Android Studio NDK开发之环境配置和简单实例
一、首先就是创建一个项目,写一个本地方法的类,然后执行Build->make project在SourceCodeHook2\app\build\intermediates\classes\debug\sourcecodehook\example\com\sourcecodehook\生成HookSourceJNI.class文件hsf是so文件的文件名。二、配置NDK原创 2017-09-20 14:56:43 · 508 阅读 · 0 评论 -
Unresolved inclusion 解决用eclipse开发ndk头部文件报错的问题
我们用Eclipse进行ndk开发的时候经常会出现头部文件报错的问题,类似Unresolved inclusion: <jni.h>。经常是想尽办法还是没用,头部文件就是引用不了。 其实这是C++库的引用问题。我们开发ndk的时候,因为是安卓项目,经常选用的是Java项目结构显示。所以不容易看出问题所在但是只要切换,C++的项目结构,就很快会发现问题对,就是Includes这个目...原创 2018-06-20 15:10:14 · 685 阅读 · 0 评论 -
Unable to recognise the format of the input file `./libs/mips64/libxxx.so' 多平台编译问题解决
我们在使用dnk开发时,经常会使用到多平台第三方so库,实现多平台编译。在引用一些现有的第三方库的,可能由于配置不正确或者第三方so包不兼容。造成报错。如下图,jni里有对应6个平台的文件夹。第三方so库也要按照eabi平台,放入各自的文件夹。不能6个文件夹中放置同一个so包.Android.mk的配置,如下配置,就可以自动到jni各个平台文件夹读取各自的so文件...原创 2018-07-09 16:08:08 · 1827 阅读 · 0 评论 -
IDA反汇编关于浮点型数据的转换1.0 = 1065353216
我们在使用IDA 逆向so的时候,经常会遇见莫名其妙的特别大的数据。比如1.0 ,使用IDA反编译之后 会变成1065353216。这到底是怎么回事呢?这就要谈到 IEEE 754 标准(这里不做介绍,请自行百度)。使用太上仪表(http://www.styb.cn/cms/ieee_754.php#)把1.0转化成二进制数就是00111111100000000000000000000000。所以...原创 2018-07-10 18:18:02 · 3318 阅读 · 0 评论 -
Obfuscator-LLVM4.0编译和Android NDK配置(Linux 环境)
Obfuscator-llvm的最新版本是4.0 github地址是https://github.com/obfuscator-llvm/obfuscator.git 。Linux系统安装环境还是比较容易的,这个就不介绍了。直接开始编译Obfuscator-LLVM。1.下载ollvm源码 git clone -b llvm-4.0 https://github.com/obfuscato...原创 2018-07-17 10:56:17 · 2207 阅读 · 0 评论 -
多个ClassLoader加载同一个so动态库失败
有时候我们需要做热更新,所以如果更新包里面有so库的话。可能需要重新加载。但是更新前的classLoader已经加载过该动态库了,Java VM 为了确保ClassLoader的命名空间独立性。不允许两个ClassLoader加载同一个动态库。那么只要把更新下来的so文件命名成一个新的名字,并且使用两个不同的没有继承关系的CLassLoader加载就行了。 你以为这样就可以了吗?不是的。...原创 2018-07-24 19:25:42 · 2627 阅读 · 0 评论 -
Android Hook JNI方法
有时候我们需要知道在动态库中调用了哪些Java的方法,一般可以通过hook来跟踪。那么JNI方法在哪里可以hook呢?我们在系统动态库的libart.so中可以找到这些函数知道函数在哪里,Hook就很简单了...原创 2018-09-18 09:15:57 · 2318 阅读 · 0 评论