安卓10安装EdXposed步骤 高版本的安卓已经无法安装原生xposed了,但是可以通过面具刷入,本文以MIUI11 稳定版为例,记录一下刷入过程。 一、资料准备 twrp(用于刷入第三方recovery) 本文提供 MIUI机型的 twrp,其他机型请自行寻找: 链接https://pan.baidu.com/s/18VVTLZuDUAp5vA29yjYn4w 提取码:yxbz Magisk Manager管理apk *Magisk 刷机包 *Riru-Core 刷机包 *Riru-EdXposed刷机包 EdXposed Manager 管理apk 注意:部分机型需要先解BL锁。twrp用于刷入第三方recovery和Magisk,*部分表示此部分可以在线安装。 二、刷twrp MIUI 可以用网盘中的一键刷入工具刷入,其他机型需要找到自己对应版本的twrp,然后用fastboot刷入 三、安装 Magisk 有两种方式 1.在线安装 安装 Magisk Manager后,在管理app中在线下载并刷入 2.离线刷入 下载Magisk刷机包(资料3),推送到手机目录,例如s....
树莓派部署Frida实践 一、需求起因 越来越多的APP签名加密算法放在了so层,而逆向so文件拿到算法往往是不容易的,为了满足某些场景下的需求,考虑将Frida用于生产环境。具体的系统结构如下: 由于需要一台7*24小时提供服务的设备来部署python脚本,此处采用了树莓派(Ubuntu 18)。 二、安卓端Frida Server部署 见文章 三、树莓派环境搭建 1.安装adb sudo apt-get install android-tools-adb 2.安装python3、pip 如果已经有了python3环境忽略即可,pip同理 sudo apt-get install python3.8 sudo apt install python3-pip 由于系统默认的python版本是2.7,所以后续使用命令时用python3、pip3代替的python、pip 3.安装frida pip3 install frida-tools pip3 install frida 四、测试frida是否安装成功 frida从14版本之后开始支持amd64架构的linux系统,写此文章....
安卓7.0抓包 在上一篇文章中,我们已经对安卓App抓包中碰到的常见问题做了简单的分析,粗略地列出了一些解决方案,在本文中,我将针对安卓7.0以上的https抓包问题进行更加深入的分析(干货来了)。 为什么安卓7.0以上无法直接用Fiddler和Charles进行https抓包?原因可以参考这篇文章,总结一下就是安卓7.0之前的版本,系统默认信任系统证书和用户证书,而安卓7.0之后的版本,系统只会信任系统证书了。而我们的Fiddler和Charles生成的证书都是安装在用户证书目录下面的。因此,我们的解决方案也比较明确,就是将抓包工具生成的证书安装到系统证书目录下。 一、前置分析 这一步骤熟练后可以跳过。安卓的证书路径是固定的,系统证书路径为 /system/etc/security/cacerts/ 并且证书文件都是.0文件,如下图: 查阅资料可以知道系统证书的文件名为证书文件的hash值 用户证书的路径为 /data/misc/keystore/user_0 证书文件不是.0文件,如下 二、提取证书文件 以Fiddler为例,将证书文件导出到桌面即可,如下图 点击Expo....
树莓派4B搭建Clash 一、搭建原因 本虫基于某些需求在工作中需要用到Clash,Clash的作用可能大家都清楚,如果不清楚也没关系,看完这篇文章也就清楚了hhhhhhh。由于我购买的订阅账号只允许同时2个用户在线,而且每次用的时候必须开启客户端,十分不便。本文就是为解决这两个问题而写(别问,问就是想白嫖),我的解决方案是将Clash部署在7*24小时开机的设备上,然后通过nps内网穿透将局域网服务端口暴露给外部使用。听起来好像有点麻烦,那就用一种简单的表述:将Clash部署在树莓派上,外部通过代理的方式使用订阅的服务。 二、部署Clash核心 由于是部署在树莓派上的Ubuntu的,我们要选择支持ARM架构的Linux镜像 Clash Linux ARM Docker镜像 注意以下两点: 1.要将配置文件挂载到物理目录,例如 -v /fuguicun/clash:/root/.config/clash 2.映射两个端口 一个用于局域网访问,一个用于后续的Web UI,我这以7890 和 8080为例。 3.将订阅处下载的配置文件复制到配置文件目录,如下 获得的链接在浏览器中打开可....
NextCloud离线下载功能扩展 在上一篇文章中,手上的树莓派4B已经成功部署的NextCloud,目前已经可以实现直接在网盘中观看上传的电影,接下来我们更进一步,为NextCloud扩展离线下载功能。 一、下载工具选择 下载引擎选用Aria2,无他,唯支持种子尔(来自老司机的会心一笑)。我使用的是某位大佬定制后的docker镜像,地址点这里 二、部署Aria2 Pro和Web UI 按照大佬的博客教程部署Aria2 Pro镜像,这里有一点需要注意,由于我们是通过docker进行部署的,后续要将下载目录挂载到NextCloud的外部存储中,所以部署Aria2 Pro时需要将下载目录挂载到物理目录上。 例如: -v /fuguicun/nextcloud/data/aria2:/downloads 当然/downloads的目录也可以后续在Web UI中修改。 为了更友好的用户界面,我们还需要再部署一套Web UI。Web UI是一套静态页面,如果嫌麻烦也可以直接用作者维护的AriaNg网页版,地址在博客里有。我们这边采用docker自己部署一套。 UI界面如下: 接下来需要在....
树莓派4B搭建NextCloud网盘实践 前言 这两天入手了一块树莓派4B的板子,准备外接一块硬盘,然后通过NextCloud进行管理,最终打算实现这样的效果:在家时,手机、电脑、投影仪等设备可以直接通过局域网地址访问这些资源。在外面时通过内网穿透,挂一个域名去访问这些资源。 准备工作 需要软硬件: 树莓派4B 硬盘(我用的是西数 2T 的移动硬盘) TF 卡 烧录系统用 PC一台 公网IP服务器一台 用于内网穿透 域名 可选 树莓派 Ubuntu镜像 安装树莓派 下载镜像,我用的是Ubuntu 20.04 烧录镜像,用官方的工具Raspberry Pi Imager 将TF插入卡槽,注意金手指那一面对着主板,连接网线,上电 在路由器管理后台上找到树莓派设备,查看IP 使用ssh工具连接树莓派,默认的用户名密码都是ubuntu 部署NextCloud 安装Docker教程 Docker安装Redis(如果不配缓存可以不需要) Docker 安装Mysql 由于Mysql官方不支持ARM架构,采用以下镜像: biarms/mysql Docker 安装NextCloud,下面详....
微信小程序爬虫解决方案 经过多个小程序爬虫的摸索开发,本虫子总结出了一套针对微信小程序的爬虫开发流程。 1.抓包 抓微信包即可,不管是使用VPN方式还是代理方式都行。这边介绍两款VPN抓包工具,安卓下可以使用Packet Capture,IOS下可以使用Stream。抓包的目的是了解目标小程序的请求参数,一般来说,都会带有一些签名字段。 2.反编译 2.1获取微信小程序包 即获取微信小程序编译后的文件,后缀名为.wxapkg。在安卓环境下的路径为 /data/data/com.tencent.mm/MicroMsg/{数字串}/appbrand/pkg/,windows端的路径为 C:\Users{用户名}\Documents\WeChat Files\Applet。安卓端可能会有分包。存在多个小程序包的情况下可以在微信里将小程序删除然后重新打开,最新生成的就是目标小程序的包。 2.2反编译获得源代码 参考工具 3.寻找签名关键位置 如果代码没有经过混淆,直接搜索关键词,大概率就能找到关键位置。如果经过混淆则需要进行调试。 4.调试 小程序项目一般都通过Webpack进行了打包。参考....
神器CefSharp在爬虫方面的应用 一、前言概述 提起Web端的自动化,模拟渲染,相信虫子们都能想到一些比较流行的框架,例如Selenium,Puppeteer等。其中Selenium利用的是WebDriver,支持Python,Java,.Net等多种语言,而Puppeteer出自谷歌之手,基于nodejs。两者的底层都是通过DevTools Protocol来操控Chrome的。诚然,这两个框架在Web自动化领域的应用非常强大,其中Puppeteer更是可以对网络请求进行拦截,但是用在爬虫上,hhhhhh,先放张图撑撑场面: 你可能不服,别急,继续往下看就知道了。 自动化测试框架为开发者(这里只针对爬虫而言)带来了很多方便,例如处理ajax请求的动态加载,前端JS混淆加密,人机验证,请求拦截等,但是却有个致命的缺点,就是拥有很多和正常浏览器不同的特征,而这些特征一旦被侦测到,爬虫就无法再进行下去,而目前的大厂们,几乎都或多或少的会进行检测,例如瑞数加密的JS,淘宝Web端页面等,均有检测代码。下面给出几个检测及绕过检测点的例子: 反爬虫中chrome无头浏览器的几种检测与绕过方....
Q音和网易云音乐歌单互相导入实现 虽然官方已经支持这个功能了,但是还是心血来潮想去自己实现一遍,为了避免引起一些不必要的麻烦,项目中的一些关键参数的计算方法的实现隐去了。但是具体的分析过程可以看如下文章: 1.网易云音乐web端加密解析 2.QQ音乐sign签名字段解 项目地址 使用示例 除了基础的歌单互相导入功能以外,还做了一个导出歌单为excel的功能,使用效果如下: 导出的字段包含歌曲名,时长,专辑,歌手,播放链接及歌曲在该平台的状态信息等。
1.NET Core使用System.Drawing.Common在Docker环境下报错的问题 在使用VS2019生成的Dockerfile文件进行docker部署.net core 2.2webapi项目时,运行项目报错,大概意思是"找不到库文件libdl",查阅资料发现是引用了ystem.Drawing.Common的原因。下面给出解决方法(解决方案来源): 首先需要让VS自动生成的dockerfile进行bulid时支持apt-get命令,在Dockerfile中加入以下命令 RUN sed -i 's/http:\/\/archive\.ubuntu\.com\/ubuntu\//http:\/\/mirrors\.163\.com\/ubuntu\//g' /etc/apt/sources.list 然后安装libc6-dev,在Dockerfile中加入以下命令 RUN apt-get update RUN apt-get install -y --no-install-recommends libgdiplus libc6-dev 最终dockerfile修改如下图....
QQ音乐sign签名字段解析 字段描述 出现在歌单详情等接口,请求url后面会跟一个sign字段,例如"zzap4rd5hjs5zkv626bc180091010583fc33cd2e160eca2",经过验证发现这个参数无法缺省,必须携带。 分析过程 1.找到加密位置 搜索对应的js中的sign关键词,如下图 这边可以看到sign来自于g参数赋值,那么向上找到g参数赋值位置:"z.getSecuritySign(m.data)",下断点调试。 可以发现传入的参数即为Post请求的body部分 2.g_tk字段解析 请求体中会带上这个字段,生成位置如下图: 生成逻辑比较简单,可以用自己的语言重写。 3.调用验证 通过静态分析js发现,加密的一系列方法,最终都在一个全局对象"M"中,那么我们传入加密参数进行验证 将加密值代入请求中,成功获得数据 sign字段构成分析 测试中发现sign由3端字符串拼接而成:"zzaj|51ny550yk|626bc180091010583fc33cd2e160eca2"(示例用|分割) 其中 第一部分固定 都为"zza",第二部分是一串随机字符....
网易云音乐web端加密解析 API加密部分 即params和encSecKey字段,其中params字段通过两次aes cbc模式加密得到,密钥和偏移量都是固定的。encSecKey由rsa加密得到,最后输出的是byte数组转换成的16进制字符串。这块内容网上一搜一大把,本文不再赘述,如有需要可以参考这篇文章,讲的很详细。 内容加密部分 这部分加密出现在歌单等页面,即主要内容是 textarea 标签中的一段加密字符串,例如下图: 而在渲染完成的页面(审查元素)中,这部分代码则变成了正确的数据: 接下来就是分析js了(PS:又臭又长的JS) 首先搜索这串加密字符串相关的字符,在某段js中找到了下图的js代码: 尝试下断点调试,但是断点始终无法命中。(后来才知道这是网易云音乐原先的数据解析方式)。说明这部分代码应该是被废弃了,不过结合网上的一些过时代码可以看到这部分数据可能最终是转化为json来使用的。那么,是否能在json上下文章呢?马上想到了一个思路,将JSON.parse方法进行hook,然后加上debugger断点,再通过调用栈堆来找到关键位置。 hook代码如下(hoo....