调用博主最近登录时间
生活中的HYGGE
第一篇Android逆向:App双开、汉化、基本内容修改

第一篇Android逆向:App双开、汉化、基本内容修改

hygge
2023-07-23 / 0 评论 / 428 阅读 / 正在检测是否收录...

lkexu2v9.png

一、基本概念

1.1 Magisk介绍

Magisk 是一套用于定制 Android 的开源软件,支持高于 Android 5.0 的设备。

以下是一些功能亮点:

  • MagiskSU:为应用程序提供 root 访问权限
  • Magisk 模块:通过安装模块修改只读分区
  • MagiskHide:从根检测 / 系统完整性检查中隐藏 Magisk(Shamiko)
  • MagiskBoot : 最完整的安卓启动镜像解包和重新打包工具

1.2 Apk结构

apk 全称 Android Package,它相当于一个压缩文件,只要在电脑上将apk后缀改为zip即可解压。

文件注释
assets目录存放APK的静态资源文件,比如视频,音频,图片等
lib 目录armeabi-v7a基本通用所有android设备,arm64-v8a只适用于64位的android设备,x86常见用于android模拟器,其目录下的.so文件是c或c++编译的动态链接库文件
META-INF目录保存应用的签名信息,签名信息可以验证APK文件的完整性,相当于APK的身份证(验证文件是否被修改)
res目录res目录存放资源文件,包括图片,字符串等等,APK的脸蛋由他的layout文件设计
AndroidMainfest.xml文件APK的应用清单信息,它描述了应用的名字,版本,权限,引用的库文件等等信息
classes.dex文件classes.dex是java源码编译后生成的java字节码文件,APK运行的主要逻辑
resources.arsc文件resources.arsc是编译后的二进制资源文件,它是一个映射表,映射着资源和id,通过R文件中的id就可以找到对应的资源

二、 双开及原理

双开:简单来说,就是手机同时运行两个或多个相同的应用,例如同时运行两个微信

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

2.1 修改包名

NT管理器安装包提取

lkexuddr.png

点击提取的Apk,选择APK共存修改包名

lkexui7r.png

简单情况下实现APK共存

2.2 修改Framework

2.3 通过虚拟化技术实现

2.4 以插件机制运行

三、 汉化APK

汉化:使用专门的工具对外文版的软件资源进行读取、翻译、修改、回写等一系列处理,使软件的菜单、对话框、提示等用户界面显示为中文,而程序的内核和功能保持不变,这个过程即为软件汉化

基本上字符串都是在arsc里,建议一键汉化,然后再润色。
少量没汉化到的字符串参考视频中的方法定位去逐个汉化。

3.1 流程图

这里还需要注意的是,如果要直装应用,那就应该先签名安装,看看是否有签名校验导致的闪退

lkexuph0.png

简单的汉化有三个分支

  • Arsc汉化
  • Xml汉化
  • Dex汉化

教程中还提到较为复杂的so层面的字符串资源

3.2 Xml汉化

汉化前:

lkexuw4m.png

1.全局搜索文件内容Hello 52pojie

lkexv54t.png

2.字符常量池打开资源文件

lkexva5g.png

3.字符串编辑

lkexveni.png

4.更新并自动签名

lkexvkh4.png

5.完成

lkexvqew.png

3.3 Arsc汉化

接着替换下方的俄文,使用开发者助手检索界面资源

lkexvx70.png

复制文本后再次使用MT管理器进行搜索Я не могу поверить, что это работает, почему?

lkexw1rt.png

选择翻译模式

lkexw6fg.png

lkexwat6.png

定位到要翻译的字符串后进行编辑

lkexwg28.png

完成汉化

lkexwk3g.png

3.4 dex汉化

这次要替换掉 Reverse determines height, development determines depth.这段文本

还是先搜索

lkexwpfg.png

lkexwtv0.png

再在Dex编辑器++中搜索

lkexwy4l.png

lkexx2i9.png

直接进行替换即可

lkexx7b0.png

完成汉化

lkexxbi3.png

四、修改应用名称和图标

4.1 初识AndroidManifest.xml

AndroidManifest.xml文件是整个应用程序的信息描述文件,定义了应用程序中包含的Activity,Service,Content provider和BroadcastReceiver组件信息。每个应用程序在根目录下必须包含一个AndroidManifest.xml文件,且文件名不能修改。它描述了package中暴露的组件,他们各自的实现类,各种能被处理的数据和启动位置。

属性定义
versionCode版本号,主要用来更新,例如:12
versionName版本名,给用户看的,例如:1.2
package包名,例如:com.zj.52pj.demo
uses-permission android:name=""应用权限,例如:android.permission.INTERNET 代表网络权限
android:label="@string/app_name"应用名称
android:icon="@mipmap/ic_launcher"应用图标路径
android:debuggable="true"应用是否开启debug权限

4.2 修改测试

切换到NT管理器

lkexxnk6.png

lkexxs32.png

修改成功

lkexxw92.png

五、修改应用内图标

对图中的表情包进行替换

lkexy1fx.png

首先找到对应的布局文件,查看ImageView的资源ID:@7F0D000B

lkexy599.png

使用Arsc编辑方式打开resources.arsc,搜索资源ID

lkexy9kw.png

lkexyekt.png

再去搜索first_img定位图片

lkexyixu.png

lkexyn1d.png

哦~原来first_img已经在对应资源图片了,那我直接修改它的映射关系改成D2.png

lkexys1v.png

完成

引用

1.《安卓逆向这档事》一、模拟器环境搭建:https://www.52pojie.cn/thread-1695141-1-1.html

2.《安卓逆向这档事》二、初识APK文件结构、双开、汉化、基础修改:https://www.52pojie.cn/thread-1695796-1-1.html

3.吾爱破解安卓逆向入门教程《安卓逆向这档事》二、初识APK文件结构、双开、汉化、基础修改:https://www.bilibili.com/video/BV18G411j7gV/?spm_id_from=333.788&vd_source=33cfe7dc102c64b5cac16bcfaad7f2a8

4.[更新!]适用于几乎所有安卓模拟器(7+)安装magisk的教程-简单无脑向:https://www.52pojie.cn/thread-1583586-1-1.html

5.【VirtualAPP 双开系列08】如何实现多开 - UID:https://blog.csdn.net/u014294681/article/details/116270479

0

评论 (0)

取消