安卓逆向入门学习-1

admin 2026-05-08 04:36:00 网络安全文章 来源:ZONE.CI 全球网 0 阅读模式

文章总结: 本文介绍了安卓逆向入门的基础知识,包括APK文件结构解析、双开APK的实现方法(包名修改、虚拟化技术等)、汉化APK的完整流程(查壳、反编译、资源修改、重签名)以及AndroidManifest.xml的作用。文档通过具体工具操作演示了资源定位与修改技术,并指出签名校验是常见防护手段。 综合评分: 58 文章分类: 移动安全,逆向分析,安全工具,应用安全


cover_image

安卓逆向入门学习-1

原创

朝阳 朝阳

Sec朝阳

2026年5月8日 00:31 浙江

在小说阅读器读本章

去阅读

1、Apk 结构

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

assets       目录:存放 APK 的静态资源文件,比如视频、音频、图片等。

lib             目录:armeabi-v7a 基本通用所有安卓设备,v8a 只适用于64位的安卓设备,X86常见于安卓模拟                                器,.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 就可以找到对应的资源。

这里面多了一个 kotlin 目录,就是用 Kotlin 语言写的代码,编译后和 Java 一样变成 dex 字节码,但会带 Kotlin 特有的库和语法特征。

2、双开 APK

修改包名:让手机系统认为这是两个 APP,这样就能生成两个数据存储的路径,此时就相当于打开了两个互不干扰的 APP。

修改 Framework:对于有系统修改权限的厂商,可以修改 Framework 来实现双目的。

虚拟化技术:虚拟 Framework 层、虚拟文件系统、模拟安卓对组件的管理、虚拟应用进程管理等一套虚拟技术,将 APK 复制一份到虚拟空间中运行。

以插件机制运行:利用反射替换,动态代理,HOOK 系统的大部分与 system-server 进程通讯的函数。

这个工具用于反编译我们的应用的。

接下来定位。

这里就是最简单的双开模式。

去查看是否能双开。但这个 MT 管理器需要会员,但我囊中羞涩,换另一个管理器。

两个 Demo。但这里了解到防范方法就是进行签名校验,因为这里双开是动了签名的,所以有时候会失败。

3、汉化 APK

这里讲到了逆向流程,当我们拿到一个应用的时候,第一步是查壳。

直接拿其他师傅的图片。

看了第一关就是汉化,让我们进行图片替换和文字汉化,按照流程来说查壳,但我们能直接提取出这个应用,这一步是跳过的,接下来就是反编译,我这里可以用 Jdax 的,但是好像用 MT 管理器更方便,就直接可以进行修改并且重新刷进去。

这里用 MT 管理器去搜索一下这张图片的一些信息,比如这个 hello。

在这里。

这里我们反编译。

其实我学到了这里我大概是懂了作者的思路了,他的案例是告诉我们想进行汉化时,可以找一下关键字,我比较能理解为 IOT 安全里面的 Patch,这个是比较形象的,或者是刷包,有点这个意思,并且之前提到过 layout 是这个安卓应用的脸面,我也通透了,原来作者的意思是指这个 layout 是应用中的各个界面。

在这里,改一下即可,真是简单粗暴,但是我到这里有个疑问,就是签名会改变,如果进行了校验该怎么办?

自动签名这里。

果然签名变化了。不过这里是模拟器,关闭签名校验即可,但我觉得如果是真机就非常难操作了。

依然失败,所以这里应该是要绕过了,这里我的第一个想法就是 HOOK,但我可能对这个工具不太熟悉,他是有解决方法的。但是这里是通过删除原来的应用重新安装解决的,那其实现在这个程序不是原来的程序了,我在这里思考了一下,如果说能做到签名不变并且能修改应用内容,那就非常危险了,不过我对安卓逆向不太熟悉,这个方法听起来可行性就比较低。

但其实这里这已经是两个不一样的应用了,虽然是一样的外表一样的功能。

但这里还是没修改,接下来会引入另一个功能,开发者助手,这个应用权限挺高的,之前用过微信开发助手,大概是了解他的作用。

用这里的页面资源分析能看到。

并且这里文本信息也出来了,复制再次去查找。

在这里,我们进行修改即可。作者这段话我很喜欢啊,困惑是学习过程的第一阶段,是这样的,虽然我现在对安卓逆向、安全很迷茫,但我觉得我学会他只是个时间问题。

这里我们修改一下,感觉换汤不换药啊,有点还是更新签名并且重新安装。

开启 VIP 也可以汉化,更方便。

4、AndroidManifest.xml

这里我们再次回顾一下,这个文件是整个应用程序的信息描述文件,定义了程序中的 Activity、Service、Content Provider 和 BroadeastRecevier 组件信息,也就是四大组件。

这里就用一张图片介绍吧。


免责声明:

本文所载程序、技术方法仅面向合法合规的安全研究与教学场景,旨在提升网络安全防护能力,具有明确的技术研究属性。

任何单位或个人未经授权,将本文内容用于攻击、破坏等非法用途的,由此引发的全部法律责任、民事赔偿及连带责任,均由行为人独立承担,本站不承担任何连带责任。

本站内容均为技术交流与知识分享目的发布,若存在版权侵权或其他异议,请通过邮件联系处理,具体联系方式可点击页面上方的联系我

本文转载自:Sec朝阳 朝阳 朝阳《安卓逆向入门学习-1》

安卓逆向入门学习-1 网络安全文章

安卓逆向入门学习-1

文章总结: 本文介绍了安卓逆向入门的基础知识,包括APK文件结构解析、双开APK的实现方法(包名修改、虚拟化技术等)、汉化APK的完整流程(查壳、反编译、资源修
评论:0   参与:  0