介绍

ZJU 的校网论坛 CC98 比较活跃。论坛只对校内网开放,而且账号跟学生绑定,每个学生注册的账号数量有限。『十大』是 CC98 的经典页面:基于关注的人数(回帖的用户数而不是回帖的数量)用算法求出 24 小时内最火爆的十个发帖。很多同学都会浏览十大,关注论坛动态。

故事就是从十大引出的。有的社团在宣传活动时,为了扩大宣传面,会发动成员的小马甲顶贴上十大。这种违背社区自然发展轨迹的手段,强奸了关注十大贴的用户的意愿,阻碍了信息的自由流动。

于是萌生了完成一个批量发帖的机器,以其人之道还治其人之身的想法。在下次十大被宣传贴攻占时,能有反击的工具。

工具的用途很简单:使用不同的用户身份模拟真人论坛回帖,增加帖子关注度,以抵抗宣传贴。流程如下:提前收集各路亲朋好友的用户信息作为『预备水军』,『灌水』时,在评论内容文件中输入自定义的评论内容,在命令行参数中制定目标贴,即可实现随机顺序的用户自动顶贴。鉴于现在的功能是顶贴竞争十大,而十大排名是根据关注人数也就是独立用户评论数量做排序的,这里设计的顶贴策略是一个马甲发一条评论。以后可以考虑增加灵活的配置方案,实现更多功能。

项目 Github 地址:https://github.com/biaobiaoqi/CC98PostMachine/

介于这个工具本身的罪恶的攻击属性,在此强调,工程仅供学习交流和对抗宣传贴。

使用说明

1.准备顶贴用户

发帖的 HTTP 请求为 POST 请求。系统验证信息中需要有发帖用户的 username,userid 和 hash 后的 password,这些都能从 cookie 中获得。

有两种方式设置水军的信息:

(1)浏览器中获取 cookie

在浏览器中,找到 cookie 的内容。将对应的三项信息抽取出来后,填入water_army.yml文件,由于该文件涉及用户隐私信息,项目中设置了.gitignore,不会上传到 repo 中。可以参照water_army.yml.example的格式自行修改。

(2)使用RegWaterArmy工具导入

如果不想手动的查找 cookie 信息,也可以将账号、密码输入到pre_water_army.txt文件中,执行命令来获取相关信息。

pre_water_army.txt文件中,一行为单位输入用户名和密码,中间用空格隔开。同样由于隐私原因,repo 中没有上传该文件,可以自行将pre_water_army.txt.example改为pre_water_army.txt,然后填入内容。

填入账号、密码后,在 src 目录下运行如下命令:

1
$CC98POSTMACHINE/src/ruby RegWaterArmy.rb

即可自动获取用户的 cookie 信息,并导入water_army.yml文件中。注意,安全起见,完成这一步后,尽量删除账号、密码等隐私信息。

2.准备评论

comments.txt文件中,设置用户评论的内容,每行一条。现在的设计是保证回帖的顺序与文件中的内容顺序一致。如果用户数量超过了文件中的评论条数,则回复时循环使用comments.txt中的评论。建议自行设计评论,且评论数大于等于水军数量。同样需要用户自行修改comments.txt.examplecommnets.txt后使用。

3.执行

来到 CC98PostMachine 的 src 目录,执行:

1
$CC98POSTMACHINE/src/ruby  PostMachine.rb  BOARDID  POSTID [SPEED]

其中BOARDIDPOSTID可以在浏览器的地址栏的相关帖子的 URL 中找到,SPEED是设定的两个回帖之间的间隔时间,实际回帖时间做了如下的模糊:SPEED + random(SPEED)

1
2
3
4
5
6

Usage: $CC98POSTMACHINE/src/ruby  PostMachine.rb  BOARDID  POSTID [SPEED]

BOARDID and POSTID can be find in the url of certain post, and be sure that BOARDID is a number less than 1000

SPEED is the time gap unit between two posts, it may be 1(s), 10(s) or any other number

下一步:

  • 修复 bug:第一次执行命令时,都只有一个用户能成功回复。(是服务器端的对 cookie 的记录?)

  • 整理代码结构,解耦,增加配置灵活性,写的更 ruby 一点

    原文地址:http://biaobiaoqi.me/blog/2013/11/05/cc98-post-machine/
     版权声明:自由转载-非商用-非衍生-保持署名| Creative Commons BY-NC-ND 3.0

转载于:https://www.cnblogs.com/biaobiaoqi/p/3409676.html

用Ruby实现的论坛灌水工具:CC98 Post Machine相关推荐

  1. byr论坛灌水小工具

    原来写过一个模拟登陆byr论坛的脚本:一个CURL模拟登陆论坛的脚本+cookie伪造的方法 这次改了改,就成了一个小小的灌水机器人. 直接贴代码了: <?php /*** @author : ...

  2. 以后再也去不论坛灌水了

    相册被封,论坛不能发帖子,当时注册这个账号就是为了来csdn学习的,后来发现自己的动机变了 这个论坛还有很多东西我还没学会哪,怎么可以灌水,好好学习,天天向上,不发high图 发次日志,提醒自己,永不 ...

  3. Discuz论坛怎么样防止被人恶意灌水

    现在的论坛灌水工具很厉害.可以实现自动注册,自动识被验证码,自动发帖.  Discuz 论坛用的人很多,他们专门对 Discuz论坛的验证码进行研究过.对上面的验证码识别率达到 90%以上. 验证码目 ...

  4. 可怕,GPT-3论坛跟帖灌水一周无人发现!专挑热搜,秒秒钟长文

    晓查 发自 凹非寺  量子位 报道 | 公众号 QbitAI "我被绿了怎么办"."存款3000万的我仍然感到迷茫"."人在美国,刚下飞机" ...

  5. 怎么绕过论坛回复_可怕,GPT3论坛跟帖灌水一周无人发现!专挑热搜,秒秒钟长文...

    晓查 发自 凹非寺  量子位 报道 | 公众号 QbitAI "我被绿了怎么办"."存款3000万的我仍然感到迷茫"."人在美国,刚下飞机" ...

  6. 同盾反欺诈云防垃圾灌水帖体验分享

    年初将留言本改成了松松论坛,解决了留言本很多问题,也有了互动性,增强了粘性. 不过随后遇到了很多问题,尤其是垃圾贴的问题困扰了我们很久,有一段时间有人用论坛群发器发布了很多垃圾贴,原本只有几千条的帖子 ...

  7. php 机数,PHP实现自动刷数和“灌水”机

    今天无意间看到一个网站,它的计数器能够在静态页里更新,我想,应该是使用js来做的,打开源代码一看,果然是: <div align=center><SPAN class=Article ...

  8. 本周AI热点回顾:GPT-3论坛跟帖灌水一周无人发现; 潘建伟院士高徒陆朝阳获美国物理学会量子计算奖

    点击左上方蓝字关注我们 01 NLP/CV模型跨界进行到底,视觉Transformer要赶超CNN? 在计算机视觉领域中,卷积神经网络(CNN)一直占据主流地位.不过,不断有研究者尝试将 NLP 领域 ...

  9. 源码多多-Discuz x2.5 论坛防灌水机制分析和设置方法

    论坛是比较开放的,所以被灌水或者遭到灌水机和注册机的虐待都很正常,尤其是新论坛没有完整的设置防灌水策略,积分策略和用户组策略,就已经被灌的一塌糊涂,那么今天站帮网-ARCHY就结合Discuz防水墙来 ...

最新文章

  1. Entity Framework 4.3 中的新特性
  2. iOS调用系统相册、相机 显示中文标题
  3. P3971-[TJOI2014]Alice and Bob【贪心】
  4. WebApi系列(从.Net 到 .Net Core)【更新】
  5. Qt工作笔记-第三种方法在QGraphics上写文本
  6. 95-910-146-源码-FlinkSQL-Flink SQL中TableFunction使用分析
  7. 对服务器端接口的调用,自己手写了一个脚本,但返回信息的中文总是乱码(这个方法很不错,重要的是解决思路,寻找手写脚本与录制脚本 生成目录文件的区别)...
  8. memcache简单操作
  9. 跨浏览器书签导入实例演示,更好的管理书签!
  10. iOS 中可能用到的数学公式(绝对值、平方、取整、正余弦)
  11. 经济学人精读丨中国的电子商务
  12. 工赋开发者社区 | 抛弃 Google,Debian 改将 DuckDuckGo 作为默认搜索引擎
  13. 阿里云数据库RDS如何用Navicat连接?
  14. 【经验分享】IT领域7年工作经验和建议
  15. 从零开始写一个小米便签
  16. Qt设置按钮背景图片,点击不显示背景
  17. Zookeeper实现服务注册发现
  18. 老男孩教育Linux运维培训32期决心书
  19. 微信小程序开发之使用Canas制作圆角图片
  20. CSV格式的文件与EXCEL文件的区别

热门文章

  1. mysql join指定字段,mysql inner join用法
  2. 【算法自由之路】前缀树 桶排序之计数排序和基数排序
  3. 老罗android开发视频第二季,安卓之父公布Essential新机,罗永浩直言视频与游戏性能不行...
  4. php视频设置背景音乐,怎么给视频配上应景的背景音乐?视频添加背景音乐的方法|视频添加配乐的软件...
  5. 无人机学习所遇问题动态记录
  6. Gif合成透明PNG变成黑色背景GIF问题解决
  7. python机器人编程教程入门_机器人操作系统(ROS)入门必备:机器人编程一学就会
  8. 奥豪斯仪器(上海)有限公司诚邀您参加2022生物发酵展(济南)与您相约7月泉城
  9. 某公司共有生产部、研发部、销售部、财务部、客服部5个部门和1组服务器,练习题
  10. Android修行手册 - LinearLayout线性布局全解析