iphone - 使用 MobileSubstrate 修改 iPhoneOS 上的所有 HTTP 请求?

标签 iphone objective-c http networking jailbreak

我想编写一个 MobileSubstrate ( http://www.iphonedevwiki.net/index.php/MobileSubstrate) 插件,它接受每个 HTTP 请求并修改 URL。 (原因非常复杂,需要一段时间才能解释,所以请相信我,别无选择)。基本上,我需要知道什么是最好的 Objective-C 消息或 C 函数,我应该覆盖它们以拦截任何 HTTP 请求、修改 URL 并将请求发送回原始函数(这不应该只是发送的第一个请求通过一个应用程序,但也有任何重定向)。我认为它可能在 NSURL 或 CFNetwork 中,但不确定具体位置。此功能在替换后应该适用于任何应用程序和操作系统本身。

编辑: 好的,这是我想做的两个示例场景,请注意,要覆盖的方法应该是从应用程序到操作系统的任何地方的任何 HTTP 请求调用的方法:
1) MobileSafari 中的用户在 aaa.com/a.html 中输入
2) aaa.com/a.html 重定向到 aaa.com/b.html
3) aaa.com/b.html 加载 bbb.com/c.png
我想更改请求,以便添加 ?i=j。
例如:将所有 aaa.com/a.html 更改为 aaa.com/a.html?i=j, aaa.com/b.html?i=j, bbb.com/c.png?i=j?

还有一个:
1) 用户使用 Maps.app
2) Google map 尝试加载 google.com/map1.png(我知道这不是实际图像)
将 google.com/map1.png 更改为 google.com/map1.png?i=j?

最佳答案

挂接以下方法并将请求替换为您已编辑的 mutableCopy

  • -[NSURLConnection sendWillSendRequest:redirectResponse:]
  • -[NSURLConnection initWithRequest:delegate:]
  • –[NSURLConnection initWithRequest:delegate:startImmediately:]

这不会重定向原始 TCP 套接字连接,只会重定向通过标准 API 汇集的 HTTP 请求。

注意:在这样做时要非常小心。在我看来,重定向所有 http 请求违反了用户信任

关于iphone - 使用 MobileSubstrate 修改 iPhoneOS 上的所有 HTTP 请求?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2734120/

相关文章:

ios - 越狱 |无法访问/private/var/mobile/Library 中的文件夹

ios - 如何将水平 UICollectionView 的第一个和最后一个单元格居中?

ios - 如何在 AFImageRequestOperation 中设置超时值

python - Riak - 尝试使用 Python 客户端库连接到 Riak 集群时连接被拒绝

javascript - AngularJS $scope 在 javascript 中更新但在 html 中不更新

iphone - 在 iOS 中将动态内容加载到 UITableView 的正确方法

ios - 无法滚动到 UIScrollView 中嵌入的 UITableView 的顶部

ios - 检查 iOS 键盘中是否存在单词建议/词典

node.js - 用户注销 : Redirect GET to POST (Node/Express)

ios - 从 iphone 相机捕获图像或从库中获取图像,如何获取图像捕获时间?