使用Fiddler嗅探Android App网络流量并还原大象公会RESTful API

缘由

很喜欢大象公会的文章,很讨厌微信公众号这种封闭平台。

但其首要的文章发布平台是微信,还好官网也提供Android App下载。

吐槽:官网没有HTTPS保护;Android App没有上架Google Play Store,还好提供直接下载链接,而不是像Vice中国那样放在第三方“应用商店”,然而下载链接也未做HTTPS保护。

手机启用未知安装来源(Unknown sources),安装大象公会Apk,发现

Blocked by Play Protect

This app can collect data that may be used to track you.

由于Apk的下载链接是HTTP,有被篡改或替换的风险。首先排除安装包被替换的可能(毕竟得到的还是大象公会,不是应用宝。。。);其次,运营商暂时没有对安装包注入恶意代码的需求;所以,应该是因为大象公会Android App接入了国内某些统计SDK,这种情况比较常见。

因此,有必要看一下大象公会的Android App究竟如何与服务器交互,为后面第三方客户端的开发做基础。

嗅探

嗅探Android App HTTP数据包主要有两种方法:

  1. 在Android本地嗅探,工具如Packet Capture
  2. 在网络传输过程中嗅探,如PC代理,经典工具有Fiddler, Charles, Burp suite

Fiddler, Charles, Burp suite等工具嗅探Android App流量的原理都一样,即联网的PC安装上述客户端,在局域网内提供HTTP代理,设置Android手机Wi-Fi流量走该代理。

Android Wi-Fi HTTP Proxy

之前一直用Burp suite,但其更着重捕获,而非监听,所以要设置放行规则,本次需求中体验较差,故使用Fiddler。

Fiddler需要先Allow remote computers to connect

Fiddler Proxy

端口即Android设置Wi-Fi HTTP Proxy时填的端口。

然后,PC本机的流量及使用Fiddler HTTP代理的流量都会显示。

RESTful API

打开大象公会App,刷新或者点击单篇文章,Fiddler中出现对应的RESTFul请求,否定了之前的猜测:文章存储在微信公众号,客户端只是套壳浏览器。

Elephant Magazine

看来大象公会网站已经实现了完整的RESTful API,提供Web网页很容易,不清楚为什么没有提供,毕竟Web是这个时代最开放的平台。

获取文章列表API:

http://app.idaxiang.org/api/v1_0/art/list?pageSize=20

pageSize指定返回的文章条目数量:

{
    "body": {
        "ad": {
            "welcome_ad": "0",
            "article_ad": "0",
            "css_version_code": "1"
        },
        "article": [
            {
                "id": "1071",
                "title": "唐朝真的「对外开放」吗?",
                "headpic": "http://static.idaxiang.org/fb875f7f0d51225ff62afb3492845c22_thumb.jpeg",
                "raw_headpic": "http://static.idaxiang.org/fb875f7f0d51225ff62afb3492845c22.jpeg",
                "author": "石禄珊",
                "brief": "唐朝的「对外开放」,是一种「外面的能进来,里面的难出去,进来了休想走」的开放。",
                "read_num": "2457",
                "wechat_url": "https://mp.weixin.qq.com/s?__biz=MjM5NzQwNjcyMQ==&mid=2651015947&idx=1&sn=8c0fd661ffb13ba8641d956a3279985b&chksm=bd2d9a658a5a13735e19a78664f28bf554eed56e1f26fd6a13b8684dba7673ca543e79039c64#rd",
                "url": "",
                "create_time": "1526486400",
                "update_time": "1526567239"
            },
            {
                "id": "1070",
                "title": "南怀瑾的江湖",
                "headpic": "http://static.idaxiang.org/bacf201ecbaf03e61fadf6027dad7e4d_thumb.jpeg",
                "raw_headpic": "http://static.idaxiang.org/bacf201ecbaf03e61fadf6027dad7e4d.jpeg",
                "author": "李青岚",
                "brief": "他以绝大机缘和自身禀赋,在特殊的历史行程里占据了一个独一无二的生态位。南怀瑾可以成为「国学大师」,但国学大师绝不可能成为南怀瑾。",
                "read_num": "1815",
                "wechat_url": "https://mp.weixin.qq.com/s?__biz=MjM5NzQwNjcyMQ==&mid=2651015925&idx=1&sn=a64dab30eff2ec6f9e9f9c0ef735acc1&chksm=bd2d9b9b8a5a128d0310124939d393b605c6de66b621e63998ad625161a0c0d8c339718107e6#rd",
                "url": "",
                "create_time": "1526400000",
                "update_time": "1526567348"
            }
        ]
    },
    "head": {
        "code": 0,
        "message": "",
        "has_more": true
    }
}

获取指定文章API:

http://app.idaxiang.org/api/v1_0/art/info?id=400

id即文章ID,返回指定文章内容:

{
    "body": {
        "article": {
            "id": "400",
            "title": "上海为什么缺少创业家",
            "headpic": "http://static.idaxiang.org/d6973a16ee62198c80127569b6e03e43_thumb.jpg",
            "raw_headpic": "http://static.idaxiang.org/d6973a16ee62198c80127569b6e03e43.jpg",
            "author": "高利民",
            "brief": "上海是中国政府管理能力、效率和服务意识最好的城市,而且也是人才引进奖励制度最完善、规范的城市,但这些优点,有事恰恰妨碍出现创业者。",
            "content": "<h5><span>上海是中国政府管理能力、效率和服务意识最好的城市,而且也是人才引进奖励制度最完善、规范的城市,但这些优点,有事恰恰妨碍出现创业者。</span></h5><p>你能想起几个最近十年在上海崛起的民营企业品牌?</p><p>几乎没有。如果换做北京、广东、福建、浙江,许多人都能至少说出一些。</p><p style=\"text-align: center;\"><img src=\"http://static.idaxiang.org/266f989922b96aaaf57c16a4ad4f35b6.jpeg\"/></p><h6><span>2014中国民营企业500强各省区市企业数量</span></h6><p>这是令上海倍感尴尬的一点:作为一直以来中国内地的经济中心,上海聚集了大量跨国企业、著名国企、民营企业的中国区总部,几乎能找到所有世界知名企业。但却极少有本土的创业企业,也很少生长著名的品牌、专利。</p><p>上海规模民营企业,大都集中在传统制造业和商业领域,极少有高科技型企业。以专利数量论,北京专利数仅次于广东,但每万人拥有的有效专利数则高居全国第一,接近上海的2倍。即使刨去其中国家科研院所的成分,其绝对领先也不容置疑。</p><p>那么,水面下的冰山呢?截止2013年末,中国各地注册商标数排名是:广东(112.7 万)、浙江(86.4 万)、北京(46.7 万)、江苏(45.9 万)、福建(40 万)、上海(36.4万)。人口多于北京的上海却被北京拉开了相当大的距离。</p><p style=\"text-align: center;\"><span><img src=\"http://static.idaxiang.org/396800832765969b23937e4ed40f5bd9.jpeg\"/></span></p><h6><span>截止2011年部分省市有效发明专利量及万人发明专利拥有量情况</span></h6><p>然而,在中国城市中,上海却是公认政府管理最精细、效率最高、服务意识最好的城市,为吸引人才、鼓励创新不遗余力。或许,正是这种强烈反差,才会有2008年时任上海市委书记的俞正声著名的俞氏一问:上海为什么不出马云?</p><h2>缺乏空间的土壤</h2><p>其实,早期的上海也曾是创业家的乐园。</p><p>19世纪中期后,上海先后设立了英、法、美等国租界,逐渐形成了脱离于清政府权力,又享有国际交往的独立空间,最早接触到了近代化的经济组织形式。</p><p>此后,上海逐步成为远东的经济、贸易中心之一,无数冒险者来到这片十里洋场,虽然当时的人们并不将此称为“创业”,但许多工厂、商行都在此产生。</p><p style=\"text-align: center;\"><span><img src=\"http://static.idaxiang.org/daa06d095bc36d3907a41e12b3306a00.jpeg\"/></span></p><h6><span>1928年的上海公共租界外滩一景</span></h6><p>真正的变化产生于1949年以后。由于上海出色的经济基础,被作为公私合营、货币改制等新政的重点地区。上海和工业基础同样雄厚的东北一样,建立了远比其他地区更完备的公有制体系。</p><p>这时的上海经济到底比其他地区高出多少?</p><p>即使经历了“三线建设”等为中西部输血的过程,上海仍在改革开放前占全国工业总产值的三分之一左右。它在计划经济中的地位,使之今日依然保有强大的国有经济体系。</p><p>熟悉上海的外地人应该注意到一个现象:上海今天的国营商业企业依然无处不在。以超市为例,上海的社区型超市主要是联华与华联(现已合并为一家),两者均为商业局下属,比它们更小且遍布街巷的国字号超市还有可的、好德等。</p><p>中国几乎不会有第二个城市,国营超市占据如此重要的地位。与超市毗邻的,还有很多国营饭馆甚至理发馆——有些饭馆严格坚持每天8小时劳动,午后有两小时午休。不可思议的是,有些民营餐馆会让你觉得是国营的,里面的服务人员不是外地小姑娘,而是一群本地阿姨。</p><p>这当然是50年代后公有制改造的后果,但其格局延续至今,还有赖于上海在经济体制转型中对就业问题的出色解决——它几乎没有经历过其他相似城市那种剧烈的下岗社会镇痛。其他地方转轨过程中常出现的国有资产流失问题,在上海引起的争议也非常小。</p><p style=\"text-align: center;\"><span><img src=\"http://static.idaxiang.org/5c2537b16fe5896ed754d691c98cf4a3.jpeg\"/></span></p><h6><span>1956年,毛泽东在荣毅仁陪同下参观上海中新纺织厂</span></h6><p>与其鲜明相对的是重工业盛极一时的东北。这很大程度上得益于上海市政府官员卓越的管理能力。</p><p>不过,这却日渐显示出了另一面的效应——给新企业、新经济势力留出的空间太小了。</p><p>中国民营企业具有强大创新能力和社会活力的地区,无一例外都是国营企业不成气候,计划经济体制薄弱的地方。中国国企比重较大的地区,国企多仰赖银行低息贷款及国家特许政策等优惠维系,而上海则仰赖高昂的地价,这使它们相对更理直气壮,拥有无处不在的话事权。</p><p>为谋求稳定的市场地位,它们很容易通过政府制定各种细密的管治措施,构建维护垄断地位的堤坝。而创业行为,本质上打破行业格局的洗牌行为,它当然为地位稳固者所不容。像“滴滴专车”最近被上海市交管局叫停这种事发生在上海,其实并不意外。</p><h2>五道口与张江科技园</h2><p>上海并不是没有意识到这一点。</p><p>1980年以后,上海经济增长速度放缓,其经济中心的地位受到浙江、广东、福建的挑战。直到九零年决定开发浦东新区,上海才在接下来的十多年保持了10%以上的增长,重新确立了自己在全国经济中的地位。</p><p>这也给上海市应对创业问题提供了思路——典型的例子就是精心规划设计的张江高科技园区。</p><p>为了形成像北京海淀区那样的人才集聚效应,科技园区与新大学园区被安排得很近。这里的马路极为宽阔,马路两旁是整齐、漂亮的园区建筑,但几乎没有生活气息,看上去很像一块北京的飞地。</p><p style=\"text-align: center;\"><img src=\"http://static.idaxiang.org/78bfc9381eb8daa0efd382792e8145ba.jpeg\"/></p><h6>上海张江高科技园区</h6><p>问题是,这块精心设计的园区,只适合已成规模的企业入驻,而不是在这里创业。一般的创业者很难在此找到合适的低成本住房、餐饮等条件。</p><p>如果类比北京海淀的五道口,这种精心的规划其实是不利于创业的。</p><p>五道口之所以成为怀抱IT创业梦者心中的“宇宙中心”,除了周边高校和IT企业云集外,附近多为小而老旧的小区,少有大规模的高档社区,一到晚上满街摊贩。热闹、拥挤而富于生活气息的五道口,是最不像北京的地方,倒像是老上海在北京的一块飞地,但可为梦想家们提供就近且便利廉价的栖息条件,如果实在没钱,他们甚至可以混进学校宿舍。</p><p>如果中关村和五道口像张江高科技园区一样,宽阔的马路两旁只有敞亮巨大的办公室,街道上看不见闲杂人员,一到下班时间,大家就一哄而散赶路回家,它断不会像今天这样每天诞生无数的创意和新企业。</p><p>上海浦东陆家嘴金融中心的街道规划方式,也被批评为大而无当——华尔街摩天大楼之间的街道非常狭窄,临街密布着咖啡馆之类的谈话场所,两栋写字楼里的生意人突然有想法时,可以非常便利地约谈碰撞,而陆家嘴那些写字楼里的人,要和对面大楼的人当面交流,必须横过极为宽阔的马路,是绕远路,还是打出租车,颇费思量。</p><p style=\"text-align: center;\"><img src=\"http://static.idaxiang.org/bd8d5aaa2596917ae54356831bb6e099.jpeg\"/></p><h6>从纽约曼哈顿东部的克莱斯勒大楼向下看,纽约的街道与上海浦东新区相比十分狭窄</h6><p>好在上海市政府注意到了这个批评,于是有了一个可以不用横过马路的补救措施,在几栋摩天大楼之间修了一个巨大的陆家嘴天桥。可惜辽阔的张江科技园就很难照此办理了。</p><p>创业者需要的往往是一种宽松的环境,成本低廉,又在空间上充满联系,容易沟通。这是规划者最不擅长的事情——历史上,没有几个创业中心是规划出来的。</p><p>而且,也并没有哪些人从出生起就带着创业者的标签。创业企业、创业者往往诞生于复杂的交汇之中,新增的城市移民、高校毕业生中创业比例都很高。</p><p style=\"text-align: center;\"><img src=\"http://static.idaxiang.org/95609da1b8ad9b769564fe3a5981135d.jpeg\"/></p><h6>陆家嘴天桥</h6><p>上海自然知道这些人的重要性。它们也有着全国最优秀的人才引进制度,其积分方案、居住证福利在全国绝对属于一流。</p><p>但这种优秀制度反而引起了一些负面效果。</p><h2>被“格式化”的上海梦</h2><p>1992年,上海常住人口是1280万,到2013年底,上海常住人口为2415万,11年净增了1100多万人,新移民占总人口数的47%。</p><p style=\"text-align: center;\"><span><img src=\"http://static.idaxiang.org/aa5d572a77d89962dd0085577c35b7fd.jpeg\"/></span></p><h6><span>上海市人口年龄结构与国际通用年龄结构的对比</span></h6><p>但是,深圳同样新增1000万移民,里面出现了任正非、马化腾等登上世界级舞台的创业者。而上海新移民中,却没有同等量级的创业家。</p><p>如果对上海、北京、广州、深圳新移民做一项奋斗梦想的问卷调查,或许“上海梦”最单调实际,那就是房子。北京、深圳的梦想就要五花八门得多。</p><p>上海是引领中国房价的龙头,并且是中国第一个因住房价格高涨出现全民炒房现象的城市。“炒房”重塑了上海人的观念,它不但是上海人日常交流的必谈话以甚至成为衡量成就的重要标签。</p><p>房价贵使得1980年代以前普遍有房的上海人突如其来地享受到了“存量涨停”的福利,这笔意外的财富保障使得老上海人和老北京人、老广州人一样不思进取。</p><p style=\"text-align: center;\"><img src=\"http://static.idaxiang.org/61b26b2646d4b9166cd1401058cf8951.jpeg\"/></p><h6>1999—2010,上海房价与人均月薪走势图</h6><p>对上海新移民来说,2008年前后,则是一条分界线。2008年前成功买房落沪的人,是“房产红利”的最大得利族群,他们许多人通过买房攒房完成了真正意义上的“原始积累”。2008年之后来沪的人,“落户”一夜之间变成了“为房子而活的战争”。</p><p>对新移民来说,上海住房问题的影响来得远比广州、深圳甚至北京严重。深圳、广州有大量城中村,北京虽然较少城中村,但其市政、社区和小区物业管理远不如上海精细,虽然近年开始学习上海整治群租以及在住宅区办公司的现象,但死角比上海要多得多。</p><p>这让新移民的个人发展受到极大限制——没有低价栖身的空间。当然,人们也可以认为,没有低价住房,筛掉的大多是素质不那么高的人才,上海需要的是高素质人才。</p><p style=\"text-align: center;\"><span><img src=\"http://static.idaxiang.org/bb6711ae6f2223bd4802c575a29bf4b0.jpeg\"/></span></p><h6><span>白石洲,深圳最大的城中村,多年来成为了来深打拼人员的聚集地</span></h6><p>为吸引外地高素质人才,上海推出了提供留居上海的各项激励措施,按2002年相关规则,获得居住证七年后可申请上海户籍。相比其他城市的粗放简单,上海人以其特有的精密、认真,拿出一套“国内人才申领《上海市居住证》打分表”,使规则变得更清晰、透明,能极大程度地消灭作弊空间。这使得只有上海的居住证才是被外地新移民积极认真对待的。</p><p>但是,上海金融与法律研究院在承接《户籍的成本》课题时,仔细研读这个打分机制对人才的激励作用,他们得出这样一个结论,它实际上鼓励的是外来人才安心打工,而不是创业。</p><p>譬如,受聘的薪水、岗位级别、纳税数额、社保缴纳越高,得分越高,它当然是“甄别人才”的合理衡量标准,但却会让一个积分很高的人在面临创业机会时,陷入选择困境——在离居住证、上海户籍只有一步之遥时,创业往往意味着前功尽弃,毕竟白手起家创业期间,在薪水、纳税额、社保缴纳的得分都会大幅下降。</p><p>虽然《上海市居住证》打分表中,有“人才在沪投资创业附加分”,但它的打分奖励全部是以投资额和雇佣本地人数来计算的,实际鼓励的是外地资本在上海办企业,而不是在上海白手起家创业。这与通常人们说的创业完全不是一回事。</p><p style=\"text-align: center;\"><img src=\"http://static.idaxiang.org/4cae61e5191a2627cef2023aa09ba238.png\"/></p><h6><span>某上海教育机构打出的招生广告</span></h6><p>有趣的是,《上海市居住证积分办法细则》中“职称”依然占了很大权重,除了特殊技术岗位,职称对民营机构组织来说,没有任何价值,但这套打分体系,会使得不在国营单位的新移民,为了居住证去浪费时间报考“经济师”这类毫无用处的职称。</p><p>前面提到的房子,同样是打分项目,买房加分,它起到了与房价上涨的相同作用——有钱立即买房。</p><p>所以,我们一点不难理解,新移民的“上海梦”是高度格式化的:房子。至于创业,最好还是到北京、深圳去碰碰运气吧。</p>                    ",
            "read_num": "2689",
            "wechat_url": "http://mp.weixin.qq.com/s?__biz=MjM5NzQwNjcyMQ==&mid=209551190&idx=1&sn=ce028395392990019b94830e4860da77#rd",
            "url": "",
            "create_time": "1419955200",
            "update_time": "1437653110"
        }
    },
    "head": {
        "code": 0,
        "message": ""
    }
}

很容易发现body.article.content中便是HTML编码的文章(包括图片)。

此外,本文写成时最新的文章id是1071,对应”唐朝真的「对外开放」吗?”这篇文章,如果为pageSize赋值1000,返回的文章列表基本上包括了大象公会创立以来的所有文章。

值得注意的是,文章id大部分情况下是连续的,但也存在连续几百个id没有对应文章的情况,主要集中在238以下,不清楚是API设计者有意为之(留作他用),还是一些id对应的文章在审查的压力下被迫删除(一些高位的id)。

大象公会的RESTful API很好的体现了Web平台的开放性,在此基础上可以开发体验更佳的Android/iOS客户端,或是制作RSS订阅源。