JNI
文章平均质量分 75
JNI
CYRUS STUDIO
公众号:CYRUS STUDIO
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
Android 下内联汇编开发指南:从基础语法到多架构适配全掌握
由于 Android 设备可能使用不同的 CPU 架构(如 ARM、ARM64、x86 和 x86_64),使用条件编译和 NDK 的特性,我们可以让代码适配不同的 CPU 架构。) 指令,判断当前编译架构并编写相应的内联汇编代码。在 Android 开发中,编写兼容不同架构的内联汇编代码时,可以通过条件编译来处理不同的指令集。占位符用于在汇编指令中插入 C++ 变量,格式为 %0、%1 等,对应输出和输入操作数的顺序。汇编指令:这是我们想要执行的汇编代码,通常是 ARM 或 ARM64 指令。原创 2024-11-09 02:26:23 · 1614 阅读 · 0 评论 -
frida脚本,自动化寻址JNI方法
2. 在 python 脚本中加载 jni_addr.js 并调用 get_jni_method_addr 方法打印指定类中所有 native 方法的内存地址。1. 通过 ArtMethod 结构体找到 jni 方法在内存中的地址,并把寻址方法通过 rpc.exports 暴露给 Python 脚本调用。运行python脚本,执行结果如下。具体原理可以参考这篇文章【原创 2024-10-25 22:44:15 · 859 阅读 · 0 评论 -
使用 Frida 定位 JNI 方法内存地址
ArtMethod 是 Android Runtime (ART) 中一个非常重要的数据结构,它在 Android 系统中用于表示每个 Java 方法。entry_point_from_jni_ 是 ArtMethod 结构体的一个字段,专门用于存储一个 Java 方法的 JNI(Java Native Interface)入口点。原创 2024-10-11 05:32:56 · 1067 阅读 · 0 评论 -
Windows下NDK开发环境搭建
NDK NDK是一个交叉编译工具。 什么是交叉编译? 简单来说就是在某一个平台下,编译出另一个平台下可以运行的程序。 ndk下载地址 Android NDKr10下载地址: http://dl.google.com/android/ndk/android-ndk32-r10-windows-x86.zip http://dl.google.com原创 2014-12-28 17:17:51 · 4347 阅读 · 0 评论 -
【Android】使用NDK定位Crash
有时app或者游戏突然崩溃只提示如下信息,要查找错误的原因有点感觉无从下手,因为提示信息太少了。 02-27 10:57:15.736: A/libc(32000): Fatal signal 11 (SIGSEGV) at 0x0000000c (code=1), thread 32014 (Thread-1461) 02-27 10:57:15.736: A/libc(32000): Send stop signal to pid:32000 in debugger_signal_handler 这时原创 2015-02-27 11:13:19 · 1564 阅读 · 0 评论 -
JNI使用总结
相关概念 什么是jni 关于nkd 什么是交叉编译 C/C++语言常见术语 库函数 头文件 函数库 HelloWorld Java调用CC方法 CC方法调用Java方法 相关api 示例 数据类型的对应 jstring转换char char转换jstring C与C++中JNI实现的区别 JNIEnv 方法调用的区别 Androidmk说明 绕过JNI直接调用C函数 中文乱码问题 解决方法名冲突 注册JNI函数 静态注册 动态注册原创 2014-12-28 22:42:08 · 3240 阅读 · 0 评论 -
解决JNI调用在Android5.0+闪退问题
日志信息如下: 08-14 15:48:41.127: A/art(5526): art/runtime/check_jni.cc:70] JNI DETECTED ERROR IN APPLICATION: illegal class name 'xxx.xxx.xxx' 08-14 15:48:41.127: A/art(5526): art/runtime/check_jni.cc:70] (shoul原创 2015-08-14 17:06:20 · 9968 阅读 · 1 评论
分享