好友
阅读权限40
听众
最后登录1970-1-1
|
经历过熊猫烧香或一些U盘感染型病毒的朋友们都一定对AUTORUN记忆犹新,现在我们可以通过建立一个无法删除的AUTORUN.INF目录或文件来达到防止病毒通过此路径传播自身的目的,首先建立个程序界面
程序首先使用get_drives()函数获取所有的磁盘列表,get_drives()函数返回一个TSTRINGLIST对象,这个对象保存了所有的磁盘信息.这里选择了在窗体的载人事件中调用这个函数来获得磁盘列表.然后,在按钮的单击事件中完成对磁盘目录的免疫功能,原理就是使用CMD命令建立特殊目录,这样就导致产生了一个在windows资源管理器中无法删除的目录,同时也完成了我们的目标,禁止程序生成AUTORUN.INF文件.
程序的全部代码:
unit unit1;
interface
uses
Windows,Messages,Sysutils,Classes,Graphics,Controls,Forms,
type
Tform1=class(Tform)
Listbox1: Tlistbox;
Button1: TButton;
Button2:TButton;
Procedure FromCreate(Sender: TObject);
Procedure Button2Click(Sender: TObject);
Prpcedure Button1Click(Sender: TObject);
private
{private declarations}
public
{public declarations}
end;
var
Form1:TForm1;
implementation
{$r *.dfm}
function get_drives():tstringlist;
var
i:integer;
n:integer;
a:tstringlist;
begin
a:=tstringlist.Create;
for i:=65 to (65+25) do
begin
n:=getdrivetype(pchar(chr(i)+':\'));
case n of
//0:
// treeview1.ltems.Add(nil,chr(i)+'\ 无法检测!');
//1:
// treeview1.ltems.Add(nil,chr(i)+'\ 不存在!');
drive_removable:
a.add(chr(i)+'\(移动硬盘)');
drive_fixed:
a.add(chr(i)+'\(硬盘)');
drive_remote:
a.add(chr(i)+'\(网络硬盘)');
drive_cdrom
a.add(chr(i)+'\(CD-ROM)');
drive_ramdisk:
a.add(chr(i)+'\(光盘)');
//else:
end;
end;
result:=a;
end;
procedure TForm.FormCreate(Sender: TObject);
begin
listbox1.ltems.assign(get_drives()); //得到所有磁盘列表
end;
procedure TForm.Button2Click(Sender: TObject);
begin
application.terminate;//退出程序运行
end;
procedure TForm1.Button1Click(TObject);
var
i:integer;
s:string;
begin
for i:=0 to listbox1.ltems.Count-1 do
begin
s:=copy(listbox1.ltems.Strings,1,1); //得到磁盘名
winexec(pchar('cmd.exe /cmd '+s+':\auturun.inf\'),sw_hide);//建立Autorun.inf目录
winexec(pchar('cmd.exe /cmd '+s+':\auturun.inf\condor..\ 免疫成功!');
end;
end;
end.
在程序运行前,我们可以看到在磁盘根目录下是没有Autorun.inf目录的,按F9运行程序,或者直接生成EXE程序再双击运行,可以看到程序窗口中自动列出了所有存在的磁盘目录,点击程序主界面的*开始免疫*按钮,我们就会看到提示说所有的从哦盘都免疫成功,在磁盘根目录下也可以看到一个Autorun.inf文件了.当使用邮件删除时,就会弹出一个*删除文件或者文件夹错误*的对话框.
打开Autorun.inf这个文件夹,可以看到其中有个*condor.*(后面有个符号.)当试图删除这个目录时就会弹出因为引用了一个不可用的位置所以导致删除文件失败的提示.
该程序的原理其实就是通过在磁盘根目录下建立一个Autorun.inf文件夹,然后在这个文件夹之下再建立一个只有在CMD下才可以建立的特殊文件夹(在windows下访问会出错),如果试图删除Autorun.inf,就会提示失败,因为Autorun.inf文件夹下面有个在windows下无法访问的错误文件夹,当访问这个文件夹时,也会提示访问失败,当删除时,同样也会提示无法删除,进过这样的免疫之后,通过系统自动播放功能就无法再传播病毒了. |
|
发帖前要善用【论坛搜索】功能,那里可能会有你要找的答案或者已经有人发布过相同内容了,请勿重复发帖。 |
|
|
|
|