Куда уходят файлы Дубовцев Алексей Xakep, номер #065, стр. 065-114-5 После того как вся информация в файле будет многократно перезаписана, программа удалит файл, обратившись к функции DeleteFile. При желании можно закомментировать вызов этой функции, и тогда можно будет легко увидеть, какой бред кладет программа внутрь файла. Ищем потоки в файлах fileHandle = CreateFile( szFileName, GENERIC_READ, FILE_SHARE_READ|FILE_SHARE_WRITE, NULL, OPEN_EXISTING, 0, 0 ); if( fileHandle == INVALID_HANDLE_VALUE ) return; streamInfoSize = 16384; streamInfo = (PFILE_STREAM_INFORMATION)malloc( streamInfoSize ); status = STATUS_BUFFER_OVERFLOW; while( status == STATUS_BUFFER_OVERFLOW ) { status = pNtQueryInformationFile( fileHandle, &ioStatus, streamInfo, streamInfoSize, FileStreamInformation ); if( status == STATUS_BUFFER_OVERFLOW ) { free( streamInfo ); streamInfoSize += 16384; streamInfo = (PFILE_STREAM_INFORMATION)malloc( streamInfoSize ); } else break; } if( NT_SUCCESS( status )) { streamInfoPtr = streamInfo; while( 1 ) { memcpy( streamName, streamInfoPtr->Name, streamInfoPtr->NameLength ); streamName[ streamInfoPtr->NameLength/2 ] = 0; …. if( !streamInfoPtr->NextEntry ) break; streamInfoPtr = (PFILE_STREAM_INFORMATION) ((char *) streamInfoPtr + streamInfoPtr->NextEntry ); } CD На диске ты найдешь полные исходные коды приложения XWipe, а также его рабочую версию. Для компиляции исходников тебе понадобится Microsoft Visual Studio. WWW Если ты покупаешь журнал без диска, то ищи на сайте www.xakep.ru исходные коды в разделе Х-релиз. INFO При желании ты сможешь расширить функциональность приложения, научив его садиться в трей. |