写点什么

【iOS 逆向】某车之家 sign 签名分析

作者:小陈
  • 2022 年 8 月 04 日
  • 本文字数:2547 字

    阅读完需:约 8 分钟

阅读此文档的过程中遇到任何问题,请关注公众号【移动端Android和iOS开发技术分享】或加 QQ 群【309580013

1.目标

分析某车之家 sign 签名算法的实现

2.操作环境

  • frida

  • mac 系统

  • Charles 抓包

  • 越狱 iPhone

3.流程

寻找切入点

通过 Charles 抓包获取到关键词为_sign,这也就是我们的切入点:


静态分析

在静态分析前,我们先观察 sign 值的特征,比如 32 位就有可能是 md5,数字加字母加+/然后以=号结尾的,就有可能是 base64。


通过肉眼观察,发现 sign 签名的长度是 32 位大写,第一直觉就是 MD5,接下来直接进入动态调试去 hook md5 函数,看看该加密是否为 md5

动态分析

使用 frida 工具的frida-trace -UF -i CC_MD5命令跟踪 CC_MD5 函数,代码如下:


{  onEnter(log, args, state) {    log(`CC_MD5(${args[0].readUtf8String()})`);    },  onLeave(log, retval, state) {    log(`CC_MD5()${hexdump(retval, {length:16})}`);  }}
复制代码


执行frida-trace -UF -i CC_MD5后,点击登录按钮,日志输出如下:


witchan@witchandeAir ~ % frida-trace -UF -i CC_MD5Instrumenting...CC_MD5: Loaded handler at "/Users/witchan/__handlers__/libcommonCrypto.dylib/CC_MD5.js"Started tracing 1 function. Press Ctrl+C to stop.           /* TID 0x303 */  6214 ms  CC_MD5(2222)  6215 ms  CC_MD5()            0  1  2  3  4  5  6  7  8  9  A  B  C  D  E  F  0123456789ABCDEF16f051548  93 4b 53 58 00 b1 cb a8 f9 6a 5d 72 f7 2f 16 11  .KSX.....j]r./..  6216 ms  CC_MD5(@7U$aPOE@$Version1_appidapp.iphone_timestamp1658455619autohomeuaiPhone  12.5.5  autohome  11.25.0  iPhoneisCheckModeratorsRemote1isapp1logincode%31%31%31%31%31%31%31%31%31%31%31reffersessionida2b93cb5da721aa55ca1a87b2e919b3d3cd214e6showmob1userpwd934B535800B1CBA8F96A5D72F72F1611validcode3333@7U$aPOE@$)  6216 ms  CC_MD5()            0  1  2  3  4  5  6  7  8  9  A  B  C  D  E  F  0123456789ABCDEF16f051478  50 03 73 09 75 58 bb 53 72 80 20 54 b1 39 2b d4  P.s.uX.Sr. T.9+.  6219 ms  CC_MD5(https://118.116.0.118/api/UserApi/StandardLoginAHLoginAccountLoginService)  6219 ms  CC_MD5()            0  1  2  3  4  5  6  7  8  9  A  B  C  D  E  F  0123456789ABCDEF16f051118  17 9a 87 99 d6 48 43 ab 69 a0 b8 62 1d d0 a8 0d  .....HC.i..b....  6221 ms  CC_MD5(MGCopyAnswerDeviceName)  6221 ms  CC_MD5()            0  1  2  3  4  5  6  7  8  9  A  B  C  D  E  F  0123456789ABCDEF16f0504c8  ae 4a a5 c0 f7 11 1f 08 b1 63 88 1a a4 f8 da 9f  .J.......c......  6221 ms  CC_MD5(MGCopyAnswerProductVersion)  6221 ms  CC_MD5()            0  1  2  3  4  5  6  7  8  9  A  B  C  D  E  F  0123456789ABCDEF16f0504c8  a8 d3 5d 76 55 0a f8 1f d8 96 8a 0d a3 29 b0 80  ..]vU........)..  6222 ms  CC_MD5(MGCopyAnswerDeviceName)  6222 ms  CC_MD5()            0  1  2  3  4  5  6  7  8  9  A  B  C  D  E  F  0123456789ABCDEF16f0504c8  ae 4a a5 c0 f7 11 1f 08 b1 63 88 1a a4 f8 da 9f  .J.......c......  6222 ms  CC_MD5(MGCopyAnswerProductVersion)  6222 ms  CC_MD5()            0  1  2  3  4  5  6  7  8  9  A  B  C  D  E  F  0123456789ABCDEF16f0504c8  a8 d3 5d 76 55 0a f8 1f d8 96 8a 0d a3 29 b0 80  ..]vU........)..  6223 ms  CC_MD5(@7U$aPOE@$apisign1|a2b93cb5da721aa55ca1a87b2e919b3d3cd214e6|autohomebrush|1658455619@7U$aPOE@$)  6223 ms  CC_MD5()            0  1  2  3  4  5  6  7  8  9  A  B  C  D  E  F  0123456789ABCDEF16f050498  70 c0 71 0b 37 23 3a 29 d8 44 02 d7 f6 20 a5 0c  p.q.7#:).D... ..  6227 ms  CC_MD5(MGCopyAnswerProductVersion)  6227 ms  CC_MD5()            0  1  2  3  4  5  6  7  8  9  A  B  C  D  E  F  0123456789ABCDEF16f0527b8  a8 d3 5d 76 55 0a f8 1f d8 96 8a 0d a3 29 b0 80  ..]vU........)..  6228 ms  CC_MD5(MGCopyAnswerProductVersion)  6228 ms  CC_MD5()            0  1  2  3  4  5  6  7  8  9  A  B  C  D  E  F  0123456789ABCDEF16f052748  a8 d3 5d 76 55 0a f8 1f d8 96 8a 0d a3 29 b0 80  ..]vU........)..           /* TID 0x552bf */
复制代码


搜索 _sign 值 500373097558BB5372802054B1392BD4 后发现结果:


  6216 ms  CC_MD5(@7U$aPOE@$Version1_appidapp.iphone_timestamp1658455619autohomeuaiPhone  12.5.5  autohome  11.25.0  iPhoneisCheckModeratorsRemote1isapp1logincode%31%31%31%31%31%31%31%31%31%31%31reffersessionida2b93cb5da721aa55ca1a87b2e919b3d3cd214e6showmob1userpwd934B535800B1CBA8F96A5D72F72F1611validcode3333@7U$aPOE@$)  6216 ms  CC_MD5()            0  1  2  3  4  5  6  7  8  9  A  B  C  D  E  F  0123456789ABCDEF16f051478  50 03 73 09 75 58 bb 53 72 80 20 54 b1 39 2b d4  P.s.uX.Sr. T.9+.
复制代码

结果

sign 就是一个简单的 32 位的大写 MD5


入参:@7UVersion1_appidapp.iphone_timestamp1658455619autohomeuaiPhone 12.5.5 autohome 11.25.0 iPhoneisCheckModeratorsRemote1isapp1logincode%31%31%31%31%31%31%31%31%31%31%31reffersessionida2b93cb5da721aa55ca1a87b2e919b3d3cd214e6showmob1userpwd934B535800B1CBA8F96A5D72F72F1611validcode3333@7U


逐个分析:


@7U前缀


Version1 版本


_appidapp.iphone 应用标识


_timestamp1658455619 时间戳


autohomeuaiPhone 12.5.5 autohome 11.25.0 iPhone 手机 UA


isCheckModeratorsRemote1 不晓得


isapp1 是否为手机


logincode%31%31%31%31%31%31%31%31%31%31%31 手机号,原始手机号为 11111111111。当入参为 00123456789 时,该字段为 00%3123456789,结论:string 里的 1 替换为 %31


reffer 来源


sessionida2b93cb5da721aa55ca1a87b2e919b3d3cd214e6 队列 id


showmob1 不晓得


userpwd934B535800B1CBA8F96A5D72F72F1611 密码 MD5


validcode3333 验证码


@7U 后缀

End

阅读此文档的过程中遇到任何问题,请关注公众号【移动端Android和iOS开发技术分享】或加 QQ 群【309580013


发布于: 刚刚阅读数: 3
用户头像

小陈

关注

还未添加个人签名 2019.03.12 加入

还未添加个人简介

评论

发布
暂无评论
【iOS逆向】某车之家sign签名分析_iOS逆向_小陈_InfoQ写作社区