app逆向
什么是逆向:https://blog.csdn.net/eastmount/article/details/107591832
app逆向
环境安装
Magisk
安装包:https://www.123pan.com/s/6zyrVv-kxor3.html
Magisk 是一套用于定制 Android 的开源软件,支持高于 Android 5.0 的设备。
以下是一些功能亮点:
- MagiskSU:为应用程序提供 root 访问权限
- Magisk 模块:通过安装模块修改只读分区
- MagiskHide:从根检测 / 系统完整性检查中隐藏 Magisk(Shamiko)
- MagiskBoot : 最完整的安卓启动镜像解包和重新打包工具
LSPosed
安装包https://www.123pan.com/s/6zyrVv-kxor3.html
1.模拟器打开电脑共享文件夹,将LSPosed拖进去,返回Masisk点击模块
2.安装模块,重启模拟器
初识APK文件结构、双开、汉化、基础修
文件结构
apk 全称 Android Package,它相当于一个压缩文件,只要在电脑上将apk后缀改为zip即可解压。
应用双开原理
双开:简单来说,就是手机同时运行两个或多个相同的应用,例如同时运行两个微信
反编译工具MT:
下载地址:https://pan.baidu.com/s/1cFWTLn14jeWfpXxlx3syYw?pwd=nqu9#list/path=%2F
反编译工具NP:
下载地址:https://pan.quark.cn/s/b787f4b2430d#/list/share/4d0fc36179b44457901685bef40abb47-14663
1.双开
通过修改包名达到双开
【VirtualAPP 双开系列08】如何实现多开 - UID
https://blog.csdn.net/u014294681/article/details/116270479
汉化
测试
xml
回到MT,查看
搜索,高级搜索
点击反编译
翻译后重新安装
保存修改后,签名会发生变化,导致安装不成功
关闭签名校验,还是不行,(这里需要核心破解)
卸载掉原来的app在安装
Arsc
使用开发者助手进行识别翻译
回到MT搜索
选择翻译模式
点第一个
修改
dex
搜索到后进行修改
保存并退出
安装启动
AndroidManifest.xml
AndroidManifest.xml文件是整个应用程序的信息描述文件,定义了应用程序中包含的Activity,Service,Content provider和BroadcastReceiver组件信息。每个应用程序在根目录下必须包含一个AndroidManifest.xml文件,且文件名不能修改。它描述了package中暴露的组件,他们各自的实现类,各种能被处理的数据和启动位置。
使用NP修改图标,名字等
将图标复制到共享文件夹
修改
smali,vip终结者
1.了解JVM、Dalvik、ART
2.初识smali语法
3.修改smali
工具
MT/NP
jadx-gui
下载地址:https://download.fastgit.org/skylot/jadx/releases/download/v1.2.0/jadx-gui-1.2.0-with-jre-win.zip
打开.apk反编译
核心破解
- 安装核心破解并激活
- JVM、Dalvik、ART
- JVM是JAVA虚拟机,运行JAVA字节码程序
- Dalvik是Google专门为Android设计的一个虚拟机,Dalvik有专属的文件执行格式dex(Dalvik executable)
- Art(Android Runtime)相当于Dalvik的升级版,本质与Dalvik无异
- smali及其语法
smali是Dalvik的寄存器语言,smali代码是dex反编译而来的。
数据类型对应
常用指令
修改方法:修改判断、强制跳转、修改寄存器的值 - 寄存器
在smali里的所有操作都必须经过寄存器来进行:本地寄存器用v开头数字结尾的符号来表示,如v0、 v1、v2。 参数寄存器则使用p开头数字结尾的符号来表示,如p0、p1、p2。特别注意的是,p0不一定是函数中的第一个参数,在非static函数中,p0代指“this”,p1表示函数的第一个 参数,p2代表函数中的第二个参数。而在static函数中p0才对应第一个参数(因为Java的static方法中没有this方法) - demo测试
需要会员
反编译,搜索关键词(大会员),这里需要注意如果识别不了就将中文编译成unicode码
对于开发者而言,在打包应用时,最好对代码进行混淆,否则逆向人员轻而易举得进行Crack,或者说在写代码的时候就不要用isvip、getvip等易辨识的单词作为方法名