安卓安全逆向技能树整理v1.0
2022-9-20 08:57:47 Author: 哆啦安全(查看原文) 阅读量:610 收藏

前言

以下内容是以我的角度梳理出来的技能点,很可能有没记录上的或者有错误的地方,还望大佬多指正

刷机

  国外谷歌系列手机都可以,找原生镜像就行:https://developers.google.cn/android/images  国内能搞机且比较稳定的目前就只有小米  安卓10以下,fastboot  安卓10以上,记得要用新版的fastboot  twrp要选手机型号对应的版本  小米手机刷机,保证已解bl锁(刚绑定账户需要等待168小时解锁,一个账户半年内只能解几个设备)

可以直接这么搜,找对应的twrp

国内的手机,也有对应的twrp版,进这个页面搜索品牌即可:https://twrp.me/Devices/

root

  magisk  supersu  小米建议不要刷开发板系统用里面的root,并不完全,直接用稳定版,刷magisk

刷机环境准备

magisk:    riru    lsp    move证书zip    justTrustMe .4版/justTrustmePlus
zygisk: edxp/lsp shamiko    move_Certificates.zip(安卓10以上,需要借助这个模块才能把证书移动系统目录) justTrustMe .4版/justTrustmePluspostern、小黄鸟wifi adbmt管理器/np管理器开启adb调试

模拟器环境准备

派大星(xposed)x86架构,功能受限,只有java层,指纹很多,很容易被检测

root操作

  twrp刷入  patch方式刷入magisk(安卓10以上的手机,如果twrp刷入有问题),参考:https://magiskcn.com/  直接在刷机的时候刷入自编译的带有root权限的rom

调试工具

frida    启动模式,spawn,attach    app有壳的时候,可以延时启动,setTimeout(main, 1000)    frida -U 选用usb连接的设备    frida -H 选用远程设备    遇到双进程保护的,用-p  进程IDxposed    安装zip包    ratel(免root,功能非常强大,但逐渐被大厂风控针对,且目前作者已不再更新)    edxposed(xposed之后的替代版)    lsposed(xposed之后的替代版,跟edxp各有千秋)    xpatch:https://github.com/WindySha/Xpatch    太极-阳(需要root)    太极-阴(免root)    两仪(免root,给我的感觉类似virtualxposed)    派大星(模拟器里的xposed,可以不用科学方法激活框架) objection   objection -g  com.package.name explore  (usb模式)   objection -N -h xxxx -p xxxx -g com.package.name explore(网络模式)   缺点:无法切换classloader,部分类无法hook跟踪 TweakMe(主要是过重打包的签名检测) jeb、jadx、GDA、ida、Ghidra、010Editor mt管理器/np管理器

针对无法root或者root很难的手机,比如(ov,华为)

免root用xposed    ratel    两仪    太极-阴    virtualxposed/virtualapp    vmos 免root用frida    frida-gadget    xpatch+frida插件:https://github.com/WindySha/FridaXposedModule

root检测

frida绕过脚本magisk隐藏zygisk排除目标app+shamiko

frida检测

antifrida脚本魔改frida反对抗  hluda    hluda续写版:https://github.com/hzzheyang/strongR-frida-android  花总的  霜哥的frida-trace跟踪,对应修改特征自定义rom可以参考花总的文章:https://mp.weixin.qq.com/s/Md6svG0qH2SstR94BkSi-A

xposed检测

魔改xposed自定义rom

持久化frida(独立执行frida,不需要借助adb 执行frida-server终端命令)

1.fridaManger2.frida-gadget,重打包app,把frida_gadget.so塞到app里3.frida-inject  https://github.com/iGio90/FridaAndroidInjector 现成的方案  https://github.com/langgithub/FridaInject 另一个现成的方案

frida与xposed对比

1.frida原生不太适合生产环境使用,java层、so层都可以hook2.xposed原生支持持久化,默认只能hook java层,可借助dobby库实现so层hook3.frida支持动态调试,xposed更改代码后,需要重启手机或者重启app4.最近几年的frida生态比xposed好很多,不过xposed并不是毫无用武之地5.编写hook,代码,个人感觉xposed系列写的代码要比frida多一点,frida调试易上手6.在hook的时候,xposed有几个hook生命周期的api,frida没有7.在hook的时候,frida不用考虑是否是私有公有属性,xposed需要考虑

frida+xposed

  xcube  xpatch:https://github.com/WindySha/Xpatch

脱壳

  1.frida-dexdump(一代、二代壳可脱,部分三代壳可用):    https://github.com/hluwa/frida-dexdump    遇到脱壳失败的时候,可以frida spwan模式 空起,然后frida-dexdump attch模式脱壳  2.frida_dump    https://github.com/lasting-yang/frida_dump    yang神和r0ysue的脚本      dump dex      dump so  3.frida的unpack脚本:https://github.com/dstmath/frida-unpack  4.珍惜大佬的fundex/funelf(只支持edxp)  5.youpk,如果有root检测,则可能无法用  6.ratel  7.寒冰大佬的fart,相对完美的方案  8.fartext、mikro:fart基础之上的改版 

抓包

1.系统代理检测:charles+VPN(postern、drony、小黄鸟)2.网卡、vpn检测:过网卡、vpn检测脚本3.sslpinning检测:  objection 关闭ssl  frida unsslpinning脚本4.tcp/udp包:mitmdump、小黄鸟5.用户证书:  xposed:justTrustMe插件  frida:过证书检测脚本6.证书绑定,双向证书  r0capture7.针对spdy/quic:frida降级8.flutter sslpinning: frida过检测脚本9.自实现http请求库:  针对跟踪,hook入参和返回值10.protobuf/gRPC:https://mp.weixin.qq.com/s/8yOabTkMid9iKcbMJjYVHA10.tls检测:    具体情况具体处理11.抓包框架:lamba:https://github.com/rev1si0n/lamda12.eCapture:eBPF下的抓包工具,无需CA证书即可抓HTTPS明文

逆向操作三板斧

1.定位代码  jeb、jadx查看代码  objection、r0tracer跟踪定位类,类方法  如果跟踪不到(搜索不到)方法:    1).用mt管理器(np管理器),查看当前的activity记录(这个也可以用来获取升级弹窗的类,进而去弹窗),跟踪调用逻辑    2).用frida的点击hook脚本,定位点击按钮所在位置触发的逻辑    3).用葫芦娃大佬的ZenTracer:https://github.com/hluwa/ZenTracer2.frida/xposed调试3.还原/调用  协议、算法还原  针对比较难还原的so层算法:    1.unidbg/unicorn:https://github.com/zhkl0228/unidbg    2.这个算法在java层是否能主动调用      1).能:rpc:        sekiro+ratel        frida rpc + asyncandroid.dex        xposed 插件      2).不能:autojs/appium/xposedAppium/ratelSuperAppium自动化操作+hook

理论上实现通杀(其实得针对处理,通杀是不可能的)

frida+xposed+反调试对抗+魔改rom沙箱自吐

加解密

标准的:AES/DES/MD4/MD5/SHA/RSA/BASE64魔改的加密,需要针对分析,主动调用,给一个入参,看返回值,跟标准的对比差距

结语

常规的逆向操作涉及到的知识点就以上这些。
后续更新so层和风控层涉及到的
如今的环境,凡是稍微正规点的app,基本都有root和frida检测,加密算法基本都在so层,并且都有一定的风控检测,设备检测,是越来越难,所以,得不断强化自己

Android渗透工具(建议收藏)

Android APP防作弊SDK解决方案

零基础培训课程+技术指导服务(技术交流社群)


文章来源: http://mp.weixin.qq.com/s?__biz=Mzg2NzUzNzk1Mw==&mid=2247494191&idx=2&sn=68add1538d2ea21791e3d7b66d8b9476&chksm=ceb8af61f9cf26776a5cd07388706d32c95951fd8ae8c9cbe371193e16aec0265537dcb50e05#rd
如有侵权请联系:admin#unsafe.sh