zZPiglet
#todo_zZPiglet 1. 小黑盒新加密(1.3.121)及 qx 、surge 发出请求自带参数的问题(自带参数可以加hint、false) 2. 豆瓣·电影日历的_sig 3. 万象城app带deviceParams请求的sign加密 4. 欧可林每日免费一次抽奖 5. 达美乐里的记录域名换为 BoxJs 自带的记录域名提升无感无错体验(#boxjs_host) 6. 借用彭于晏的gist做共享aff 7. BoxJs 首页壁纸相关 task (@chavy_boxjs_userCfgs.bgimg)…
#todo_zZPiglet
1. 小黑盒新加密(1.3.125)
2. 豆瓣·电影日历的_sig
3. 万象城app带deviceParams请求的sign加密
4. 借用彭于晏的gist做共享aff
5. BoxJs 首页壁纸相关 task (@chavy_boxjs_userCfgs.bgimg)
6. 10010 重写(关键信息 ecs_token)
7. 115 新签到(有新加密)
1. 小黑盒新加密(1.3.125)
2. 豆瓣·电影日历的_sig
3. 万象城app带deviceParams请求的sign加密
4. 借用彭于晏的gist做共享aff
5. BoxJs 首页壁纸相关 task (@chavy_boxjs_userCfgs.bgimg)
6. 10010 重写(关键信息 ecs_token)
7. 115 新签到(有新加密)
115 新签到:
接口:https://proapi.115.com/ios/2.0/user/points_sign
post
body token=加密token&token_time=十位时间戳
cookie和以前一样
token=eh.a(new StringBuilder()+a.g()+"-Points_Sign@#115-"+v3)
v3 十位时间戳
a.g() 我猜是 115 号
(老版本是日期+115号+"space_token"最后md5)
外面一层eh.a还没细看,反编译出来的套了好几层
等一个有缘人
www.gda.wiki:9090
可下载一个好上手的反编译器,拖入安卓版 apk 即可。
enjoy yourself~
接口:https://proapi.115.com/ios/2.0/user/points_sign
post
body token=加密token&token_time=十位时间戳
cookie和以前一样
token=eh.a(new StringBuilder()+a.g()+"-Points_Sign@#115-"+v3)
v3 十位时间戳
a.g() 我猜是 115 号
(老版本是日期+115号+"space_token"最后md5)
外面一层eh.a还没细看,反编译出来的套了好几层
等一个有缘人
www.gda.wiki:9090
可下载一个好上手的反编译器,拖入安卓版 apk 即可。
enjoy yourself~
摸🐟:
在较早的时候脚本中捕获抛出错误时,直接输出 err,导致很多人问错误信息中的 [object Object] 是什么。之后更改为输出 JSON.stringify(err),确实解决了部分错误输出显示为 [object Object] 的问题,但造成了错误信息显示为 {} 的问题。
在 @evilbutcher 大佬最近一次 PR 及与大佬讨论中得知,部分错误信息改回输出 err 之后,即可正常显示(如:TypeError: null / undefined is not an object)。
于是转向 MDN 文档求助 JSON.stringify() 具体使用及注意事项,得到如下描述:
• 转换值如果有 toJSON() 方法,该方法定义什么值将被序列化。
• 非数组对象的属性不能保证以特定的顺序出现在序列化后的字符串中。
• 布尔值、数字、字符串的包装对象在序列化过程中会自动转换成对应的原始值。
• 对包含循环引用的对象(对象之间相互引用,形成无限循环)执行此方法,会抛出错误。
• 所有以 symbol 为属性键的属性都会被完全忽略掉,即便
• Date 日期调用了 toJSON() 将其转换为了 string 字符串(同Date.toISOString()),因此会被当做字符串处理。
• NaN 和 Infinity 格式的数值及 null 都会被当做 null。
• 其他类型的对象,包括 Map/Set/WeakMap/WeakSet,仅会序列化可枚举的属性。
由此意识到是内置对象在序列化时会出现问题,因此需要单独解决。
最先想到的解决方式为:err = JSON.stringify(err) == "{}" ? err : JSON.stringify(err)
但此写法仅是表面解决问题,且不确定是否真的能涵盖所有可能的情况,故通过 Google 搜索关键字“内置错误 stringify”,得到一篇感觉可以解决此问题的文章:https://juejin.im/post/6844903944792047623
关键:
或:Error.prototype.toJSON = function(){return {message:this.message, stack:this.stack}}(但不建议,因为此方法在原型上作了修改)
由于本人没有系统学习,亦没认真学习 JavaScript,且看文档不仔细导致的此问题影响了脚本使用体验及脚本错误的快速定位,对此感到抱歉,同时感谢 @evilbutcher 大佬的点醒。后续会陆续修改脚本中此问题。
最后想说的是,写脚本的门槛其实很低,像我一样从完全没接触过到写下第一个很简陋的脚本,其实不会花费很多精力,所以大家完全可以自己尝试一下。基本就是看看已有的脚本是怎么写的,然后类似写一个最简单的脚本进行尝试,在此过程中遇到问题就去查文档或者问 Google。当然通过此方法写脚本很有可能就出现一些奇奇怪怪的错误,但是不用担心呀,总会有大佬帮你改正或和你探讨的,有精力的时候去学一些新东西又有什么不好呢。
(其实是最近太忙了想当一个愉快的鸽子🐦,所以催脚本的其实可以尝试一下自己写呀)
在较早的时候脚本中捕获抛出错误时,直接输出 err,导致很多人问错误信息中的 [object Object] 是什么。之后更改为输出 JSON.stringify(err),确实解决了部分错误输出显示为 [object Object] 的问题,但造成了错误信息显示为 {} 的问题。
在 @evilbutcher 大佬最近一次 PR 及与大佬讨论中得知,部分错误信息改回输出 err 之后,即可正常显示(如:TypeError: null / undefined is not an object)。
于是转向 MDN 文档求助 JSON.stringify() 具体使用及注意事项,得到如下描述:
JSON.stringify()将值转换为相应的JSON格式:• 转换值如果有 toJSON() 方法,该方法定义什么值将被序列化。
• 非数组对象的属性不能保证以特定的顺序出现在序列化后的字符串中。
• 布尔值、数字、字符串的包装对象在序列化过程中会自动转换成对应的原始值。
• undefined、任意的函数以及 symbol 值,在序列化过程中会被忽略(出现在非数组对象的属性值中时)或者被转换成 null(出现在数组中时)。函数、undefined 被单独转换时,会返回 undefined,如JSON.stringify(function(){}) or JSON.stringify(undefined).• 对包含循环引用的对象(对象之间相互引用,形成无限循环)执行此方法,会抛出错误。
• 所有以 symbol 为属性键的属性都会被完全忽略掉,即便
replacer 参数中强制指定包含了它们。• Date 日期调用了 toJSON() 将其转换为了 string 字符串(同Date.toISOString()),因此会被当做字符串处理。
• NaN 和 Infinity 格式的数值及 null 都会被当做 null。
• 其他类型的对象,包括 Map/Set/WeakMap/WeakSet,仅会序列化可枚举的属性。
由此意识到是内置对象在序列化时会出现问题,因此需要单独解决。
最先想到的解决方式为:err = JSON.stringify(err) == "{}" ? err : JSON.stringify(err)
但此写法仅是表面解决问题,且不确定是否真的能涵盖所有可能的情况,故通过 Google 搜索关键字“内置错误 stringify”,得到一篇感觉可以解决此问题的文章:https://juejin.im/post/6844903944792047623
关键:
JSON.stringify(err, Object.getOwnPropertyNames(err), 2)或:Error.prototype.toJSON = function(){return {message:this.message, stack:this.stack}}(但不建议,因为此方法在原型上作了修改)
由于本人没有系统学习,亦没认真学习 JavaScript,且看文档不仔细导致的此问题影响了脚本使用体验及脚本错误的快速定位,对此感到抱歉,同时感谢 @evilbutcher 大佬的点醒。后续会陆续修改脚本中此问题。
最后想说的是,写脚本的门槛其实很低,像我一样从完全没接触过到写下第一个很简陋的脚本,其实不会花费很多精力,所以大家完全可以自己尝试一下。基本就是看看已有的脚本是怎么写的,然后类似写一个最简单的脚本进行尝试,在此过程中遇到问题就去查文档或者问 Google。当然通过此方法写脚本很有可能就出现一些奇奇怪怪的错误,但是不用担心呀,总会有大佬帮你改正或和你探讨的,有精力的时候去学一些新东西又有什么不好呢。
(其实是最近太忙了想当一个愉快的鸽子🐦,所以催脚本的其实可以尝试一下自己写呀)
🔨 1 new commit to Task:master:
506da10: 饿了么遗忘的吃货豆自动领取。 by zZPiglet
(直接改了改滴滴出行遗忘的福利金,几乎无工作量)
(之前的 todo 依旧在🐦)
506da10: 饿了么遗忘的吃货豆自动领取。 by zZPiglet
(直接改了改滴滴出行遗忘的福利金,几乎无工作量)
(之前的 todo 依旧在🐦)
GitHub
Comparing 24fecf4f0178...506da10ca2c3 · zZPiglet/Task
Some Scripts. Contribute to zZPiglet/Task development by creating an account on GitHub.
🔨 1 new commit to Task:master:
17f21d3: 滴滴出行金融服务天天有奖 by zZPiglet
鉴于投票结果整合/独立不相上下,先放出独立版,整合版还在🐦
遇报错请在评论区反馈
17f21d3: 滴滴出行金融服务天天有奖 by zZPiglet
鉴于投票结果整合/独立不相上下,先放出独立版,整合版还在🐦
遇报错请在评论区反馈
GitHub
Comparing 506da10ca2c3...17f21d3a2dd0 · zZPiglet/Task
Some Scripts. Contribute to zZPiglet/Task development by creating an account on GitHub.
Forwarded from Cool Scripts (zZPiglet 22:20 PM UTC+8 🕙)
#Surge #httpAPI #Shortcuts
摸🐟:
通过快捷指令控制 Surge 同时开启/关闭抓包和 MitM All Hostnames 模块,达到全局抓包的效果,仅需点击一次。
注:需订阅至 Surge 包含 HTTP API 功能。
使用方法:
1⃣️ 安装 MitM All Hostnames 模块:
#!name=MitM All Hostnames
#!desc=Perform MitM on all hostnames with port 443, except those to Apple and other common sites which can't be inspected. You still need configure CA certificate and enable the main switch of MitM.
[MITM]
hostname = -*.apple.com, -*.icloud.com, -*.mzstatic.com, -*.crashlytics.com, -*.facebook.com, -*.instagram.com, *
2⃣️ 安装快捷指令:https://www.icloud.com/shortcuts/c180d3285b3548b0a35b27375f203a53
3⃣️ 配置好 HTTP API,并填入快捷指令对应栏目。
4⃣️ Enjoy yourself 🔨
参考 @mieqq 大佬的快捷指令制作完成,十分感谢!
@mieqq 大佬的几个快捷指令:
1. 通过 HTTP API 控制 Surge:https://t.iss.one/cool_scripts/149
2. 查看加载完模块的最终配置:https://www.icloud.com/shortcuts/a91be98c76004314b2af80d224fd5e21
开发不易,点个✨吧~
如果发现有bug,欢迎反馈。
🔔频道: Cool Scripts
🧑🏻💻作者: @zZPiglet
摸🐟:
通过快捷指令控制 Surge 同时开启/关闭抓包和 MitM All Hostnames 模块,达到全局抓包的效果,仅需点击一次。
注:需订阅至 Surge 包含 HTTP API 功能。
使用方法:
1⃣️ 安装 MitM All Hostnames 模块:
#!name=MitM All Hostnames
#!desc=Perform MitM on all hostnames with port 443, except those to Apple and other common sites which can't be inspected. You still need configure CA certificate and enable the main switch of MitM.
[MITM]
hostname = -*.apple.com, -*.icloud.com, -*.mzstatic.com, -*.crashlytics.com, -*.facebook.com, -*.instagram.com, *
2⃣️ 安装快捷指令:https://www.icloud.com/shortcuts/c180d3285b3548b0a35b27375f203a53
3⃣️ 配置好 HTTP API,并填入快捷指令对应栏目。
4⃣️ Enjoy yourself 🔨
参考 @mieqq 大佬的快捷指令制作完成,十分感谢!
@mieqq 大佬的几个快捷指令:
1. 通过 HTTP API 控制 Surge:https://t.iss.one/cool_scripts/149
2. 查看加载完模块的最终配置:https://www.icloud.com/shortcuts/a91be98c76004314b2af80d224fd5e21
开发不易,点个✨吧~
如果发现有bug,欢迎反馈。
🔔频道: Cool Scripts
🧑🏻💻作者: @zZPiglet
滴滴天津另一个活动:https://z.didi.cn/4IlzC
11 月每天 11 点抢立减 100 元券(即 100 内免单),当天失效,虽说每天限量 100 张,但是到现在好像都还有。
以及不确定有没有之前一次活动类似 bug,即写着限制地区但实际未限制使用。(欢迎评论区反馈)
脚本暂不公开。
更新:由于滴滴的代码逻辑有问题,短距离打车不会自动使用此优惠券,如需使用此优惠券,请关闭自动扣款,并在付款时手动选择该优惠券。(滴滴客服已给我转了技术,技术那边还没给出回复。)
11 月每天 11 点抢立减 100 元券(即 100 内免单),当天失效,虽说每天限量 100 张,但是到现在好像都还有。
以及不确定有没有之前一次活动类似 bug,即写着限制地区但实际未限制使用。(欢迎评论区反馈)
脚本暂不公开。
更新:由于滴滴的代码逻辑有问题,短距离打车不会自动使用此优惠券,如需使用此优惠券,请关闭自动扣款,并在付款时手动选择该优惠券。(滴滴客服已给我转了技术,技术那边还没给出回复。)
#微博通知
最近新使用「微博通知」脚本的用户变多了,接到很多反馈,需要注意的是,脚本是抓取的手机网页版微博的接口(可理解为爬虫),并非正常申请微博接口所写。而如果特别频繁的请求,会导致接口返回错误页面,即无法正确拿到结果。所以建议适当拉长 cron 间隔时间或避开整点之类的大家都在发送请求的时间。脚本只是辅助和凑合使用的作用,如需实时推送只能等所使用的官方/第三方客户端去完善。
即避免使用每分钟/每两分钟这种类似的定时任务,不管是对手机电量还是接口返回都有较大影响。
同时,现在 Quantumult X 和 Loon 均支持多媒体通知,Surge 和 Shadowrocket 暂未支持。
最近新使用「微博通知」脚本的用户变多了,接到很多反馈,需要注意的是,脚本是抓取的手机网页版微博的接口(可理解为爬虫),并非正常申请微博接口所写。而如果特别频繁的请求,会导致接口返回错误页面,即无法正确拿到结果。所以建议适当拉长 cron 间隔时间或避开整点之类的大家都在发送请求的时间。脚本只是辅助和凑合使用的作用,如需实时推送只能等所使用的官方/第三方客户端去完善。
即避免使用每分钟/每两分钟这种类似的定时任务,不管是对手机电量还是接口返回都有较大影响。
同时,现在 Quantumult X 和 Loon 均支持多媒体通知,Surge 和 Shadowrocket 暂未支持。
#滴滴出行
https://static.dorado.xiaojukeji.com/vue/dist/en/coupon.html?schannel=didi&a=&b=120107&c=20000&d=0&s=1810596130717516128&cId=6312&v=1.0&lang=en-US&t=qr#/
领取两张 8 元快车优惠券,仅限滴滴英文页使用。可在左上角头像 - 设置 - 多语言处选择英语。需要注意的是:滴滴英文页目前只能使用滴滴快车及优享,且不可同时呼叫,可对比正常滴滴优惠使用。
https://static.dorado.xiaojukeji.com/vue/dist/en/coupon.html?schannel=didi&a=&b=120107&c=20000&d=0&s=1810596130717516128&cId=6312&v=1.0&lang=en-US&t=qr#/
领取两张 8 元快车优惠券,仅限滴滴英文页使用。可在左上角头像 - 设置 - 多语言处选择英语。需要注意的是:滴滴英文页目前只能使用滴滴快车及优享,且不可同时呼叫,可对比正常滴滴优惠使用。
zZPiglet
#todo_zZPiglet 1. 小黑盒新加密(1.3.125) 2. 豆瓣·电影日历的_sig 3. 万象城app带deviceParams请求的sign加密 4. 借用彭于晏的gist做共享aff 5. BoxJs 首页壁纸相关 task (@chavy_boxjs_userCfgs.bgimg) 6. 10010 重写(关键信息 ecs_token) 7. 115 新签到(有新加密)
🔨 1 new commit to Task:master:
f0db4c5: 重写滴滴脚本,加入一些新功能,请阅读 README.md 后使用。如使用此脚本,可去除原 DiDi.js、DiDi_reward.js 脚本。 by zZPiglet
获取 token 一定要开启滴滴的定位,因为同时需要获取到你的城市编号。
测试阶段,可在 BoxJs 更新后进行设置,如无大问题这次可能真的会🐦很久了。
🔨 1 new commit to Task:master:
9e6796f: 增加从小程序获取 Token。 by zZPiglet
如需抢券请在晚八点之前运行一次脚本存储券编号。
冷知识:这个券可能是手动控制加的,因为之前一个多月的过程中经历了加错券、打错券名、券名不规范等事件,目前暂时稳定下来。
f0db4c5: 重写滴滴脚本,加入一些新功能,请阅读 README.md 后使用。如使用此脚本,可去除原 DiDi.js、DiDi_reward.js 脚本。 by zZPiglet
获取 token 一定要开启滴滴的定位,因为同时需要获取到你的城市编号。
测试阶段,可在 BoxJs 更新后进行设置,如无大问题这次可能真的会🐦很久了。
🔨 1 new commit to Task:master:
9e6796f: 增加从小程序获取 Token。 by zZPiglet
如需抢券请在晚八点之前运行一次脚本存储券编号。
冷知识:这个券可能是手动控制加的,因为之前一个多月的过程中经历了加错券、打错券名、券名不规范等事件,目前暂时稳定下来。
GitHub
Comparing 5db2b065f0b0...f0db4c568fab · zZPiglet/Task
Some Scripts. Contribute to zZPiglet/Task development by creating an account on GitHub.
👍1
zZPiglet
#todo_zZPiglet https://static.udache.com/common/pc-login/js/vendor.02bfb8364dab3d61b1d7.js 提炼出滴滴的 wsgsig 算法。
#todo_zZPiglet
下个月重构微博通知中 ParseWeibo 函数以支持更多类型的多媒体显示,有间隔的进行通知避免通知爆炸,且使其便于更改、维护。(如时间允许做一下 uid 缓存和更好的接口返回错误判断)
目前已更新修复被夹微博导致的错误和微博故事显示其封面。(下月重构后会支持显示其内容)
下个月重构微博通知中 ParseWeibo 函数以支持更多类型的多媒体显示,有间隔的进行通知避免通知爆炸,且使其便于更改、维护。(如时间允许做一下 uid 缓存和更好的接口返回错误判断)
目前已更新修复被夹微博导致的错误和微博故事显示其封面。(下月重构后会支持显示其内容)
最近状态不太好 抽个奖冲冲
iko - 应用图标替换(iOS 14+,限国区兑换) 抽奖活动已发布
参与关键词:年底了 祝大家 考的全对 蒙的全会 诸事顺利 万事顺心
已抽完。
iko - 应用图标替换(iOS 14+,限国区兑换) 抽奖活动已发布
参与关键词:年底了 祝大家 考的全对 蒙的全会 诸事顺利 万事顺心
已抽完。
摸🐟:
几点基础安全相关的想法与可能有用的提示:
1. 使用非自写脚本时请简单浏览检查一下是否有恶意发送「非相关请求」至「不明链接」,特别注意是否非正常使用了自己的身份验证信息,如 cookie、token、password。
2. 基于 1,请不要随意使用不受信任的第三方 API,请勿随意传播、使用相关脚本。若是信任的接口,可查看其说明自行尝试写简单脚本或按其说明使用。
3. 基于 1,请不要使用「任何」需要使用自己身份验证信息的第三方 API,如链接中直接使用自己 cookie、password 的 API(无论加密与否)。若自己非要使用,请使用完全独立的账号密码且此服务应不与任何其他服务链接。
4. 基于 1,请不要使用自己无法简单检查的脚本,如不明 exe 等打包后的软件、被加密混淆且自己无能力研究的脚本等。对于不明打包后的软件,可以尝试先利用常见杀毒软件紧张扫描,在非完全信任的前提下请勿忽略其报毒信息。
5. 基于 4,若自己非要使用第三方、不明打包后的软件,请注意是否使用了自己的身份验证信息。如未使用,可尝试在虚拟机、可抛弃无其他重要服务的云端使用;如其使用了自己的身份验证信息,在不信任的前提下请直接弃用。
https://mp.weixin.qq.com/s/DvHxND_0gSRIPiAMZKQ7iw
几点基础安全相关的想法与可能有用的提示:
1. 使用非自写脚本时请简单浏览检查一下是否有恶意发送「非相关请求」至「不明链接」,特别注意是否非正常使用了自己的身份验证信息,如 cookie、token、password。
2. 基于 1,请不要随意使用不受信任的第三方 API,请勿随意传播、使用相关脚本。若是信任的接口,可查看其说明自行尝试写简单脚本或按其说明使用。
3. 基于 1,请不要使用「任何」需要使用自己身份验证信息的第三方 API,如链接中直接使用自己 cookie、password 的 API(无论加密与否)。若自己非要使用,请使用完全独立的账号密码且此服务应不与任何其他服务链接。
4. 基于 1,请不要使用自己无法简单检查的脚本,如不明 exe 等打包后的软件、被加密混淆且自己无能力研究的脚本等。对于不明打包后的软件,可以尝试先利用常见杀毒软件紧张扫描,在非完全信任的前提下请勿忽略其报毒信息。
5. 基于 4,若自己非要使用第三方、不明打包后的软件,请注意是否使用了自己的身份验证信息。如未使用,可尝试在虚拟机、可抛弃无其他重要服务的云端使用;如其使用了自己的身份验证信息,在不信任的前提下请直接弃用。
https://mp.weixin.qq.com/s/DvHxND_0gSRIPiAMZKQ7iw
Weixin Official Accounts Platform
病毒作者利用破解去广告腾讯视频噱头投递CS后门
背景近日接到用户反馈,发现一起通过腾讯视频精简包投毒事件。