Пишу вирус, заражающий драйвера. Вопрос: Как наиболее просто с ринг0 открыть файл и записать туда данные..?
Так, вроде бы. InitializeObjectAttributes->ZwCreateFile->ZwWriteFile->ZwClose. Пример - у Four-F в KmdKit. Удачи!
ksu_ant имхо, более удобно юзать проекции файлов nitrotoluol не забывай чексумму пересчитывать, ато хрен грузиться будет))
Код (Text): NTSTATUS status; UNICODE_STRING fullFileName; HANDLE fileHandle; IO_STATUS_BLOCK iostatus; OBJECT_ATTRIBUTES oa; RtlInitUnicodeString( &fullFileName, L"\\??\\C:\\Example\\testfile.txt"); InitializeObjectAttributes( &oa, &fullFileName, OBJ_CASE_INSENSITIVE | OBJ_KERNEL_HANDLE, NULL, NULL ); status = ZwCreateFile ( &fileHandle, GENERIC_WRITE | SYNCHRONIZE, &oa, &iostatus, 0, // alloc size = none FILE_ATTRIBUTE_NORMAL, FILE_SHARE_WRITE, FILE_OPEN_IF, FILE_SYNCHRONOUS_IO_NONALERT, NULL, 0); // Здесь: // GENERIC_WRITE равно STANDARD(0x40000000L) // // FILE_GENERIC_WRITE равно STANDARD_RIGHTS_WRITE|FILE_WRITE_DATA | // FILE_WRITE_ATTRIBUTES | FILE_WRITE_EA | FILE_APPEND_DATA | // SYNCHRONIZE, что можно увидеть в заголовочном файле winnt.h if( NT_SUCCESS(status)) { // Строка для записи в файл char myString[100]="string : test write!\r\n"; // Структура, которая поможет определить длину файла: FILE_STANDARD_INFORMATION fileInfo; status = // Получаем информацию о файле ZwQueryInformationFile( fileHandle, &iostatus, &fileInfo, sizeof(FILE_STANDARD_INFORMATION), FileStandardInformation ); ULONG len = strlen(myString); if( NT_SUCCESS(status) ) { LARGE_INTEGER ByteOffset = fileInfo.EndOfFile; status = ZwWriteFile(fileHandle, NULL, NULL, NULL, &iostatus, myString, len, // Записываемая строка &ByteOffset, // a если NULL? см. ниже NULL); if( !NT_SUCCESS(status) || iostatus.Information != len ) { DbgPrint("Error on writing. Status = %x.", status); } } ZwClose(fileHandle); break; }
k3internal Скажем так, ты либо твечай по делу, либо нет. Потому как ответ "знаю, но не скажу" все-таки информационной нагрузки не несет )))) apple Сенкс Cr4sh Само-сабой разумеется... все пересчитываем... ) Все грузится пока... ) ------------------------------------------ Еще вопрос. Имеет ли смысл ставить морфер или сис-файлы пока не сильно эмулируются?? Достаточно простого ксора?
На кой х. заражать дрова? А как быть с такой фигней как "цифровая подпись"? Не, реально хотелось бы посмотреть на конечный результат, как бы бсодогенератор очередной не вышел.