Lazy loaded image
安卓逆向
NDK开发小结
字数 482阅读时长 2 分钟
2021-8-31
2024-7-5
type
status
date
slug
summary
tags
category
icon
password

一、JNI

作用:用于java代码和C++、c代码的交互(代码混编)。
分类使用:Jni静态注册、jni动态注册

二、静态注册

1、定义被native修饰的方法

2、根据java代码生成.h头文件(javah -jni 类的包名路径)

3、编写C/C++代码,导入.h头文件,实现我们.h头文件中方法

4、编写(配置)两个mk文件:application.mk/android.mk

5、通过ndk-build生成so文件

6、java代码中加载so文件/libs文件下去头去尾(头:lib;尾:.so)

7、build.gradle文件配置

8、main创建jniLibs文件夹将so文件复制

三、动态注册

1、.c文件编写JNI_OnLoad

FindClass处填写对应类

2、.c文件定义方法结构体

3、.c文件对应C函数

4、java代码逻辑

四、SO库获取java层字段值

五、SO库调用JAVA函数

上一篇
smali语法基础详解
下一篇
实战分析自毁程序Crackme IDA动态调试

评论
Loading...