后面实习相关会涉及一些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(这个有点意思) |
这里就搞第一个

就有了

汉化

汉化这里的内容

这里

字符串常量池找到这里

ok

也可以使用开发者助手
获得字符串

mt 翻译模式来到这里
ok

最后这个写在classes.dex里面


AndroidManifest.xml

来试试换头像

修改这里

也可以用集成的 通用编辑

3
smali
我理解下来有点类似于汇编语言,但其实有没到那个层面。
smali是Dalvik的寄存器语言
基础语法如下



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

我们尝试过掉大会员认证
根据字符串定位到

然后看smali代码
目前程序流程就是先判断硬币是否到15个 然后判断是否是大会员
所以要改两处 第一个是第一个if 还有第二个if


成功
