【附源码】如何用C语言做一个刷弹幕的工具?

什么是网络水军???

网络水军是指在网络中针对特定内容发布特定信息的、被雇佣的网络写手。网络水军通常简称水军,又名网络枪手,他们通常活跃在电子商务网站、论坛、微博等社交网络平台中。他们通过伪装成普通网民或消费者,通过发布、回复和传播博文等对正常用户产生影响。

水军灰产业:刷播放量,刷流量,刷弹幕,刷评价,刷点赞...

水军的分类:人肉水军, 机器水军

【附源码】如何用C语言做一个刷弹幕的工具?_第1张图片

 点击量达到488亿???

1.机器水军原理分析

软件控制鼠标鼠标点击,实现自动刷XXX

使用win32接口,控制按键事件。

使用win32接口,控制剪贴板。

【附源码】如何用C语言做一个刷弹幕的工具?_第2张图片

 没错!就这么简单,说干就干!

2.代码实现

#include 
#include 

#define FILE_NAME    "dm.txt"
#define LINE_COUNT	 1024
#define TIME_SPAN    6000

// 把指定的内容,拷贝到剪贴板
bool copy2Bord(const char *data, int len) {
	// 套路!!!
	// 1. 打开剪贴板
	if (OpenClipboard(NULL)) {
		// 2. 清空剪贴板
		EmptyClipboard();

		// 申请一块内存 1000
		// GlobalAlloc返回的是内存资源的句柄
		HGLOBAL clipBuffer = GlobalAlloc(
			GMEM_DDESHARE, //用于不同程序间交换数据用的
			len + 1);

		// 锁定这块内存,返回这个内存的起始地址
		char *buff =(char*)GlobalLock(clipBuffer);
		
		// 字符串拷贝, memcpy, strcpy
		strcpy(buff, data);

		// 解锁指定的内存
		GlobalUnlock(clipBuffer);

		// 写到剪贴板
		SetClipboardData(CF_TEXT, clipBuffer);

		// 关闭剪贴板
		CloseClipboard();

		return true;
	}
	else {
		return false;
	}
}

// 发送弹幕
void sendDM() {
	// 从文件中读取弹幕信息
	FILE *fp;  //是一个文件指针,用来读写文件的
	fp = fopen(FILE_NAME, "r");
	if (fp == NULL) {
		printf("打开文件:%s 失败", FILE_NAME);
		return;
	}

	char buff[LINE_COUNT];
	// 从文件读一行 
	// 从fp指向的文件中,读取一行,保存到buff
	// fgets读一行,会包含末尾的回车符!
	while (fgets(buff, sizeof(buff), fp)) { //20万
		// 发弹幕
		// buff  -> 剪贴板  -> ctrl + v  回车
		// 把buff中的内容拷贝到剪贴板 
		while (!copy2Bord(buff, strlen(buff) - 1)) {}

		// 鼠标左键单击一次
		mouse_event(MOUSEEVENTF_LEFTDOWN |
			MOUSEEVENTF_LEFTUP, 0, 0, 0, 0);
		//Sleep(20);

		// ctrl键按下
		keybd_event(
			VK_CONTROL, // 虚拟按键值 ctrl
			0,  //扫描码, 一般都取0
			0,  //0:按下 KEYEVENTF_KEYUP:抬起  
			0); //一般取0

		keybd_event('V', 0, 0, 0);   //V键按下
		keybd_event('V', 0, KEYEVENTF_KEYUP, 0); //V键抬起
		keybd_event(VK_CONTROL, 0, KEYEVENTF_KEYUP, 0);  //Ctrl抬起
	    
		keybd_event(VK_RETURN, 0, 0, 0);      //回车键按下
		keybd_event(VK_RETURN, 0, KEYEVENTF_KEYUP, 0);  回车键抬起

		memset(buff, 0, sizeof(buff));

		Sleep(TIME_SPAN);
	}

	fclose(fp);
}

int main() {
	printf("准备好了吗? \n");
	system("pause");
	printf("5秒后开始\n");
	Sleep(5000);

	while (1) {
		sendDM();
	}

	return 0;
}

项目拓展

实现QQ机器人,而且摆脱腾讯的检测。

原理:使用opencv实现图像识别,结合win32的按键、鼠标自动操作。

视频教程:OpenCV开发环境的搭建

                  项目实战:B站 刷 弹幕程序

你可能感兴趣的:(项目实战,c语言,开发语言,后端)