某app登录协议逆向分析
某app登录协议逆向分析
设备
- iphone 5s
- Mac Os
- app:神奇的字符串57qm5Y2V
本文主要通过frida-trace、fridaHook、lldb动态调试完成破解相应的登录算法,从达到登录成功,并根据该步骤完成ios逆向分析,文中所有涉及的脚本都已经放在github上面。
抓包分析
之前文章已经进行了详细的抓包教程。
iOS系统抓包入门实践之短链
从上图中可以看到ydtoken、请求响应以及该接口涉及到的mobile
为要破解的内容。
请求参数分析
这里涉及到的frida相关环境安装配置可以参考
ios逆向-frida&环境&破解appSign算法
ydtoken
通过砸壳以及ida分析
加密是通过yd_md5:
方法进行加密,继续追踪。
调用CC_MD5
进行加密。
通过trace命令:frida-trace -UF -i "CC_MD5"
,可以很快速的破解该app的ydtoken
算法。frida默认trace是不能打印入参的,更改之后如下:
{onEnter(log, args, state) {log('CC_MD5()--arg[0]='+args[0].readUtf8String());},onLeave(log, retval, state) {log('CC_MD5()--return--=');var md5_digest = hexdump(retval,{length:16});var hexified = " ";var raw_array = md5_digest.split("\n");for (var a=0; a<raw_array.length; a++){var line_array = raw_array[a].split(" ");for (var b=1; b<line_array.length-1; b++) {if (line_array[b].length === 2){hexified += line_array[b];hexified = hexified.trim();}}}log(hexified+"\n");}
}
参数显示出来了
Mobile
在ida分析之后,发现该算法是属于des加密。
使用默认的CCCrypt继续trace:frida-trace -FU -i CCCrypt
更改之后的trace脚本代码较长,放在了github。
https://github.com/zhaoboy9692/dailyanalysis
响应分析
这里主要是针对响应内容无法正常看到信息,目前通过Mac的日志控制台定位发现,这里其实定位了好久,直到最后才通过日志找到算法位置。
接口返回信息失败这块的日志定位到该响应解密的位置parseStringByRule:
这里其实是对后台的数据做了一个映射。
sohoFilteredInfo
是把映射key和value做成字典。
这里的数字对应ASCII
的值,那要解密响应内容,只需要获取该key、value的映射关系即可。这里使用fridaHook、lldb进行获取该映射关系。
fridaHook
确定到算法位置之后,使用frida进行hook。
var className = "ADAuthenticationRule";
var methodName = "- parseStringByRule:";
var hooking = ObjC.classes[className][methodName];
Interceptor.attach(hooking.implementation, {onEnter: function (args) {var obj = ObjC.Object(args[0]);console.log('sohoFilteredInfo',obj.sohoFilteredInfo()) #调用映射方法。},onLeave: function (returnValues) {}
});
lldb
debugserver处理
- 将未经处理的debugserver从iOS拷贝到macOS中的,
scp root@iOSIP:/Developer/usr/bin/debugserver ~/debugserver
- 瘦身
lipo -thin arm64 ~/debugserver -output ~/debugserver
iphone5s是arm64 - 给debugserver添加task_for_pid权限
/opt/theos/bin/ldid -Sent.xml debugserver
或者codesign -s - --entitlements ent.plist -f debugserver
entitlements.plist - 将经过处理的debugserver拷回iOS
scp ~/debugserver root@iOSIP:/usr/bin/debugserver
- 在iOS上用debugserver来attach进程 :
ssh连接手机之后,使用debugserver localhost:1234 -a pid
lldb调试
在mac终端执行lldb。
使用iproxy
端口转发 iproxy 1234 1234
在lldb中执行
process connect connect://localhost:1234
链接手机debugserver
动态调试需要知道基地址+偏移。
查看macho基地址:
image list -f -o
,红色框就是基地址
计算需要下断点的地址:
下断地址=0x0000000000638000+0x0000000100104EF0=0x10073CEF0
此处地址是映射方法返回的值,也就是解密需要的映射表。
b 0x10073CEF0
下断点
运行app
停到了断点位置,读取x0的值,映射函数返回值给了x0寄存器。
po $x0
c
app继续运行。
更多命令可以 help
查看。
小结
该app用来练手最好不过,没有特别复杂的算法,又需要一定的耐心跟踪。在后边的映射中,要是更懂oc的语法,可能会更加上手。
文中涉及脚本github地址(喜欢可以点小星星):https://github.com/zhaoboy9692/dailyanalysis
参考文章
https://iosre.com/t/debugserver-lldb-gdb/65
https://www.jianshu.com/p/6e6bb0d0ee78
某app登录协议逆向分析相关推荐
- 360路由器登录协议的分析和模拟实现
本文博客地址:http://blog.csdn.net/qq1084283172/article/details/78878057 一.360路由器登录协议分析的工具配置 1. 路由器型号:360路由 ...
- 某饿了么APP最新版逆向分析(一)
某饿了么APP最新版逆向分析 一.抓包分析 由于业务原因,需要采集部分数据,上次采这个app还是几年前 以为抓一下包,模拟一下请求就能获取数据. 开启了抓包工具之后被打脸了,显示网络错误,重新刷新 这 ...
- 某游戏社区App | So层逆向分析
大家好,我是TheWeiJun,不知不觉已经来到了2022年底.回顾这一年,发生了太多事迹:有挫折.有喜悦.其中最开心的是结交了许多志同道合的朋友.本文将是笔者2022年最后一篇文章收官之战,全程高能 ...
- 基于Inspeckage的安卓APP抓包逆向分析——以步道乐跑APP为例
引言:本人最近稍微弄懂了inspeckage的用法,特在此以步道乐跑APP为例,较详细记录地记录APP抓包与简单的逆向分析过程,用于备忘与共同学习!另外,温馨提醒,本文图片较多,建议连接WiFi阅读! ...
- 天眼查app协议逆向分析
准备工具 脱壳工具:Fdex2 查壳工具:apk messager 抓包工具:Fiddler 分析工具:jadx hook框架:Frida 手机:root 的真机Android 7.0(模拟器一堆问题 ...
- 某车联网App 通讯协议加密分析(四) Trace Code
一.目标 之前我们已经通过Trace Block 来比对了Unidbg和App跑的结果.现在他们运行的流程都差不多了,但是结果还是不对,今天我们就要通过Trace Code进行更细致的对比. v6.1 ...
- 某饿了么APP最新版逆向分析(二):加密参数初探
二.分析加密参数 说做就做,这边用的python进行模拟请求 万事俱备只欠东风,点击run 发现报错了 怎么回事? 明明请求的内容和抓包的内容完全一致 怎么没有返回我们想要的数据 报错内容为参数错误 ...
- 酷安App V2 Token(X-App-Token)逆向分析(最新版12.4.2)
酷安App V2 Token逆向分析 仅用于研究和学习使用,禁止将相关技术应用到不正当途径,如侵犯隐私或权益,请联系我立即删除 文章目录 前言 新Token代码 前言 最近网上冲浪的时候,看到一篇关于 ...
- 网络协议逆向工具Netzob1.0.2的安装与试用
最近项目任务有需求,想探究一下对未知未加密网络协议的解析. 之前只了解过基本的计算机网络知识,对于具体的网络协议,更多是学术上的认识,而没有工程上的认知与实践.因此对于网络协议解析的工作,可谓是一筹莫 ...
最新文章
- 互联网对erp行业到底有什么影响
- ​万字总结83篇文献:深度强化学习之炒作、反思、回归本源
- 苹果 开发者账号区别
- qpython3l手机版怎么用_qpython怎么用
- 阿里云MVP闪亮云栖大会,技术干货持续更新中
- ELK套件FileBeat部署
- Apache RocketMQ 安装、测试、报错解决
- 算法工程师怎样提升业务理解能力?
- 用Tensorflow搭建预测磁盘性能的机器学习模型
- 我从编程总结的 22 个经验
- flutter中的列表组件
- SQL 常用脚本大全
- 【数据库】mysql日期格式转换
- VBA下载文件 使用WebBrowser 及 DoFileDownload
- 知其然(1) 无法使用 DISTINCT, GROUP BY 等子句从视图中选择 ROWID 或采样
- bilibili、腾讯视频下载方法及过程中遇到的一些问题
- 戴尔服务器r330系统设置,DELL台式机330的BIOS设置中文图解
- HTML语言中用什么标签来标识,为了标识一个html文件应该使用什么标签
- C22_OC12-protocol协议
- 2022(一等奖)C23“城轨促交融,慢行赋新机”—TOD模式下城市慢行接驳与碳减排辅助出行系统