移动安全(四)|NDK开发教程_JavaToC

2020-09-01 6,798

0x00 背景

    本文依然是团队大佬 非尘 学习逆向的学习笔记,这一系列都将以实验的方式进行知识点学习和总结,后续将持续更新,不喜勿喷~

本文及后续文章中使用到的靶场地址:

https://adworld.xctf.org.cn/task/task_list?type=mobile&number=6&grade=0

0x01 实验目的

        在c层定义字段,java层调用该字段。

0x02 实验步骤

    1)新建一个安卓工程(Android Application project),给该应用命名,然后一路next,直至finish


2)然后在src/com.example.feichen/MainActivity编写我们的java代码


3)定义调用native层的方法,然后弹窗显示在c层编写的字符串


4)在cmd中进入src路径下,生成jni.h的头文件

  

    

5)新建一个文件夹,将.h文件单独放过去,并重命名(太长),然后在该文件夹下新建一个.c文件,编写c层方法


6)将Android.mk和Application.mk放到JNI目录下


               


7)然后cmd到jni路径,编译生成so文件,再刷新一下项目,在libs下可找到生成的so文件

8)最后在主函数MainAcitvity函数中加载so库,然后启动程序生成apk




0x03 总结

        jni静态注册相关知识点提炼如下:


  • 定义字符或者是方法,被native修饰;

  •  java -jni 命令,生成被native的方法的jni接口;

  • .h里面的东西赋值到.c,补充完整:添加参数、添加方法体;

  •  拖入(配置)两个mk文件:

  •  执行ndk命令生成so文件

  •  回到java层,加载so;

  • 加完完保存,然后运行;

         


本文作者:辞令_WhITECat

本文为安全脉搏专栏作者发布,转载请注明:https://www.secpulse.com/archives/140077.html

Tags:
评论  (0)
快来写下你的想法吧!

辞令_WhITECat

文章数:4 积分: 50

WhITECat安全团队是起源实验室合作安全团队,欢迎各位大佬关注“WhITECat安全小组”公众号了解更多!

安全问答社区

安全问答社区

脉搏官方公众号

脉搏公众号