1. 纯Docker部署Https服务——以Nextcloud为例

    背景 近期阿里云的廉价学生机小水管到期了,打算把一些服务打包迁移到微软员工不要钱的azure云上。 原先各种服务的部署方式都是直接部署的,换主机需要重新搭建各种环境非常麻烦,也容易遗漏。于是就想跟随潮流把这些服务都上docker,能够做到部署一把梭。 难点 一般的开源组件都会有官方docker镜像,部署起来其实都很方便。大部分对着官方文档改改配置再用docker-compose组合一下参数就能跑起来。比较麻烦的点就是网站要部署成 https 的话需要 SSL 证书。对于个人使用的小网站…

    Linux, Docker, Https, Certbot, Nginx阅读全文

  2. 快手抓包问题分析

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

    Spider, Linux, Network阅读全文

  3. 一次采耳引发的屎案

    采耳 上周去团建泡汤,由于300块的自由预算吃吃喝喝实在是用不掉,想来不如消费一波服务,小奢侈一把。于是就点了 299/50min 的采耳服务,想见识见识掏个耳朵又能掏出个什么花样。 结果采耳的小姐姐一看我的耳朵,立马就抱怨说我右耳这有个大耳屎堵在外耳道,硬的不行,尝试夹了半天也夹不出来,稍微扽一扽还容易疼。拿个挖耳内窥镜给我瞅了瞅,的确有一大球黄黑相间的东西堵在那里,甚至都看不到鼓膜了。折腾半天到钟了,只能草草收场,建议我早点去医院弄。 好嘛,300块钱整下去,整的不明不白,不仅没爽到,…

    Life阅读全文

  4. 树莓派与1024x600分辨率屏幕的适配问题

    问题 为了方便操作,买了一个 7英寸的 LCD 触摸屏,结果发现屏幕是 1024x600 的分辨率,系统总是会认为是 1024x768 的分辨率,导致了两个后果: 1. 分辨率不准。由于实际展示的高度比渲染的要低,导致屏幕下方的东西是看不到的。 2. 触摸板不准。虽然图像渲染会超出屏幕,但是触摸板似乎却做了缩放,触摸的地方越往下鼠标跟手的位置就越不准。 问了下亚博智能的技术客服,按照他的建议修改了 /boot/config.txt 中的 hdmi_cvt 等相关参数,重启后依然不行。接…

    Raspberry Pi, Arm阅读全文

  5. 树莓派4B使用arm64系统踩坑

    背景 由于工作原因,需要一台 arm64 的服务器测试一些功能。但是目前这个点没法快速采购到腾讯云或者百度云的arm服务器(这俩公司的arm服务器好像都只是在内测阶段,据说得2022年初才能 Release)。想了一圈发现树莓派似乎正好有 arm64 的cpu,于是去官网确认了下 Specification: Broadcom BCM2711, Quad core Cortex-A72 (ARM v8) 64-bit SoC @ 1.5GHz 看起来挺好的,于是在亚博智能店里买了个 4B…

    Raspberry Pi, Arm阅读全文

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

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

    Spider, Redroid, Anbox阅读全文

  7. Android系统推送Hook实战

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

    Android, Spider, Frida阅读全文

  8. Isaac64解密算法JNI的封装

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

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

  9. Canvas指纹隐藏实战

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

    Spider, JavaScript, Canvas, Fingerprint阅读全文

  10. Gnirehtet生产环境实践

    背景 目前业界的移动端爬虫在前端数据提取的部分大致有两套方案,一套是网络抓包、另一套是逆向Hook。无论是哪一种方案,都必须要解决一个问题,那就是网络要稳定。在一个较为狭小的空间内,如果是只有几十台设备,那一两台AP一般还能顶住。可如果有数百台设备,无脑堆AP的话就会出现各种问题(过载、负载不均、信道干扰、网段可用IP不足)等问题。 即使网络本身没有问题,在对抓包数据进行审计的时候,通常也需要维护一个设备号到IP的映射关系。随着设备的增多,映射关系的维护也是一个麻烦的事情,而且IP漂移的情况…

    Reverse Engineer, VPN阅读全文