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

admin 2021年1月20日07:08:06评论83 views字数 795阅读2分39秒阅读模式

0x00 背景

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

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

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

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

0x01 实验目的

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

0x02 实验步骤

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

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


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

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

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


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

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


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

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

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

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

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

  

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

    

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

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


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


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


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

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

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

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

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

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

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

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

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




0x03 总结

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


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

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

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

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

  •  执行ndk命令生成so文件

  •  回到java层,加载so;

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

         


本文始发于微信公众号(WhITECat安全团队):移动安全(四)|NDK开发教程_JavaToC

  • 左青龙
  • 微信扫一扫
  • weinxin
  • 右白虎
  • 微信扫一扫
  • weinxin
admin
  • 本文由 发表于 2021年1月20日07:08:06
  • 转载请保留本文链接(CN-SEC中文网:感谢原作者辛苦付出):
                   移动安全(四)|NDK开发教程_JavaToChttps://cn-sec.com/archives/248628.html

发表评论

匿名网友 填写信息