安卓逆向这档子事

一、初识APK

1..双开及其原理

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

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

2.1 修改包名

2.1.1 使用工具

MT管理器和NP管理器,都是Android设备上用于文件管理和系统操作的工具,但它们在功能特点、用户界面以及使用场景上有一些区别。

MT管理器

MT管理器(MT Manager)是一款功能强大的文件管理器,主要用于对APK文件、dex/oat/smali文件进行编辑,还可以进行文件对比、文本翻译等。它的主要特点包括:

  • 支持直接编辑APK文件中的资源文件、smali代码。
  • 提供了丰富的文件操作功能,如复制、粘贴、重命名等。
  • 可以用来汉化应用、修改游戏数据等高级操作。
  • 用户界面相对复杂,更适合有一定技术背景的用户使用。

NP管理器

NP管理器(NP Manager)也是一个文件管理器,虽然它也提供了对APK文件的基本编辑能力,但是其主要侧重点在于提供更直观的文件浏览体验和基本的文件管理功能。相比于MT管理器,NP管理器的特点有:

  • 界面设计更加简洁直观,适合普通用户进行基础的文件管理任务。
  • 提供了对多种文件格式的支持,如压缩文件(zip, rar)的解压与创建。
  • 功能性上相对于MT管理器来说较为简单,适用于不需要深入编辑apk或系统文件的用户。

区别

  • 功能深度:MT管理器在处理复杂的文件编辑和系统级操作方面更为强大;而NP管理器则侧重于提供一个易于使用的文件管理解决方案。
  • 用户界面:MT管理器的UI更加复杂,包含更多专业化的选项;NP管理器设计得更加友好,适合所有级别的用户。
  • 使用场景:如果需要对应用程序进行深层次的修改,比如反编译apk文件,则MT管理器是更好的选择。而对于那些仅需要基本文件管理功能的用户来说,NP管理器可能更加合适。

根据实际需求应用,有的功能需要VIP……

2.1.2 操作

将MT管理器、NP管理器以及练手demo安装至安卓模拟器

由于MT管理器双开需要会员,所以选择NP管理器。进入NP管理器软件,点击左上角的三根杠,选择安装包提取。

然后选择需要提取的软件

—> 提取安装包—> 定位 —>点击软件 —>功能—>APK共存

最后确认,此时便有了该软件的安装包,通过带点击下方提取出来的安装包,进行安装,桌面上便有了新的一个demo软件

注意这个地方,提取出来后,两个包的包名不一样

由于该方法是通过修改包名实现的,所以懂了应用的签名信息,如果开发者做了一个签名校验,那就很有可能安装后软件出现闪退奔溃的情况。

3.汉化

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

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

流程图

可以使用MT管理器,进入demo的apk文件中,进行搜索需要修改句子对应的文件所在位置,使用搜索,点击高级搜索可以进入全局搜索。查找到文件位置后进入文件,手动修改句子,翻译为中文。真的累。

修改后会出现一个签名改动的问题,可以直接卸载了再安装,或者核心破解。

4.初识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权限

二、初识smail

  • 版权声明: 本博客所有文章除特别声明外,著作权归作者所有。转载请注明出处!
  • Copyrights © 2025 唐小唐
  • 访问人数: | 浏览次数: