
jni
Kawa103
这个作者很懒,什么都没留下…
展开
-
记录一个jni动态注册不经意犯的错
错误提示:JNI DETECTED ERROR IN APPLICATION: jstring has wrong type如果你的方法是这样写的public native void init(String path) ;jni里面就要写成如下void init(JNIEnv *env,jobject instance, jstring path_) {}重点是jobj...原创 2020-03-17 14:17:09 · 530 阅读 · 0 评论 -
记一次使用OLLVM增加so文件的分析难度(2)——解决arm64-v8a编译出错
上一篇我用的是android-ndk-r10d的ndk,编译arm64-v8a是有问题的,解决了下面那个“错误提示1”的问题之后,还会有个一个新问题的,问题如下:/opt/android-ndk-r10d/toolchains/aarch64-linux-android-4.9/prebuilt/linux-x86_64/lib/gcc/aarch64-linux-android/4.9/.....原创 2018-12-25 17:08:07 · 1845 阅读 · 0 评论 -
简单异或加密处理
异或的理解: 将十进制转换成二进制进行异或,相同的为0 ,不相同的为1,可以看下图理解,异或之后得出的二进制再转十进制,之后的就是异或后的值断点查看过程:异或前:异或后:Java版代码: private static byte[] keyBytes = {1,5,3,4,5}; public static String xor_go(String en...原创 2018-12-17 11:12:07 · 3510 阅读 · 0 评论 -
JNI 获取系统类加载器处理反制Xposed框架
在网上找了很久没有找到 jni 相应的代码,基本都是java的下面是全部代码:/** * 检测xposed * checkXposed */bool checkXposed(JNIEnv *env) { //找到ClassLoader类 jclass classloaderClass = env->FindClass("java/lang/ClassLoa...原创 2018-12-11 17:17:03 · 1655 阅读 · 1 评论 -
记一次使用OLLVM增加so文件的分析难度(1)
编译ollvm源码(前提:我的这些都是放在/opt文件夹里面操作的)1. git clone -b obfuscator-llvm-4.0 https://github.com/obfuscator-llvm/obfuscator.git2. mkdir build //这个目录主要是用于存放编译文件而已,其实不要紧的,到时都只是拿里面的编译后的文件来用而已3. cd build4.下面这个...原创 2018-12-21 16:28:35 · 1359 阅读 · 0 评论 -
Android libjpeg图片压缩模块
首先去这个地址下载:https://github.com/bither/bither-android-lib解压获取这个libjpeg-turbo文件的文件,里面只留jni文件夹,其他全部删除,之后进行编译libjpeg.so包,编译的时候先要进入到jni文件夹里面,执行下面命令命令:ndk-build APP_ABI=armeabi-v7a,armeabi 编译成功之后会在j...原创 2018-07-16 15:26:34 · 632 阅读 · 1 评论 -
JNI 获取包名
/** * 获取上下文 * @param env * @return */jobject getApplication(JNIEnv *env) { jobject application = NULL; jclass activity_thread_clz = env->FindClass("android/app/ActivityThread"); if...原创 2018-06-27 18:21:06 · 4565 阅读 · 0 评论 -
Android安全防护(2)-动态注册JNI方法
动态注册jni方法的好处就是增加逆向的分析难度两个对比较就会很容易发现没有加密的很容易就会知道那个方法是干啥的箭头1是根据javah自动生成的方法名箭头2是自定义方法名的,上面是加密过后的方法名 用动态注册的方式最主要的是建立一个映射表 //映射方法表static JNINativeMethod methods[] = { {"test...原创 2018-06-19 13:16:44 · 341 阅读 · 0 评论 -
Android安全防护(1)-实现一个简单的so文件反调试
引入的包:#include <sys/ptrace.h> 重新JNI_OnLoad JNIEXPORT jint JNI_OnLoad(JavaVM *vm, void *reserved){ ptrace(PTRACE_TRACEME,0 ,0 ,0); return JNI_VERSION_1_6;}原理:ptrace被广泛...原创 2018-06-07 17:25:32 · 1146 阅读 · 0 评论 -
Android安全防护(3)-增加so文件的调试难度
人家说在NDK开发中,源文件的函数都有一个默认的visibility属性为public,编译生成的so文件中几乎所有的函数名、全局变量名均被导出,不过我感觉设置了好像作用也不太大,为了有这么一个知识点,还是写一遍吧。 其实关键的还是这个属性 -fvisibility=hidden 在Application.mk里面的写法是 LOCAL_CFLAGS := -fvisibility=h...原创 2018-06-21 11:14:17 · 378 阅读 · 0 评论 -
javah用法
第一种用法:前提是已经在这个路径F:\demo\FFmpegDemo\app\build\intermediates\classes\debug javah -d F:\demo\FFmpegDemo\app\src\main\java -jni com.kawa.ffmpeg.utils.FFmpegUtils原创 2018-05-30 14:43:50 · 3790 阅读 · 0 评论