某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登录协议逆向分析相关推荐

  1. 360路由器登录协议的分析和模拟实现

    本文博客地址:http://blog.csdn.net/qq1084283172/article/details/78878057 一.360路由器登录协议分析的工具配置 1. 路由器型号:360路由 ...

  2. 某饿了么APP最新版逆向分析(一)

    某饿了么APP最新版逆向分析 一.抓包分析 由于业务原因,需要采集部分数据,上次采这个app还是几年前 以为抓一下包,模拟一下请求就能获取数据. 开启了抓包工具之后被打脸了,显示网络错误,重新刷新 这 ...

  3. 某游戏社区App | So层逆向分析

    大家好,我是TheWeiJun,不知不觉已经来到了2022年底.回顾这一年,发生了太多事迹:有挫折.有喜悦.其中最开心的是结交了许多志同道合的朋友.本文将是笔者2022年最后一篇文章收官之战,全程高能 ...

  4. 基于Inspeckage的安卓APP抓包逆向分析——以步道乐跑APP为例

    引言:本人最近稍微弄懂了inspeckage的用法,特在此以步道乐跑APP为例,较详细记录地记录APP抓包与简单的逆向分析过程,用于备忘与共同学习!另外,温馨提醒,本文图片较多,建议连接WiFi阅读! ...

  5. 天眼查app协议逆向分析

    准备工具 脱壳工具:Fdex2 查壳工具:apk messager 抓包工具:Fiddler 分析工具:jadx hook框架:Frida 手机:root 的真机Android 7.0(模拟器一堆问题 ...

  6. 某车联网App 通讯协议加密分析(四) Trace Code

    一.目标 之前我们已经通过Trace Block 来比对了Unidbg和App跑的结果.现在他们运行的流程都差不多了,但是结果还是不对,今天我们就要通过Trace Code进行更细致的对比. v6.1 ...

  7. 某饿了么APP最新版逆向分析(二):加密参数初探

    二.分析加密参数 说做就做,这边用的python进行模拟请求 万事俱备只欠东风,点击run 发现报错了 怎么回事? 明明请求的内容和抓包的内容完全一致 怎么没有返回我们想要的数据 报错内容为参数错误 ...

  8. 酷安App V2 Token(X-App-Token)逆向分析(最新版12.4.2)

    酷安App V2 Token逆向分析 仅用于研究和学习使用,禁止将相关技术应用到不正当途径,如侵犯隐私或权益,请联系我立即删除 文章目录 前言 新Token代码 前言 最近网上冲浪的时候,看到一篇关于 ...

  9. 网络协议逆向工具Netzob1.0.2的安装与试用

    最近项目任务有需求,想探究一下对未知未加密网络协议的解析. 之前只了解过基本的计算机网络知识,对于具体的网络协议,更多是学术上的认识,而没有工程上的认知与实践.因此对于网络协议解析的工作,可谓是一筹莫 ...

最新文章

  1. 互联网对erp行业到底有什么影响
  2. ​万字总结83篇文献:深度强化学习之炒作、反思、回归本源
  3. 苹果 开发者账号区别
  4. qpython3l手机版怎么用_qpython怎么用
  5. 阿里云MVP闪亮云栖大会,技术干货持续更新中
  6. ELK套件FileBeat部署
  7. Apache RocketMQ 安装、测试、报错解决
  8. 算法工程师怎样提升业务理解能力?
  9. 用Tensorflow搭建预测磁盘性能的机器学习模型
  10. 我从编程总结的 22 个经验
  11. flutter中的列表组件
  12. SQL 常用脚本大全
  13. 【数据库】mysql日期格式转换
  14. VBA下载文件 使用WebBrowser 及 DoFileDownload
  15. 知其然(1) 无法使用 DISTINCT, GROUP BY 等子句从视图中选择 ROWID 或采样
  16. bilibili、腾讯视频下载方法及过程中遇到的一些问题
  17. 戴尔服务器r330系统设置,DELL台式机330的BIOS设置中文图解
  18. HTML语言中用什么标签来标识,为了标识一个html文件应该使用什么标签
  19. C22_OC12-protocol协议
  20. 2022(一等奖)C23“城轨促交融,慢行赋新机”—TOD模式下城市慢行接驳与碳减排辅助出行系统

热门文章

  1. 分享一个stm8s003单片机的ADC转换,附加一个冒泡算法(用于减少误差)
  2. (私人收藏)200个精品图标
  3. PostgreSQL数据库服务的优势有哪些
  4. 图解排序算法及实现——快速排序 (Quick Sort)
  5. 每天都在用电脑、玩手机的你,现在的眼睛有多干?
  6. 【机器学习算法】神经网络和深度学习-4 重要的BP网络使用总结,了解BP神经网络的魅力
  7. Rosetta Stone 罗赛塔 罗塞塔 石碑
  8. 黑客攻防技术宝典Web实战篇(第二版)_读书笔记(第一章~第三章)
  9. 危险进程集粹(附说明)
  10. win10磁盘占用100%