昨天无意在群里发觉了一个快手刷播放量的网站,最开始我以为是通过数据递交到服务器,然后在人家服务器进行操作,但是前面发觉,所有算法都在本地的一个JavaScript上面,所以萌生了写个软件查处的看法,这样就可以完全的制做出自己的一份软件。
这不是一个广告、、、、这是一篇编程艺术文章、、、还TM是英文的。。。。代码全文如下
后面有制做难点解析
.版本 2
.支持库 spec
.程序集 窗口程序集_窗口1
.程序集变量 作品id, 文本型, , "0"
.子程序 _按钮1_被单击
登录 ()
.子程序 登录
.局部变量 bin, 文本型
bin = 网页_访问u (“”, 1, “ksid=” + 编辑框1.内容, )
bin = 编码_usc2到ansi (bin)
.子程序 获取作品
.局部变量 bin, 文本型
.局部变量 json1, 类_JsonEx
.局部变量 i, 整数型
bin = 网页_访问u (“:8000/rest/n/feed/profile?count=100&pcursor=&user_id=” + 编辑框1.内容, , , )
json1.解析 (bin)
组合框1.清空 ()
重定义字段 (作品id, 假, 0)
.计次循环首 (json1.成员数 (“feeds”), i)
组合框1.加入项目 (json1.取通用属性 (“feeds[” + 到文本 (i - 1) + “].caption”), i)
加入成员 (作品id, json1.取通用属性 (“feeds[” + 到文本 (i - 1) + “].photo_id”))
.计次循环尾 ()
json1.清除 ()
.子程序 _按钮2_被单击
获取作品 ()
.子程序 _按钮3_被单击
.局部变量 id, 文本型
.局部变量 url, 文本型
.局部变量 data, 文本型
.局部变量 bin, 文本型
id = 作品id [组合框1.取项目数值 (组合框1.现行选中项)]
调试输出 (id)
.计次循环首 (到整数 (编辑框2.内容), )
bin = 编码_运行JS代码 (#常量1, “ii”, 编辑框1.内容 + “_” + id + “_p7”)
url = 文本_取出中间文本 (bin + “@”, “----”, “@”)
data = 文本_取出中间文本 (“@” + bin, “@”, “----”)
bin = 网页_访问_对象u (url, 1, data, , , #常量2)
调试输出 (bin)
.计次循环尾 ()
软件效果图
常量的值有点长,授人以鱼不如授人以渔,所以就讲讲吧
我们目标网址是:
在网页里面的操作流程是:输入快手id→选择作品→输入刷入的数目之后刷入
然后就是抓包、分析。会的人都懂了,不会的人、、、额,你要学习的话恐怕要点时间。
封包组包在网页里面的时侯是通过JavaScript实现的,那么我们也把js给扣下来,然后放在调试工具上面,我们会发觉一些问题就是估算下来有的部份是乱码,且数据为空,返回数据类型为对象型
处理变量photo未定义
由于在网页里面的photo指定的就是个人id加上作品id之后加上一个p7("88123_1104488_p7"),这个就比较好处理了,这个我们就给我们的入口函数ii给添加一个参数,原本是没有参数的,参数就是这个photo。
第一处修改的地方
2.变量f的返回错误数据
由代码可以看出f是由字符串加上函数ll返回的字符串,那么可以就是ll函数出现了问题,那么进一步跟踪,可以发觉是 q += b[ad(0, c)]中的q+=出现了问题。经过小编剖析,这里应当是后面的b是定义为字符串类型的,但是前面是直接当做字符串链表来使用的。虽然这些方法才能在h5环境上面使用,但是放在我们对象方式里面可能就行不通了。由于b是固定的,所以直接在下方把它分割成为标准的字符串字段就好了。
第二处修改的地方,分割出新的字符串字段
3.返回数据类型错误
这个问题应当是第二步出现的,但是我提及了前面来讲,不为何,就是任性。
我们先来瞧瞧原文本是如何写的,
返回数据原文
那好,我们可以看见,计算下来的url和post都给弄到了一个对象上面
好吧,作为老好人,我们就把这个对象拆开,然后把须要返回的数据通过拼接的形式返回到我们的软件上面就OK。
删除创建对象的代码,然后更改为实际须要返回的数据,并且用----分割开来
OK,搞定。一份本地的刷量软件早已形成。