简单的反U盘病毒(删除不了的畸形文件夹)

47 篇文章 38 订阅

很久的风行就是用的这种方法来防止用户删除它。

很久以前的一段时期也用次方法防U盘病毒

如下所示:


防U盘病毒的原理就是在每个盘创建一个这样的文件

下面先接受几个win API

DWORD WINAPI GetLogicalDriveStrings(	//获取磁盘
  _In_  DWORD  nBufferLength,
  _Out_ LPTSTR lpBuffer
);
Fills a buffer with strings that specify valid drives in the system.

第二个API

BOOL WINAPI CreateDirectory(
  _In_     LPCTSTR               lpPathName,
  _In_opt_ LPSECURITY_ATTRIBUTES lpSecurityAttributes
);
Creates a new directory. 


下面是代码

#include "stdafx.h"
#include <windows.h>

void ImmuntiyAutoRun()
{
	//建立无法删除的文件夹
	char szDriverStr[MAXBYTE] = { 0 };

	DWORD dwLen = GetLogicalDriveStringsA(MAXBYTE, szDriverStr);

	for (int i = 0; i < dwLen; i+=4)
	{
		char szRoot[4] = {}, szPath[MAX_PATH] = { 0 };
		strncpy_s(szRoot, &szDriverStr[i], 4);
		strcpy_s(szPath, szRoot);
		strcat_s(szPath, "autorun.inf");
		if (!CreateDirectoryA(szPath, nullptr))
			printf_s("Error:%d", GetLastError());
		strcat_s(szPath, "\\anti......\\");
		if (!CreateDirectoryA(szPath, nullptr))
			printf_s("Error:%d", GetLastError());
	}
	
}

int _tmain(int argc, _TCHAR* argv[])
{

	ImmuntiyAutoRun();
	getchar();
	return 0;
}

这样就会在每一个盘下面创建一个尾部带"....."的畸形文件夹。

但注意的是,用win API 可以把他删除哦。

BOOL WINAPI RemoveDirectory(
  _In_ LPCTSTR lpPathName
);



  • 2
    点赞
  • 17
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 4
    评论
感染了该病毒后:1.该病毒会在每个磁盘的根目录复制exe文件,图标为xp文件夹图标,大小为37k,你的根 目录下有多少文件夹它就会复制多少个病毒,而且文件名会和你每个磁盘根目录下的文件夹名一样,原有的 文件夹会被隐藏。2.更改注册表。3.复制uk.exe和autorun.inf。 Delphi下的实现方法 众所周知,使用Delphi编写出来的程序都很大,至少也有上百K的大小,这么大的文件如何做到有利于传播 呢?熟悉Delphi的朋友都应该知道,在uses里面加入forms、class、graphics这些单元会使生成的文件非常 大,所以我们尽可能不使用这些单元,这里只使用windows、sysutils两个单元。这样,编译完的文件只有 几十K,移除其它的单元如class、graphics等,只需要把uses后边的单元名去掉就可以了,可是直接去掉 forms是不行的,编译时会出现错误,那如何编译出无窗体的程序呢? 1.在Delphi的“file(文件)”菜单上选择“新建应用程序(New Application)”。 2.因为我们的程序要伪装成文件夹,所以先要设置程序图标为xp默认的文件夹图标。选择“project(工程) ”-“option(选项)”-“application(应用程序)”,点击“load icon”按钮,选择我们已经准备好的文 件夹图标。为什么要先设置图标呢,这是因为下一步去除窗体后就不能再进行设置了,application settings里面的项就是灰色的了,无法再进行设置和修改了,所以需要先进行设置。 3.在Delphi的“Project”菜单下选择“Remove From Project”,选择Form1,按“OK”按钮,成功移除窗 体。 4.在Project1.DPR中,把“Uses Forms”更改为“Uses Windows,sysutils”。 5.把“Application.Initialize;”和“Application.Run;”删除掉,运行一下,这样我们就成功建立了一 个无窗体的可执行文件,看看是不是才十几K大小。 6.程序的大小搞定了,开始编写代码吧,在“{$R *.res}”后面begin的前面编写代码,

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 4
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

IT1995

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值