|
本帖最后由 阿龙 于 2024-5-23 00:26 编辑
为什么要研究易语言的长ab算法呢,目前xb和短ab在一些情况下任然可以使用。
缘起于其中一个小单子。最开始以为客户要xy,没想到要的是软件,那寻思用易语言写方便些。
但是拿之前的短ab去发dm也是遇到问题,表情和长文本发不出去。
所以我用js跑了一下,发现长ab确实可以发出去,但是目前对于长ab如果逆向纯算法的成本肯定不合适。
那我们看下现有解决方案当中最简单的,下断点抓生成函数后抽离出来加密的jsvmp代码,然后通过补环境来获取。
但是同样需要耗费时间,而且拿到易语言环境下不知道能不能跑。
随后取折中方案,嵌入浏览器,直接通过抖音页来跑js函数。
下面是主要代码:
首先是在窗口中实例化一个chrome内核的浏览器对象
然后跳转置任意可以验证a_bogus的页面,例如"douyin.com"这种,然后隐藏起来即可
因为多线程发弹幕,所以我们反馈到主线程来通过全局浏览器对象处理,因为相对于网页的请求,本地生成a_bogus速度完全可以忽略不计,即使因为反馈到主线程处理而退化为单线程。
指针 = 标签W1. 调用反馈事件 (取变量数据指针 (参数 ), 加密数量, )文本 = 获取文本A (指针 )返回 (文本 )
|
_标签W1_反馈事件 | 整数型 | | |
参数 | 整数型 | | | | 参数二 | 整数型 | | | |
变量名 | 类 型 | 静态 | 数组 | 备 注 | js指令 | 文本型 | | | ab | 文本型 | | | 指针 | 整数型 | | |
js指令 = “let params =” + #引号 + 指针到文本 (参数 ) + #引号 + “;” + #换行符 js指令 = #js前 + js指令 + #js中 + 到文本 (参数二 ) + #js尾 ab = 子文本替换 (浏览器. 执行js (js指令 ), #引号, , , , 真)返回 (申请文本A (ab ))
此代码中并没有判断窗口是否已经创建,是因为非外部干扰的情况下该处理ab的窗口生命周期和程序生命周期一样。
用到的两个辅助代码,并且参数中存在msToken,具体算法已经开源了
如果真 (取文本长度 (ab ) = 0 )返回 (0 )指针 = 内存申请 (取文本长度 (ab) + 1, 真)如果真 (指针 ≠ 0 )内存复制 (指针, 取变量数据指针 (ab ), 取文本长度 (ab )) 返回 (指针)
ok,拿到ab,添加cookie测试下请求就好。
没问题了。这样我们就可以更方便的为喜欢的主播打call了,
思路也是学习目的,请勿用于非法用途。
具体代码因为客户有些原因还未结单,没有同意也不会放出来,并且用于长a_bougus部分估计也会用编译好的二进制代码交工,毕竟我不是父母不可能喂饭。
调用的js代码的函数我就不放了,大家自己找入口吧,仅仅是学习讨论。
祝各位码运昌隆
|
评分
-
查看全部评分
|