【Android学习】一

工具学习

Posted by Corax on January 18, 2024

后面实习相关会涉及一些apk的恶意行为分析,需要在近期学一些有关于安卓逆向的知识。这个系列的博客主要跟着吾爱破解的《安卓逆向这档事》进行学习,如有纰漏,以原作为准。

1

环境搭建

不多说了,就是一个开系统权限,刷面具,安装插件的过程。

https://www.bilibili.com/video/BV1wT411N7sV/?spm_id_from=333.788&vd_source=8ce8b7f81e0f04a4711b7b92ff1fdbf7

2

apk结构

文件  
assets目录 存放apk静态资源文件 如视频音频图片
lib目录 动态库目录 存放so文件
META-INF目录 签名信息
res目录 资源库目录 一般存放xml布局文件和图标
AndroidMainfest.xml文件 写应用的名字版本图标权限,引用库文件等信息,配置清单吧可以说
classes.dex文件 安卓系统上的可执行文件,也是我们逆向的主要的文件,源码都被编译在里面
resources.arsc文件 资源索引文件,包含语言包,汉化的话一般是反编译这个文件

双开

四种方法

原理 注释
修改包名 顾名思义
修改Framework 由系统修改权限的厂商,修改Framework来双开,如小米自带双开(系统级)
通过虚拟化技术实现 虚拟Framework层、虚拟文件系统、模拟Android对组件的管理、虚拟应用进程管理 等一整套虚拟技术,将APK复制一份到虚拟空间中运行,例如:平行空间(虚拟技术)
以插件机制运行 利用反射替换,动态代{过}{滤}理,hook了系统的大部分与system—server进程通讯的函数,以此作为“欺上瞒下”的目的,欺骗系统“以为”只有一个apk在运行,瞒过插件让其“认为”自己已经安装。例如:VirtualApp(这个有点意思)

这里就搞第一个

image-20240119152645978

就有了

image-20240119152704801

汉化

image-20240119153003652

汉化这里的内容

image-20240119153025301

这里

image-20240119153143653

字符串常量池找到这里

image-20240119153218399

ok

image-20240119153300806

也可以使用开发者助手

获得字符串

image-20240119153405902

mt 翻译模式来到这里

ok

image-20240119153545790

最后这个写在classes.dex里面

image-20240119153816602

image-20240119153826278

AndroidManifest.xml

image-20240119154022581

来试试换头像

image-20240119154134340

修改这里

image-20240119154327598

也可以用集成的 通用编辑

image-20240119154402720

3

smali

我理解下来有点类似于汇编语言,但其实有没到那个层面。

smali是Dalvik的寄存器语言

基础语法如下

image-20240119161240601

image-20240119161246788

image-20240119161251885

实战

这个里面要一件三连需要大会员

image-20240119221841683

我们尝试过掉大会员认证

根据字符串定位到

image-20240119221921083

然后看smali代码

目前程序流程就是先判断硬币是否到15个 然后判断是否是大会员

所以要改两处 第一个是第一个if 还有第二个if

image-20240119222856722

image-20240119222938566

成功

image-20240119223012467