安卓逆向(持续更新)

学习来自b站视频吾爱破解学习安卓逆向这档事

1.虚拟环境配置

这里使用雷电9模拟器

1.模拟器设置

先将root权限和system可写入权限打开

image-20240406151453060
image-20240406151504225

2.安装magisk

下载地址:Release Magisk v27.0 · topjohnwu/Magisk (github.com)

但是这个github版本的貌似不行

我用的博主的https://yzhqvq.lanzoux.com/b02vfzqmh

密码:52pj

下载后将他拖入模拟器中安装

1.第一次打开

选择允许

image-20240406152111578
image-20240406152329720

允许后退出(不要有任何的操作直接叉掉退出)

2.第二次打开

image-20240406153149565

选择下一步

image-20240406153132503

这里选择针对模拟器的选项——安装至系统分区

但是这里找了好多方法装了很多遍就是装不上,不装了

3.这里又换了一个版本b站上找的终于是成功了,一下就好了(一样的操作)

这里把附件上传到我的博客,需要的自取

http://www.giraffexiu.love/wp-content/uploads/2024/04/Magisk-Delta.zip

如下图这样就是安装成功

image-20240406170545505

4.直接关掉migisk然后手动重启雷电模拟器(不要点这个界面的重启按键)

重启后打开会出现一下报错(不用管)

image-20240406170929981

5.其他相关配置

1.打开zygisk
image-20240406171101361
2.打开侧栏的更多的共享文件夹

将lsposed的zip文件放到共享文件夹中,然后重启模拟器

image-20240406173116215

再次打开magisk然后进入下方模块从本地导入选择刚刚的共享文件夹

image-20240406173148585

点击导入的zip文件

image-20240406172940773

安装成功,再次重启模拟器,出现如下图,环境配置完成

image-20240406173148585

2.apk文件结构

本质:

apk文件的本质就是一个压缩文件( Android Package)

构成:

文件注释
assets目录存放apk文件的静态资源文件(图片,视频,音频)
lib目录用程序所需的本地库文件(.so 文件),用于支持不同硬件架构(如 ARM、ARM64、x86、x86_64)的设备
META-INF目录存储应用程序的元数据和签名信息(用于验证应用完整性和真实性的关键文件),例如清单文件摘要(MANIFEST.MF)、应用签名证书(CERT.RSA 或 CERT.SF)以及签名公钥(CERT.DSA)
res目录Android 应用中存放资源文件的地方,包括图形、布局、字符串等文件
AndroidMainfest.xml文件PK的应用清单信息,它描述了应用的名字,版本,权限,引用的库文件等等信
classes.dex文件classes.dex是java源码编译后生成的java字节码文件,APK运行的主要逻辑
resources.arsc文件resources.arsc是编译后的二进制资源文件,它是一个映射表,映射着资源和id,字符串、布局、颜色、尺寸等

特例:

如果还存在kotlin文件夹和okhttp3文件夹(导入了这个包进行开发)

表示该项目使用了kotlin进行开发(可能全部或者部分)

Kotlin 是一种跨平台的静态类型编程语言,由 JetBrains 开发。它可以被编译成 Java 字节码,也可以被编译成 JavaScript,甚至还可以编译成原生代码。Kotlin 在 Android 应用开发中得到了广泛应用,因为它与 Java 兼容,而且拥有更多现代化的语言特性

Kotlin 具有以下特点:

  1. 简洁性:Kotlin 通过减少样板代码和提供更简洁的语法来提高开发效率
  2. 安全性:Kotlin 引入了诸如空安全(null safety)和类型推断等特性,帮助开发者避免常见的编程错误
  3. 互操作性:Kotlin 可以与 Java 无缝互操作,这意味着你可以在现有的 Java 项目中逐渐引入 Kotlin,而不需要重写现有的代码
  4. 工具支持:Kotlin 与丰富的开发工具集成紧密,包括 Android Studio、IntelliJ IDEA 等
  5. 函数式编程支持:Kotlin 支持函数式编程范式,提供了诸如 lambda 表达式、高阶函数等功能
  6. 协程支持:Kotlin 引入了协程(coroutine)来简化异步编程,使得处理异步任务更加直观和易用

注意:后续操作请安装mt管理器(要登陆后使用)和np管理器以及开发者助手

3.应用双开以及原理

原理:

原理解释
修改包名让手机系统认为这是2个APP,这样的话就能生成2个数据存储路径,此时的多开就等于你打开了两个互不干扰的APP
修改Framework对于有系统修改权限的厂商,可以修改Framework来实现双开的目的
通过虚拟化技术实现虚拟Framework层、虚拟文件系统、模拟Android对组件的管理、虚拟应用进程管理 等一整套虚拟技术,将APK复制一份到虚拟空间中运行
以插件机制运行利用反射替换,动态代过滤的原理,hook了系统的大部分与system—server进程通讯的函数,以此作为“欺上瞒下”的目的,欺骗系统“以为”只有一个apk在运行,瞒过插件让其“认为”自己已经安装

实例:

1.提取安装包

打开mt管理器

image-20240406202348220
image-20240406202429708
image-20240406202738235

2.找到存储的位置修改包名

image-20240406202833795
image-20240406202910005
image-20240406202932939

选择自动签名

image-20240406203009110
image-20240406203136393

克隆成功

3.安装新的程序

image-20240406203206879
image-20240406203222560

成功

如果这里存在签名校验这里新的程序就可能出现崩溃或者闪退(因为这里的更改包名本质就是更改了程序的签名)

4.程序的汉化

使用专门的工具对外文版的软件资源进行读取、翻译、修改、回写等一系列处理,使软件的菜单、对话框、提示等用户界面显示为中文,而程序的内核和功能保持不变,这个过程即为软件汉化,基本上字符串都是在arsc里,建议一键汉化,然后再润色,少量没汉化到的字符串参考视频中的方法定位去逐个汉化

1.汉化流程

image-20240406204219371

2.实例操作(这里是根据大佬的做的学习测试的程序进行学习)

程序如果出现bug就进入应用信息将存储的缓存进行清空

image-20240406204838342

1.前置环境准备

1.先注册
image-20240406204921846
2.进入挑战第一关
image-20240406204948389
image-20240406205008640

2.更改英文的汉化

3.打开mt管理器,进入对应的apk文件查看
image-20240406210408768

注意这里更改的提取出来的安装包(如果在app目录下更改原来的程序会导致后续重新安装时删除源文件导致的安装包同样被删除)

进入查看

image-20240406205352483
4.打开右上角的搜索(并打开全局搜索)
image-20240406205528213

找到存储的文件

image-20240406205546357
5.打开找到的文件反编译,并修改
image-20240406205648684

找到这里的而字符串并改成中文

image-20240406205844782

记得保存

image-20240406210601255
6.然后安装更改后的应用
image-20240406210053538

这里可以使用破解的方法去除一下报错(后续学习),这里建议先将源文件删除后再安装

image-20240406210040130
7.卸载源文件之后重新安装
image-20240406210655262
image-20240406210710565

然后发现这里成功替换

3.更改其它语言的汉化

1.打开开发者助手,根据提示配置好后

存在这个图标image-20240406212658998

2.进入到刚刚这里的界面打开开发者管理器然后开始界面资源分析
image-20240406212906363
3.拖动进度条选择需要的文本并查看
image-20240406213111259
image-20240406213130028

选中该文本后复制

image-20240406213205679
4.退回到mt管理器中进行搜索操作
image-20240406213328650
1.找到文件并进入
image-20240406213344688
2.选择翻译模式
image-20240406213444908
3.选择第一个模式
image-20240406213521809
4.人工肉眼检索找到刚刚的字符串
image-20240406213600985
5.双击进入更改
image-20240406213649953
5.利用翻译插件一键翻译的高级操作(vip)客户
image-20240406214135576

我这里没有安装翻译成中文的插件

image-20240406213907852
6.再次重新安装(这里我们发现这次直接进行安装并没有受到因为签名不一样导致的阻拦)

这是因为我们上次阻拦是因为这里原本的而文件的签名和mt修改后的属于mt管理器生成的签名不一样,而这里我们进行的修改生成的文件和上一次一样都是mt管理器生成的都是一样的

查看你这里的文件发现修改成功

image-20240406214747564

4.更改最下面的一句话(视频告诉我们这里是放在dex文件夹里面的)

1.打开这个文件夹
image-20240406215100517

选择这里的第一个打开方式

image-20240406215150656
2.一样的方式开发者管理器提取然后检索寻找文件
image-20240406215327981
image-20240406215351757
3.搜索选择字符串搜索(取消完全匹配速度更快,成功率更高)
image-20240406215437180
image-20240406215452555
4.直接点击进入修改即可
image-20240406215551887
image-20240406215650271
5.保存并退出然后安装即可
image-20240406215829751

5.认识并学习AndroidMainfest.xml文件

1.相关知识

AndroidMainfest.xml文件是整个程序的应用信息描述文件

image-20240406220210547

定义应用信息的基本属性(常见的):

1.版本号

2.版本名

3.包名

4.应用权限

5.应用名称

6.应用图标路径

7.应用是否开启debug权限

2.利用np管理器进行实操(因为mt管理器需要会员)

一样的打开方式不再赘述了

image-20240406220917911

这里演示修改教程的程序的demo和图标

这种操作np管理器其实已经集成了较为快速的操作

这里的np要更新我们不得不下载成zip文件然后再mt管理器里面进行修改文件名为apk然后安装

image-20240406222147958

1.打开后选择通用编辑

image-20240406222628060

2.进入后之际点击图标更换即可

image-20240406222800186

3.直接更换名称demo即可

暂无评论

发送评论 编辑评论


				
|´・ω・)ノ
ヾ(≧∇≦*)ゝ
(☆ω☆)
(╯‵□′)╯︵┴─┴
 ̄﹃ ̄
(/ω\)
∠( ᐛ 」∠)_
(๑•̀ㅁ•́ฅ)
→_→
୧(๑•̀⌄•́๑)૭
٩(ˊᗜˋ*)و
(ノ°ο°)ノ
(´இ皿இ`)
⌇●﹏●⌇
(ฅ´ω`ฅ)
(╯°A°)╯︵○○○
φ( ̄∇ ̄o)
ヾ(´・ ・`。)ノ"
( ง ᵒ̌皿ᵒ̌)ง⁼³₌₃
(ó﹏ò。)
Σ(っ °Д °;)っ
( ,,´・ω・)ノ"(´っω・`。)
╮(╯▽╰)╭
o(*////▽////*)q
>﹏<
( ๑´•ω•) "(ㆆᴗㆆ)
😂
😀
😅
😊
🙂
🙃
😌
😍
😘
😜
😝
😏
😒
🙄
😳
😡
😔
😫
😱
😭
💩
👻
🙌
🖕
👍
👫
👬
👭
🌚
🌝
🙈
💊
😶
🙏
🍦
🍉
😣
Source: github.com/k4yt3x/flowerhd
颜文字
Emoji
小恐龙
花!
上一篇
下一篇