Mythsman


I wonder how the world builds software.


Spider


  1. 利用 Redsocks 解决透明代理的远程抓包问题

    背景最近在做一些远程设备的抓包能力建设。具体来说是设备(基于 Docker 的 Redroid 云手机)在服务器上,抓包工具在本地( Mitmproxy , Charles, Fiddler 等类似工具),希望通过某种方法将远程设备上的流量打到本地的抓包工具上,并且流量通过本地的 IP 出到公网。 这样做的目的主要有两个: 可以做到抓包工具和待抓包设备的分离。既能利用上强大的第三方抓包工具,又无需本地部署待抓包的设备。毕竟如果在远程服务器上部署抓包工具,操作起来就不那么方便,甚至可能还需要自行开…

    Redroid, Network, Spider, Redsocks阅读全文

  2. 快手抓包问题分析

    背景不知从什么版本后,对快手进行简单抓包似乎“不可行”了。表现就是使用常规的 HTTP 正向代理抓包工具(charles、mitmproxy、fiddler 之类)并且把自签名证书种到系统证书里后,数据依然能刷出来,也能抓到一些零星的报文,但是关键出数据的那些接口报文都没有。 一般来说,常规方法无法抓安卓应用的 https 包,通常有以下几种可能: 证书信任问题。在 Android 7 以上,应用会默认不信任用户证书,只信任系统证书,如果配置不得当则是抓不到包的。应用配置了 SSL pinnin…

    Spider, Linux, Network阅读全文

  3. 移动爬虫虚拟化自动化方案调研

    背景目前移动爬虫现有架构运行了大半年了,发现爬虫设备在长时间维护的时候会有很多问题: 移动设备太多、用途不一,管理容易乱,IT审计设备时经常出现丢失的情况。一直插电导致移动设备的电池容易鼓包,有安全风险,而且使用寿命也较短,经常需要更换。办公环境经常出现断网检修、断电检修、安全检查等事情,导致服务可用性很低。设备申请和扩量比较困难,审批、采购、部署、拽线、移动设备初始化、主机申请、主机设备初始化等都很费劲。账号管理和充值很麻烦,sim卡分散到很多手机里,很容易弄乱,续费管理、短信管理都很难做,基…

    Spider, Redroid, Anbox阅读全文

  4. Android系统推送Hook实战

    背景随着数据生产功能的逐渐稳定,工作重点开始从保证数据总量转移到了保证数据实效性上来了。传统的定时爬虫能比较轻松的把数据总量做起来,但是对于很多热点数据,却很难做到实时获取。 考虑到大部分产品、尤其是新闻资讯类的产品,都会对热点数据做推送拉活,如果能拦截到这些数据,那么我们就能应当将数据实效性提升一个档次。 这次我们就主要尝试拦截下小米手机的系统通道的推送数据。当然,对于各个 App 自身的通道,也可以用类似的方法做到拦截,不过那就需要对各个 App 再做好保活。 推送流程以小米官方的文档为例,…

    Android, Spider, Frida阅读全文

  5. Isaac64解密算法JNI的封装

    前言众所周知,理论上最安全的加密方式是使用一次一密(OTP)。但是传递与明文长度相等的、完全随机的加密面板这件事情并不具有实践意义,因此就诞生了流密码(Stream Cipher)。流密码将一个密钥作为种子,按照某种伪随机数生成算法生成供OTP使用的加密面板。有了加密面板之后,就可以逐字使用传统的 Vernam 算法 或者 Vigenère 算法进行加密解密。 由于这样进行的加密解密操作没有复杂的计算、并且不需要对数据进行预取分块等复杂操作,因此执行效率很高,非常适合用作流媒体数据的加密。最常见…

    Algorithm, Java, Spider, Isaac, Jni阅读全文

  6. Canvas指纹隐藏实战

    前言前两天和隔壁做风控的同学聊天,据说他们经常使用浏览器指纹来识别和标记爬虫(当然具体的细节是不能透露的),联想到我们最近也经常遇到被风控的情况,于是就花了点时间研究下浏览器指纹相关的知识。 需要明确的是,“隐藏浏览器指纹”和“隐藏Webdriver/Selenium/Puppeteer”、“匿名浏览”都不是同一个问题。“隐藏Webdriver/Selenium/Puppeteer”的目的是告诉服务端自己不是自动化爬虫(这个似乎可以尝试用 stealth.min.js 来做);“匿名浏览”的目的…

    Spider, JavaScript, Canvas, Fingerprint阅读全文

  7. 好动校园理论考试破解(2/2)

    现在已经分析清楚了,就这么点玩意,照着之前分析出来的接口用python写个小脚本就行了。 hack.py #coding:utf-8 import urllib2,cookielib,urllib,json,sys,time login_system_url="http://appsrv.ihodoo.com/login" login_exam_url="http://appsrv.ihodoo.com/auth/exam/enterIndex?" get_paper_url="http://a…

    Spider, Python阅读全文

  8. 好动校园理论考试破解(1/2)

    背景不知道从什么时候开始,学校的体育理论考试搞成了下载一个app然后在这上面考。。。本来觉得没什么,然后突然爆出这个app有一坨bug,安卓端多选题只能提交一个答案(后来发现原因是多选题提交答案时的while循环里多写了一个break。。。),导致分数奇低。虽然后来做了一个紧急修复,但从这也能看出开发人员的尿性。。。再后来,有个专门搞app的同学说他能够刷到满分,我稍微想了下,这种考试型app的逻辑能够被破解,无非有两个方法:第一种就是记录所有模拟题库中的题目和答案,然后比对考题进行提交;第二种…

    Spider, Python阅读全文

  9. 利用Python脚本爬取字体文件

    为了提高验证码的识别准确率,我们当然要首先得到足够多的测试数据。验证码下载下来容易,但是需要人脑手工识别着实让人受不了,于是我就想了个折衷的办法------自己造验证码。 为了保证多样性,首先当然需要不同的字模了,直接用类似ttf格式的字体文件即可,网上有很多ttf格式的字体包供我们下载。当然,我不会傻到手动下载解压缩,果断要写个爬虫了。 网站一:fontsquirrel.com这个网站的字体可以免费下载,但是有很多下载点都是外链连接到其他网站的,这部分得忽略掉。 #coding:utf-8 i…

    Python, Spider阅读全文

  10. 网页的防采集方式-Token和Referer

    今天在写模拟登陆的时候遇到了一点问题,一个是在post数据中有许多随机串,让人摸不着头脑;另一个问题是明明已经post了正确的数据,然而还是莫名其妙的无法登陆。倒腾了半天终于发现了这原来是很多网站为了防止一些攻击所进行的安全保护措施,分别是token 和 referer防护。 TokenToken实际上就是一个随机串,在含有input表单的页面内以一个‘hidden’表单实现。通常是以以下的形式: <input type='hidden' name="sand" value="144949…

    HTML, Spider, Python阅读全文