zoukankan      html  css  js  c++  java
  • 安卓逆向4.Android Studio JNI静态注册(一个简单的JNI静态注册流程)

    1.新建一个安卓项目,名称为:JniStaticTest

    2.在MainActivity中创建一个名为SayHello的native方法

    3.来到JniStaticTest\app\src\main\java目录下,我们能看到有个com文件夹。这一步需要注意,路径不能出错!

    4.打开CMD窗口,并且切换到步骤3所示的路径下,输入:javah -jni com.crackme.jnistatictest.MainActivity
    注意:如果上述操作完全没错,但依然提示找不到xxx的类文件!需要先使用命令set classpath=JniStaticTest\app\src\main\java来进行切换。

    5.成功后回到Android Studio项目面板,能看到生成了一个com_crackme_jnistatictest_MainActivity.h文件

    6.在项目中创建一个名叫jni的文件夹(如下图所示,文件夹路径和名称都必须正确才行),并且将步骤5生成的.h头文件移动到jni文件夹下

    7.在Jni文件夹下新建一个TestJniStatic.cpp的文件,并写入如下代码(需要注意的是导出函数的声明必须和.h头文件的一致):
    #include "com_crackme_jnistatictest_MainActivity.h"
    
    JNIEXPORT jstring JNICALL Java_com_crackme_jnistatictest_MainActivity_SayHello(JNIEnv * env, jobject)
    {
       return env->NewStringUTF("Hello World");
    }

     

    8.在Jni文件夹下添加Android.mk文件,并插入以下代码:
    LOCAL_PATH := $(call my-dir)
    include $(CLEAR_VARS)                   #会清理除了LOCAL_PATH歪的其他LOCAL文件路径
    LOCAL_ARM_MODE := arm                   #模块指令集
    LOCAL_MODULE    := TestJniStatic        #模块名称
    LOCAL_SRC_FILES := TestJniStatic.cpp    #源文件名
    include $(BUILD_SHARED_LIBRARY)         #编译为So库文件

    9.在Jni文件夹下添加Application.mk文件,并插入以下代码:
    APP_ABI := armeabi-v7a x86

    10.在cmd窗口中切换到Jni目录下,并执行ndk-build命令

    11.ndk-build命令执行成功后,项目中的libs目录下能看到生成了so库文件

    12.在App文件夹下的build.gradle文件里,找到defaultConfig项,在其项里添加如下代码(必须,否则会导致LoadLibrary时加载失败):
    ndk
    {
          moduleName "TestJniStatic"
    }
    sourceSets.main
    {
          jni.srcDirs = []
          jniLibs.srcDir "src/main/libs"
    }

    13.回到MainActivity中新增如下两断代码(注意:LoadLibrary中的模块名称必须去头去尾,否则无法加载成功!):

    14.运行测试效果

    源文件下载地址:

    链接:https://pan.baidu.com/s/103h8dksZ8WQhI9WahQXbsQ
    提取码:gmp4

     

  • 相关阅读:
    OpenCV笔记——cvFloodFill漫水填充算法
    C# 总结 随笔
    MYSQL存储过程 随笔
    MYSQL总结 随笔
    xPath 总结 随笔
    Javascript 总结 随笔
    linux中top查看cpu使用率超过100%
    页面优化小记1
    基于数据库的多语言解决方案
    基于消息队列的日志组件
  • 原文地址:https://www.cnblogs.com/fuhua/p/12695436.html
Copyright © 2011-2022 走看看