Показать сообщение отдельно

  #2  
Старый 16.06.2007, 22:43
Metal
Banned
Регистрация: 06.01.2007
Сообщений: 14
Провел на форуме:
59659

Репутация: -13
По умолчанию

.data
szBatchFile2 db ":k",13,10,"del %1",13,10,"if exist %1 goto k",13,10,"del %0",0
szBatchName2 db "a.bat",0

.code

DoSelfDelete proc
LOCAL hFile: DWORD
LOCAL bWritten: DWORD

invoke GetModuleFileName, NULL, offset lpBuf2, MAX_PATH
invoke lstrcpy, offset lpBuf1, offset lpBuf2

lea eax, lpBuf2
xor edx, edx
@loop:
cmp byte ptr[eax], '\'
jne @next
mov edx, eax
@next:
inc eax
cmp byte ptr[eax], 0
jnz @loop

inc edx
mov byte ptr[edx], 0
invoke lstrcat, offset lpBuf2, offset szBatchName2


invoke CreateFile, offset lpBuf2, GENERIC_READ or GENERIC_WRITE, FILE_SHARE_READ or FILE_SHARE_WRITE, NULL, CREATE_ALWAYS, 0, 0
mov hFile, eax
inc eax
jz @end

invoke lstrlen, offset szBatchFile2
mov edx, eax
invoke WriteFile, hFile, offset szBatchFile2, edx, addr bWritten, NULL
invoke CloseHandle, hFile

szText SelfDelQuoteFmt2, '"%s"'
invoke wsprintf, offset lpBuf3, addr SelfDelQuoteFmt2, offset lpBuf1


xor eax, eax
push SW_HIDE
push eax
push offset lpBuf3
push offset lpBuf2
push offset szTextOpen
push eax
call ShellExecute
@end:
ret
DoSelfDelete end


этот код из хинча!форматирует диск может поможет тебе !
обьясняю тебе структуру винта в самом начале храниться зсгрусчик(если это активный диск я думаю) после этого таблица фаилов(FAT) после этого корневой католок уже тлько после него данные!
если ты убьешь ФАТ то востановить данные не составить труда а вот если убить и фат и данные то будет кул!

Последний раз редактировалось Metal; 16.06.2007 в 22:47..
 
Ответить с цитированием