初探Swift Runtime:使用Frida实现针对Alamofire的抓包工具

0x00 背景

Swift自2014年发布以来,在Apple的开发生态下占据的位置越来越重要,国外友人在2019年统计过超过半数的非游戏类app已经使用swift,淘宝技术团队曾发文介绍过他们的swift实践。随着swift5在2019年的发布,swift也终于进入ABI稳定,这无疑具有里程碑的意义,相信会有更多的App将离不开swift。

从逆向的角度看,关于swift的研究分析却较少,一些好项目还由于面向的swift的版本过老而与swift5存在兼容问题无法使用,比如 swift-frida

笔者最近粗略学习了一下swift相关的文档,从swift类型在Mach-O文件中的结构入门,逐步到运行时分析。已经实现了一个从Mach-O文件中获取swift对象定义的命令行工具SwiftDump,包括其Frida版本FridaSwiftDump

在本文中,将着重从Swift Runtime数据结构入手进行分析,面向Github上3.3万star的swift HTTP网络库Alamofire,实现一个基础版本的抓包工具,具备:打印GET/POST请求;屏蔽SSL Pinning。过程中会介绍到swift的内存布局,函数调用约定,参数传递,运行时函数调用。

项目地址:FridaHookSwiftAlamofire

Read more »

SSH key对于开发者来说并不陌生,不管是远程登录还是git提交代码,SSH key与使用账号密码相比,更加安全便捷。本文介绍目前最新的key格式 Ed25519。

Read more »

小破站今年的跨年晚会很是不错,在跨年夜总算给本阿宅一点点精神慰藉。在用手机看直播的时候,大家刷的礼物特效不停出现,我比较钟爱其中的“打call”,想着加到聊天软件里做个表情,以后兄弟们分享文章的时候可以商业互吹一番。搜了一圈没有发现现成的,今天空下来,随即手撸了一下找到表情文件,简单记录一下过程。

Read more »

iOS Unity3D 游戏修改实战

最近玩了一个叫 旅行青蛙 的手机游戏,主人公大佬是一只可爱的蛤,最爱的就是去西方各个国家旅行,旅行过程中会寄送明信片回来。玩家要通过收取三叶草来买道具给蛤用,越好的道具越可能得到稀有明信片。三叶草每隔一段时间会重新长出。

本文从加速游戏时间和修改三叶草数值 这两方面来进行说明,提供两种修改方法。用到的工具和相关说明在 项目iOSUnityGameMod_frog

Read more »

基于 theos-jailed 的非越狱环境Hook快速开发工作流

前段时间看到 FishChat 这个项目,是在非越狱环境下进行Hook,项目本身用到了CaptainHook来进行开发。
了解过越狱环境开发的同学一定用过Logos来写Tweak,那么如果这个项目采用Logos来进行开发,项目代码可能更易读一些。 正好有 theos-jailed 这个项目,可以将Tweak应用到非越狱环境下。 本项目从FishChat中选取一个小功能:修改步数,来做个示范,怎么来达到这个目的。

Read more »

在做UI适配的时候,发现个别view定义的leading和trailling margin在iPhone 6 plus下会有一点间隙(4pt),其他则正常,记录一下这个问题的原因。

Read more »