转载请注明出处:小锋学长生活大爆炸[xfxuezhang.cn]
背景介绍
官方原版Shamrock的作者已经删库跑路了,所以我们使用这个:OpenShamrock
文档在这里,但访问可能需要点魔法:快速开始指南
步骤也简单,这里以无Root的安卓机为例,其他的可以看上面的文档,支持这么多:
安装步骤
1、下载Shamrock apk(推荐xxx-all.zip的包):Releases · whitechi73/OpenShamrock · GitHub
2、下载Lspatch和QQ,最新版也可以使用。
3、登录完QQ后,再打开Shamrock就可以看到已经有hook信息了。
使用示例
接口API说明在这里:请求与响应 | OpenShamrock
如果是在手机上运行,处理局域网直接有IP,那如果外网访问就需要内网穿透,教程可以看这个:
【教程】超详细安装和使用免费内网穿透软件Zerotier-Onehttps://xfxuezhang.blog.csdn.net/article/details/135761567
向Shamrock发请求
HTTP API调用有两种形式传参:post data 和 url encode
比如请求这样的(access_token是你在Shamrock设置的“鉴权Token”):
http://192.168.0.12:5700/get_login_info?access_token=xxxxx
就可以拿到Shamrock的返回信息:
从Shamrock收请求
这里就要用到“回调HTTP地址”功能了。在你的服务器上写个监听程序,然后Shamrock有消息的话就会给你的地址发消息。使用的是OneBot的API:OneBot API列表
比如使用flask写一个监听程序,端口为8888(如果是服务器,记得安全组里放行一下端口),接收post请求,并将data原样返回:
from flask import Flask, request, jsonifyapp = Flask(__name__)@app.route('/', methods=['POST'])
def post_data():# 获取请求体中的数据data = request.get_json(force=True)# 原样返回数据return jsonify(data), 200if __name__ == '__main__':app.run(debug=True, port=8888, host="0.0.0.0")