叶孤城原创,转载须授权。


小白:偷窥狂,不,叶城主,怎么还不发起攻击,还在外围搞什么?

叶孤城:闭嘴,能外围解决的问题就不要破解,你以为你会天外飞仙啊!

小白:……

本文解决一个问题:通过抓包分析出重要信息。

小白:何为抓包?

叶孤城:就是截获网络上收发的数据包。

小白:网络上那么多数据包,怎么知道哪些是有用的?

叶孤城:所以只截获目标app的数据包就缩小了范围,但即便是缩小了范围,也需要进一步分析与排查。

小白:这是在垃圾堆里找坏人的行动时间与地点吗?这是使徒行者2的桥段啊,你有没有看过?

叶孤城:我在说抓包!不是垃圾堆!不是使徒行者!

小白:你抓,你抓,不要抓急嘛……

抓包的工具有很多,适合在不同的平台上使用。

这里只介绍charles的使用。

小白:都有什么样的抓包工具呢?

叶孤城:比如wireshark、tcpdump、tcpflow、charles、fiddler、sniffer等等。

小白:为什么只介绍charles,难道其它的不好用吗?

叶孤城:不是其它的不好用,是我一次只讲一个东西!如果你对其它感兴趣,可以在群里面提问嘛,反正我又不会回答。

小白:你......

Charles,mac上截取网络数据包的工具。

官网:http://www.charlesproxy.com

 
charles

(1)破解charles

用破解的charles.jar,替换程序包内Contents/Java目录下面的即可(比如4.0.1版本)。

小白:哇,好敷衍,我怎么找到charles.jar啊?

叶孤城:你会不会上网?如果不懂搜索技巧,你可以去问西门吹雪啊!

(2)使用charles

只要把charles运行起来,就可以看到截获到的数据包。

charles的视图分“按结构”跟“按顺序(时间先后)”,按顺序时可以筛选。
两个视图都可以选择特定的url,再选择focus,这样就重点观察这个url的相关请求与响应,不会跳来跳去。

mac上,抓https包,需要安装ssl证书:

help->ssl proxying ->install charles root cer..,
同时要在keychain中信息这个证书(简介->信任->ssl设置为始终信任)。

对于https包,确定url后,要右击选择enable ssl proxying,才可以做到解密https包。

可以右键选择breakpoints,这时会监控这个url的相关行为并下断点(可以修改发送请求等),在发送请求时、收到回复时、正在接收response body时,都会触发断点。触发断点后,可以执行“取消(即让其继续执行)”、“中止”、“执行”等操作,比如可以修改请求的值后再执行“execute”。

(3)演示:获取appstore的app的历史版本

iphone上使用的一些app,新版本还不如旧版本。

虽然appstore会把很旧的版本的下载链接给隐藏掉了,但货还是在的。

如何通过itunus拿到某个app的所有历史版本的信息,并下载到历史版本?

操作如下:

打开charles,再打开itunes并搜索到目标app,再下载这个app,会观察到
https://p23-buy.itunes.apple.com 是目标url,focus这个url。

对这个url选择enable ssl proxying,退出charles。

启动charles,删除掉itunes上已下载的目标aap,刷新并重新下载。

这时,在目标url下面的buyProduct页面的contents的response部分,
会显示一个array,是一堆id串,
这个就是不同版本的下载id(用xml text来查看,可拷贝)。

再次删除已下载的app,并对目标url加上breakpoints,再次下载app。

在发送request时会触发断点,选择edit request页面并选择
xml text查看模式,把下载id替换成目标下载id,
之后不断点击execute或取消掉断点再执行。

这时,itunes会下载到目标版本的app,之后可以找到对应的ipa,并同步到手机。

(4)演示:抓取qq音乐歌手详情的信息

操作如下:

charles,proxy->proxy setting,port使用8888,
勾选enalbe transperent http proxying,开启代理。

help->local ip address,查看charles代理的ip地址。

手机,如iphone,wifi信息->http代理,填写服务器(charles的代理ip)
与端口(8888)。

手机会连接上charles,允许它连接。

对于https协议,手机上需求安装ssl的证书:
在safari上输入http://charlesproxy.com/getssl,跳转安装证书。

锁定目标url,即可拿到数据。
比如,对于iphone上的qq音乐的歌手详情,目标url是
https://c.y.qq.com,focus它,
右键打开ssl proxy,就可以拿到详情信息。

(5)演示:获取“抖音短视频”的歌曲下载链接

小白:我知道!这个抖音短视频很好玩的,所有歌曲都只是副歌部分。它的下载链接是可以用的吗?歌曲是否加密了?

叶孤城:当然可以用了,歌曲至少现在是没有加密的。

抖音,大概有50几万首歌曲。

可以通过搜索接口或者分类歌曲接口,来取得歌曲列表信息。歌曲列表信息是json格式的内容,其中包括这样的信息:

        "play_url": {
            "url_list": [
                "http://p3.pstatp.com/obj/29c90000eb8b5ca6fff2"
            ],
            "uri": "29c90000eb8b5ca6fff2"
        },

url_list就是歌曲下载链接。除了这个,还可以找到歌手名、歌曲名等。

小白:为什么不详细说说请求链接是什么呀?

叶孤城:这个影响太大了,而演示只是为了学习,不能泄密的。如果你想了解更多信息,可以在群里面问嘛,反正我又不会回答。

小白:我去!


鸡汤时间

长得丑就是病,不然整形医院为什么叫医院。

岁月是把杀猪刀,是针对那些好看的人,它对长得丑的人一点办法都没有。

假如生活欺骗了你,不要悲伤,不要绝望,因为明天,后天,大后天,
生活还会继续欺骗你。

年轻人嘛,现在没钱算什么,以后没钱的日子还长着呢。

当你觉得自己又丑又穷,一无是处时,不要灰心也不要绝望,因为至少你的判断是对的。

爱笑的姑娘运气都不会太差。------ 运气差的姑娘根本笑不出来!

年轻的时候多吃些苦,这样老了吃苦才习惯。

总有一天,你会遇到一个好姑娘,她不要你的房,也不要你的车,
不要钻石,更不要你的钱,当然她也不要你。

生活不止眼前的苟且,还有永远读不懂的诗和到不了的远方。

我的意中人是盖世英雄,有一天他会踩着七色彩云娶别人。

悲剧分为两种,一种叫悲剧,一种叫没钱。

长得好看不能当饭吃,但是长得不好看真的会让人吃不下饭。

死并不可怕,怕的是再也不能活了。

有人问我如何在这个物质横流的社会独善其身,我回答了一个字“穷”。

在外围获取APP的机密信息的更多相关文章

  1. iOS获取app图标和启动图片名字(AppIcon and LaunchImage's name)

    在某种场景下,可能我们需要获取app的图标名称和启动图片的名称.比如说app在前台时,收到了远程通知但是通知栏是不会有通知提醒的,这时我想做个模拟通知提示,需要用到icon名称:再比如在加载某个控制器 ...

  2. 获取APP应用的包名信息

    语言: python 3.7 需求:获取APP的包名和程序入口信息,以便在 Appium 脚本中配置 appPackage 和 appActivity 参数. 场景一 资源:已有APP应用的apk安装 ...

  3. Appium+Python自动化 3 -获取 app 包名和 activity

    方法一: ①手机通过USB连接电脑 ②打开手机上被测app ③在电脑上 dos命令窗口,输入命令 adb shell dumpsys window w | findstr \/ | findstr n ...

  4. MonkeyRunner 之如何获取APP的Package Name和Activity Name

    别人写的就收藏了: MonkeyRunner 之如何获取APP的Package Name和Activity Name http://www.mamicode.com/info-detail-51278 ...

  5. 使用Fidder从安卓模拟器获取APP内H5游戏网址

    大家都知道H5游戏其实是网页,但是有些APP或者微端不显示网址链接.这里给大家介绍介绍一种,利用Fiddler进行抓包,获取APP打开的网址的方法.有人说何必多此一举呢,直接用模拟器玩游戏就好了.的确 ...

  6. 用代码获取APP启动页图片

    用代码获取APP启动页图片 源码 - swift // // AppleSystemService.swift // Swift-Animations // // Created by YouXian ...

  7. 快速获取APP对应的appPackage和appActivity

    appPackage和appActivity 进行appium自动化测试非常重要的两个参数,我们所测试的APP不同,这两个参数肯定也是不一样的. 介绍两种方法可快速获取APP的这两个参数: 方法一 1 ...

  8. 获取APP地图权限

    获取APP地图权限 NSLocationWhenUseUsageDescription,在info里面设置为空

  9. 小程序中关于获取app实例与当前组件

    1.getApp()来获取 App 实例 2.getCurrentPages()获取前页面栈

随机推荐

  1. 机器学习技法:06 Support Vector Regression

    Roadmap Kernel Ridge Regression Support Vector Regression Primal Support Vector Regression Dual Summ ...

  2. Warning: Path must be a string . Received null Use --force to continue

    用grunt监视文件,当文件修改时,出现'Warning: Path must be a string . Received null Use --force to continuechuxian . ...

  3. 在VM12中安装 RedHat RHEL7.2  系统的详细步骤

    一.开始安装 1)新建虚拟机 RHEL7.2 2)成功引导系统--开机出现此画面 Install Red Hat EnterpriseLinux 7.2  安装RHLE7.2 操作系统 Test th ...

  4. Coursera上视频无法播放将怎么解决?

    相信很多朋友在播放Coursera中的视频都会遇到一个问题,视频全黑,点击播放,进度条转了一圈又消失不见. 这时候我们该找找是什么问题啦? 解决方法一: 如果你是FQ看的网课视频,那么你把VPN从au ...

  5. linux学习(六)绝对路径、相对路径、cd、mkdir、rmdir、rm

    一.绝对路径 就是从根开始的,如:/root./usr/local. 二.相对路径 相对于当前路径的,比如我们在当前路径下建立了一个a.txt. [root@iZ25lzba47vZ ~]# pwd ...

  6. 在jsp提交表单的参数封装到一个方法里

    建议去看一下孤傲苍狼写的Servlet+JSP+JavaBean开发模式(http://www.cnblogs.com/xdp-gacl/p/3902537.html), 最好把他JavaWeb学习总 ...

  7. android视频播放器系列(一)——系统播放器

    使用系统播放器(intent隐士调用)可以播放本地视频和网络视频,但是使用方式上稍微有点差别: 一.播放本地视频 Uri uri = Uri.parse("本地视频地址");Int ...

  8. 移动端车牌识别sdk开发包(可下载)

    移动端车牌识别是一项基于OCR识别的应用技术.移动端车牌识别过程主要包含五个步骤,其中包括图像采集.图像预处理.车牌定位.字符分割.字符识别.输出结果等一系列计算机算法运算, 第一步[图像采集]:此步 ...

  9. python链接mysql以及常用语法

    MySQL是一个关系型数据库管理系统 ,其体积小.速度快.总体拥有成本低,尤其是开放源码这一特点,一般中小型网站的开发都选择 MySQL 作为网站数据库.在使用过程中不总是和它打交道,导致使用时候都得 ...

  10. R语言高性能编程(二)

    接着上一篇 一.减少内存使用的简单方法1.重用对象而不多占用内存 y <- x 是指新变量y指向包含X的那个内存块,只有当y被修改时才会复制到新的内存块,一般来说只要向量没有被其他对象引用,就可 ...