请选择 进入手机版 | 继续访问电脑版
您好,欢迎访问! 登录

QQ登录

只需一步,快速开始

立即注册 切换到窄版
查看: 1883|回复: 1

[转载] 在iOS上深度追踪HTTP/HTTPS/UIWebView请求的方法和插件

[复制链接]

  离线 

25

主题

51

帖子

159

积分

版主

Rank: 7Rank: 7Rank: 7

积分
159
发表于 2014-6-9 11:50:56 | 显示全部楼层 |阅读模式
标 题: 【原创】在iOS上深度追踪HTTP/HTTPS/UIWebView请求的方法和插件
作 者: Yonsm
时 间: 2014-04-15,22:58:48
链 接: http://bbs.pediy.com/showthread.php?t=186625

HTTP 请求 Sniffer 很多工具可以做,至于 HTTPS 则使用 Charles 做中间人攻击也可以拿到全部 HTTPS 请求的细节,并且不限定于 iOS(具体方法这里就不说了,不是本文重点)。

但是,这些协议层的分析往往只能分析协议细节,想要深度追踪 HTTP/HTTPS/UIWebView 数据的生成细节的话,很多时候还是无能为力的。此时我们需要定位到数据生成的进程、模块、调用堆栈,进而找到相关代码继续做逆向工程分析——HttPeek 插件就是这样用途的插件,用法:

1. 在已越狱的系统中安装 Cydia Substrate;

2. 把 HttPeek.dylib 点此下载 放到 Cydia Substrate 的插件目录中(/Library/MobileSubstrate/DynamicLibraries),并重启设备或相关进程;

3. 操作重现,确保你期望监听的 HTTP/HTTPS/UIWebView 请求已发生;

4. 在 /tmp/%进程名称%.req 目录中获取改进程所有的 HTTP/HTTP/UIWebView 请求细节的日志,比如:

代码:
  1. FROM /System/Library/PrivateFrameworks/iTunesStore.framework/iTunesStore(0x3990e000)-<redacted>(0x399183e1=>0x0093e1)
  2. <(
  3.      0   HttPeek.dylib                       0x0199fcb1 _Z10LogRequestP12NSURLRequestPv + 496
  4.      1   HttPeek.dylib                       0x019a03cb _Z22$NSURLConnection_startP11objc_objectP13objc_selector + 50
  5.      2   iTunesStore                         0x3991880b <redacted> + 1066
  6.      3   iTunesStore                         0x399183a5 <redacted> + 360
  7.      4   iTunesStore                         0x399148df <redacted> + 386
  8.      5   iTunesStore                         0x3991f78b <redacted> + 598
  9.      6   iTunesStore                         0x3991e421 <redacted> + 544
  10.      7   iTunesStore                         0x399137cd <redacted> + 288
  11.      8   iTunesStore                         0x39912c69 <redacted> + 620
  12.      9   iTunesStore                         0x3991230d <redacted> + 276
  13.      10  iTunesStoreUI                       0x39a636bb <redacted> + 354
  14.      11  iTunesStoreUI                       0x39a63011 <redacted> + 164
  15.      12  iTunesStore                         0x399137cd <redacted> + 288
  16.      13  iTunesStore                         0x39912c69 <redacted> + 620
  17.      14  Foundation                          0x315c07db <redacted> + 770
  18.      15  Foundation                          0x31664995 <redacted> + 60
  19.      16  libdispatch.dylib                   0x3b5bb68f <redacted> + 110
  20.      17  libdispatch.dylib                   0x3b5bcd71 <redacted> + 220
  21.      18  libdispatch.dylib                   0x3b5bcf59 <redacted> + 56
  22.      19  libsystem_pthread.dylib             0x3b6f7dbf _pthread_wqthread + 298
  23.      20  libsystem_pthread.dylib             0x3b6f7c84 start_wqthread + 8
  24. )>
  25. POST: https://play.itunes.apple.com/WebObjects/MZPlay.woa/wa/signSapSetup
  26. {
  27.      "Accept-Language" = "zh-Hans";
  28.      Cookie = "mzf_odc=ST1; xp_ci=3z22aB6Jz841z576zB2szwxWTgkNv; mzf_in=112351; s_vi=[CS]v1|2983AD4B05010B41-600001338012E27D[CE]; Pod=11; itspod=11; ns-mzf-inst=36-85-80-109-88-8294-112351-11-st11; session-store-id=d79638dc54b6dec6c1116ba8fe8e4d84";
  29.      "User-Agent" = "AppStore/2.0 iOS/7.0.4 model/iPhone4,1 (6; dt:73)";
  30.      "X-Apple-Client-Versions" = "GameCenter/2.0";
  31.      "X-Apple-Connection-Type" = WiFi;
  32.      "X-Apple-Partner" = "origin.0";
  33.      "X-Apple-Store-Front" = "143465-19,21 t:native";
  34. }

  35. <?xml version="1.0" encoding="UTF-8"?>
  36. <!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
  37. <plist version="1.0">
  38. <dict>
  39.      <key>sign-sap-setup-buffer</key>
  40.      <data>
  41.      AgAAANIISnQ/0ZM7Y5AO05eY5ugZbrkHNJoRsyFGn+P03FNKZTQmjN/Ha0pbt9Xkfgjz
  42.      rrdfL3kxiThvq7duDjJp3GO7OatGg7Iyr7x/RJtClXmAoK2uL0rjxqyN36cgIbmYrP2I
  43.      ZidsvuCHDj13S77kleOuKkuGFZN3JxIMm0OfJG7sqL/GO+2Upo8k0adRhiMj9asFhCxI
  44.      LdxM2hcZ30cXKhV+fCRYybJm4UHX33lHAWed+6rty6gMzK+m/QbUWhTR2XCWOrEFs+qM
  45.      Xq1QULQ3kJGPlVYFHaFoVDXRzfsNLTCsql353InFNdTxMdNTxqt9YqmmT+apJTHUq8xA
  46.      +C9FOQ6G/u35sTGOZUUPxtjTiauYdfYgBs5ULIjwCQAAADCsp7cq8VDLhfHkRGX0idYF
  47.      kNxP/T1GaG1V0U9kWE0gT5cFAPe464nMsRgxouM2wwEf4hsJkobd98rw1a4xrOAEtFn1
  48.      iw==
  49.      </data>
  50. </dict>
  51. </plist>
复制代码

可以看到,Charles 等常规 Sniffer 软件中能看到的发送和接收细节都有,此外还有完整的 CallStack 记录,上例中一看就知道数据是 /System/Library/PrivateFrameworks/iTunesStore.framework/iTunesStore 这个模块发送的的请求,在 Xcode 的 iOS SDK 中可以找到这个模块,进而继续逆向分析它。

PS1:HttPeek 还支持 UIWebView Request 的监听。

PS2:源代码可免费获取(https://github.com/Yonsm/CeleWare/tree/master/HttPeek,也可以作为一个很完善的Substrate插件模板,无需引入Substrate.h,可快速添加Hook方法,配合Camo方案可以混淆代码中的符号以防止被逆向分析)。



我不会告诉你,在游源签到是一种执着!
回复

使用道具 举报

  离线 

0

主题

4

帖子

20

积分

游源小侠

Rank: 2Rank: 2

积分
20
发表于 2017-2-9 01:47:42 | 显示全部楼层
看过必回,人品超好!













券值播(www.quanzb.com)-有免费淘宝优惠券领取,24小时最新淘宝全网内部优惠券,更多淘宝/天猫优惠券请访问券值播。
官网:www.quanzb.com PC端更有最新搜券功能,有没有隐藏券,输入商品链接一搜就知道。
百度APP(券值播)下http://shouji.baidu.com/software/10688978.html
安卓市场(券值播)下http://apk.hiapk.com/appinfo/com.f276499452.vde
PC6安卓网(券值播)下http://www.pc6.com/az/410918.html
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

站点统计|小黑屋|手机版|Archiver|游源网 ( 冀ICP备14006073号-1

Copyright 2013 最新最精彩-社区论坛 版权所有 discuz 模板All Rights Reserved.

Powered by Discuz! X3.2

© 2001-2013 Comsenz Inc.

快速回复 返回顶部 返回列表