Android逆向(教程更新)|NDK开发教程_动态注册

  • A+
所属分类:移动安全

本篇是《Android逆向入门教程》的第七章第1.4节,具体课程详情可点击下方图片查看:

Android逆向(教程更新)|NDK开发教程_动态注册

每一章节详细内容及实验材料可通过加入底部免费的【Android逆向成长计划】星球获得!


声明:所有实验含部分虚构,纯属技术练习,未对真实环境造成任何影响。也请勿将相关技术用于非法操作,否则责任自负。


0x01 实验目的


动态注册,实现一个计算器的编写,功能为加减乘除


0x02 实验步骤


1)新建一个项目为Calc,然后一路next,完成项目的创建


Android逆向(教程更新)|NDK开发教程_动态注册


2)然后再在layout布局文件中定义我们的控件布局,详细布局代码见下图:


Android逆向(教程更新)|NDK开发教程_动态注册


Android逆向(教程更新)|NDK开发教程_动态注册


布局代码如下:


Android逆向(教程更新)|NDK开发教程_动态注册


3)然后在MainActivity编写我们的程序代码,首先绑定控件,之后对控件初始化(由于控件较多,单独创建一个方法用于控件的初始化)


Android逆向(教程更新)|NDK开发教程_动态注册


Android逆向(教程更新)|NDK开发教程_动态注册


4)设置监听获取点击事件及编辑框输入的值(由于四个按钮监听方式相同,可采用switch-case方式来监听)


Android逆向(教程更新)|NDK开发教程_动态注册


Android逆向(教程更新)|NDK开发教程_动态注册


5)定义c层实现的native方法声明,到此java层代码已经完成


Android逆向(教程更新)|NDK开发教程_动态注册


6)然后在项目下新建一个文件夹jni,然后新建一个calc.c的文件,编写我们的c层代码


Android逆向(教程更新)|NDK开发教程_动态注册


7)首先在c文件中导入我们的头文件,然后实现我们在java层的方法


Android逆向(教程更新)|NDK开发教程_动态注册


8)绑定java层方法和c层方法,在jni接口中查找JNINativeMethod结构体,完成结构体


Android逆向(教程更新)|NDK开发教程_动态注册


9)然后在jni接口中查找RegisterNatives,注册相应的类以及方法


Android逆向(教程更新)|NDK开发教程_动态注册


Android逆向(教程更新)|NDK开发教程_动态注册


Android逆向(教程更新)|NDK开发教程_动态注册


10)然后实现动态注册JNI_OnLoad,最后的c层代码如下

Android逆向(教程更新)|NDK开发教程_动态注册


Android逆向(教程更新)|NDK开发教程_动态注册


11)c层代码编写完成后,将两个mk文件拖到jni目录下,更改Android.mk文件的模块名称和源文件。然后来到项目jni的路径下执行ndk-build,之后在java层加载so库,附上java层的代码


Android逆向(教程更新)|NDK开发教程_动态注册


Android逆向(教程更新)|NDK开发教程_动态注册


Android逆向(教程更新)|NDK开发教程_动态注册


Android逆向(教程更新)|NDK开发教程_动态注册


12)最后运行项目,完成实验


Android逆向(教程更新)|NDK开发教程_动态注册


实验项目:


Android逆向(教程更新)|NDK开发教程_动态注册
0x03:写在最后
本篇实验涉及的相关代码材料文件等在公众号后台回复“7.1.4材料”或加入星球即可获取。



团队公开知识库链接:

https://www.yuque.com/whitecatanquantuandui/xkx7k2

知识星球:


Android逆向(教程更新)|NDK开发教程_动态注册

Android逆向(教程更新)|NDK开发教程_动态注册

往期经典


Android逆向入门成长计划【免费知识星球+微信交流群】

《从入门到秃头之PWN蛇皮走位》

漏洞挖掘|条件竞争在漏洞挖掘中的妙用

漏洞笔记|记一次与XXE漏洞的爱恨纠缠

移动安全-APP渗透进阶之AppCan本地文件解密

内网渗透之从信息收集到横向独家姿势总结-linux篇

HVV前奏|最新版AWVS&Nessus破解及批量脚本分享

Android抓包总结-HTTPS单向认证&双向认证突破

图形验证码绕过新姿势之深度学习与burp结合


Android逆向(教程更新)|NDK开发教程_动态注册

扫描二维码 |关注我们


本文始发于微信公众号(WhITECat安全团队):Android逆向(教程更新)|NDK开发教程_动态注册

发表评论

:?: :razz: :sad: :evil: :!: :smile: :oops: :grin: :eek: :shock: :???: :cool: :lol: :mad: :twisted: :roll: :wink: :idea: :arrow: :neutral: :cry: :mrgreen: