声明
以下只是搬运下我公众号的东西。很早就发过了。原帖地址:
已经发公众号的为什么还发csdn
有的圈内朋友,不经过我的允许,删减摘录我公众号的内容,这里就不提谁了,心里清楚,还能获得一些关注和流量。很无语,所以我还不如自己也发发。【猛男落泪】
前言
以下内容是以我的角度梳理出来的技能点,很可能有没记录上的或者有错误的地方,还望大佬多指正
刷机
国外谷歌系列手机都可以,找原生镜像就行:https://developers.google.cn/android/images国内能搞机且比较稳定的目前就只有小米安卓10以下,fastboot安卓10以上,记得要用新版的fastboottwrp要选手机型号对应的版本小米手机刷机,保证已解bl锁(刚绑定账户需要等待168小时解锁,一个账户半年内只能解几个设备)
可以直接这么搜,找对应的twrp

国内的手机,也有对应的twrp版,进这个页面搜索品牌即可:https://twrp.me/Devices/
root
magisksupersu小米建议不要刷开发板系统用里面的root,并不完全,直接用稳定版,刷magisk
刷机环境准备
magisk:rirulspmove证书zipjustTrustMe .4版/justTrustmePluszygisk:edxp/lspshamikomove_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,attachapp有壳的时候,可以延时启动,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,可以不用科学方法激活框架)objectionobjection -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、010Editormt管理器/np管理器
针对无法root或者root很难的手机,比如(ov,华为)
免root用xposedratel两仪太极-阴virtualxposed/virtualappvmos免root用fridafrida-gadgetxpatch+frida插件:https://github.com/WindySha/FridaXposedModule
root检测
frida绕过脚本magisk隐藏zygisk排除目标app+shamiko
frida检测
antifrida脚本魔改frida反对抗hludahluda续写版: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-injecthttps://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
xcubexpatch:https://github.com/WindySha/Xpatch
脱壳
1.frida-dexdump(一代、二代壳可脱,部分三代壳可用):https://github.com/hluwa/frida-dexdump遇到脱壳失败的时候,可以frida spwan模式 空起,然后frida-dexdump attch模式脱壳2.frida_dumphttps://github.com/lasting-yang/frida_dumpyang神和r0ysue的脚本dump dexdump so3.frida的unpack脚本:https://github.com/dstmath/frida-unpack4.珍惜大佬的fundex/funelf(只支持edxp)5.youpk,如果有root检测,则可能无法用6.ratel7.寒冰大佬的fart,相对完美的方案8.fartext、mikro:fart基础之上的改版
抓包
1.系统代理检测:charles+VPN(postern、drony、小黄鸟)2.网卡、vpn检测:过网卡、vpn检测脚本3.sslpinning检测:objection 关闭sslfrida 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/unidbg2.这个算法在java层是否能主动调用1).能:rpc:sekiro+ratelfrida rpc + asyncandroid.dexxposed 插件2).不能:autojs/appium/xposedAppium/ratelSuperAppium自动化操作+hook
理论上实现通杀(其实得针对处理,通杀是不可能的)
frida+xposed+反调试对抗+魔改rom沙箱自吐
加解密
标准的:AES/DES/MD4/MD5/SHA/RSA/BASE64魔改的加密,需要针对分析,主动调用,给一个入参,看返回值,跟标准的对比差距
结语
常规的安全操作涉及到的知识点就以上这些。
后续更新so层和风控层涉及到的
如今的环境,凡是稍微正规点的app,基本都有root和frida检测,加密算法基本都在so层,并且都有一定的风控检测,设备检测,是越来越难,所以,得不断强化自己
加我微信:geekbyte,拉你进大神云集的tls-js-app交流群,还有小白技术路线推荐,技能提升进阶课程、书推荐

1250

被折叠的 条评论
为什么被折叠?



