apk分析入门从0到0.5
点击此处查看最新的网赚项目教程
设备选择,虚拟机or实体机
相较于安卓模拟器,我比较推荐用实体机,首当其冲的可能是因为有些app会检测市面上常见的模拟器如网易的mumu、夜神模拟器等。
虽然可能通过修改模拟器达到运行app的情况,当时仍比较推荐用实体机,况且现在仅拿来测试的话,不需要特别昂贵的设备,我在用的是有些年头的骁龙625的红米note4x,主要可以选择第三方的系统多。
推荐设备
根据系统选设备!!!推荐使用稳定的类原生系统(如LineageOS、魔趣等),国内的miui、flyme的话虽然也能刷入Magisk获得root权限,但是偶尔会有奇奇怪怪的bug…
小米/红米,第三方类原生系统多(LineageOS、魔趣等)、便宜、性能够用(买回来就刷成类原生系统,不推荐用miui搞)
一加,氢os,挺香,定制魔改不太多的类原生系统谷歌家pixel,略贵,出厂就是原生系统,就是系统更新太快
基本环境搭建
类原生系统
LineageOS: (官网),也可以访问国内的镜像站,不过镜像站更新时间不如官网,上面也有很多机型,都是比较推荐的。
魔趣:,基于 Android 开源项目二次开发,增加的本地化、个性化的功能。
其他类原生系统,可以去xda论坛的各种机型专区查看。(帖子上会标注,UNOFFICIAL即非官方的,OFFICIAL官方的)
简易刷入过程
以我手里的625版红米note4x为例:
1.解开BL锁,即BootLoader锁,解锁链接:,可以根据官方文档就行操作,新的小米账号可能会提示要很长时间才能解锁
2.刷入第三方rec,下载链接
刷入过程如下:
1.关机后按住音量减键加电源键进入fastboot模式,下图左侧的图案
2.手机连接电脑,fastboot刷入
fastbootflashrecoverytwrp-3.6.0_9-0-mido.img
fastbootflashboot twrp-3.6.0_9-0-mido.img
fastboot reboot # 重启会自动进入刚刚刷入的rec
苹果系统得安装android-platform-tools,才会有adb、fastboot等,用brew直接安装即可
brew cask install android-platform-tools
3.rec清除数据、刷入系统、等待系统重启
Wipe–>Advanced Wipe–>全勾上–>滑动最下面的Swipe to Wipe
返回上一层,找到Format Data即格式化Data分区,输入yes,右下角的☑️即可
重新插拔下数据线,就会在文件管理中显示,苹果系统会在Android文件传输(下载地址:)提示了。
卡刷包通用刷入方式
将系统包拷贝进去,首页–>选择Install–>选择刷系统包–>勾选Reboot after installation iscomplete即刷完自动重启–>滑动Swipe to confirm Flash(强烈建议使用安卓9的系统,安卓10的系统对/分区读写较为繁琐)
Magisk
通过面具Magisk获取完美ROOT,且有良好的插件下载方式,如移动证书的xxxx模块,将用户证书自动移动到系统根证书/system/etc/security/cacerts/路径下
刷入方法:
等待系统重启完成后,关机,音量加键与电源键进入rec。参考”卡刷包通用刷入方式”刷入即可。
Magisk包下载地址,推荐下载卡刷包以及卸载包。
刷入成功后,推荐去隐藏Magic应用,随机生成下包名,有些app会检测,完成后添加桌面快捷方式即可,再次进入就是包名就随机了。
Magisk模块推荐
常用的magisk模块,提高效率,刷入方法参考通用刷入教程
Move Certificates
将用户手动安装的证书移动到系统根证书/system/etc/security/cacerts/路径下
magisk-frida
利用magisk开启frida,frida是个轻量级别的hook框架,注意安装版本需要与电脑安装的版本相同。电脑上pip3安装即可,pip3 install frida,冲冲冲!!!下载地址:
Riru
Riru的原理是通过替换会被Zygote加载的libmemtrack.so从而实现Zygote注入
下载地址:
LSPosed
LSPosed 是 Edxposed 的一个新的分支,LSPosed 与Edxposed 相互兼容,却比 Edxposed 更加简洁、易用和高效,是现如今饱受诟病的 Edxposed 的极佳替代品。
下载地址:
安装完成大概是这个样子,先装Riru,重启进系统之后才可以装LSPosed,这两个顺序不能乱的
xposed还是LSPosed?
xposed原版好像是只支持到安卓7.0,7.0之后陆陆续续也有很多类似的,比如太极、edxposed,LSPosed 是 Edxposed 的一个新的分支,所以替换成了LSPosed。
LSPosed模块-sslunpinning
sslunpinning模块能在一定程度上解决服务器服务端校验客户端证书的问题,防止中间人进行攻击。ssl pinning简单重要性具体可以参考:
以某东为例子,模块–sslunpinning–启用模块,配置后推荐重启下手
抓包软件证书(以burp为例)
安装完成之后,重启设备,证书变会被Move Certificates模块移动到系统证书目录下(图片为安卓10,强烈建议使用安卓9!!!安卓10测试失败),如果Move Certificates模块移动失败也可以用手动的方式安装、移动证书。
手动安装、移动证书
证书转换,已经是pem格式的证书不需要执行这一步
openssl x509 -inform DER -in cacert_2020_12.cer -out cacert_2020_12.pem
进行MD5的hash显示
openssl版本在1.0以上的版本的执行这一句
openssl x509 -inform PEM -subject_hash_old -in cacert_2020_12.pem
将pem证书重命名
使用上面复制的值(类似于347bacb5)对pem证书进行重命名
mv cacert_2020_12.pem d78f1bf0.0
将新证书放入手机系统证书目录/system/etc/security/cacerts/
adb push d78f1bf0.0 /sdcard/adb shellsumount -o rw,remount /systemmv /sdcard/d78f1bf0.0 /system/etc/security/cacerts/chmod 644 /system/etc/security/cacerts/d78f1bf0.0reboot
代理、流量导向
之前还可以直接通过wifi代理的方法,将手机的流量直接转发至电脑的开放端口上,如burp开的9999端口。
但是越来越多的app开发者会在app运行时优先检测系统的wifi代理设置,如果配置了wifi代理则会屏蔽系统代理,例如OKHttp可以设置Proxy.NO_PROXY来屏蔽系统代理。
通过安装Postern来进行流量导向,Postern是配置了一个本地的vpn将流量转发至配置好的代理端口,如我配置的burp的192.168.1.2:9999,点击打开vpn即可。
进阶环境推荐
查壳
脱壳
既然查到了壳那就得有脱壳,大部分脱壳的思路都是从内存里dump出来dex,例如FRIDA-DEXDump就是这个原理。
FRIDA-DEXDump
下载地址:
FRIDA-DEXDump涉及到frida,所以先测试下frida是否运行正常。
frida-ps -U
能正常返回手机的app列表即可。说明magisk-frida运行正常,frida安装版本也一样。
dump一个dex试试
以酷安为例子
frida-dexdump -n com.coolapk.market
dump出来的dex用d2j-dex2jar转换成jar包即可。
内存中dumpdex只是frida中的其中的一个玩法,更多有意思的可以参考下这个:
Blackdex
BlackDex是一个运行在Android手机上的脱壳工具,支持5.0~12,无需依赖任何环境任何手机都可以使用,包括模拟器。只需几秒,即可对已安装包括未安装的APK进行脱壳。
下载地址:
Brida
brida我不是很了解,是一个burp的插件,我也在学习的过程,推荐一些较好的学习链接:
(这篇比较详细)
下载地址:
其他软件推荐
———END———
限 时 特 惠: 本站每日持续更新海量各大内部创业教程,一年会员只需98元,全站资源免费下载 点击查看详情
站 长 微 信: qs62318888
主题授权提示:请在后台主题设置-主题授权-激活主题的正版授权,授权购买:RiTheme官网