Просмотр зашифрованного текста зашифрованного файла в NTFS (EFS)
Поэтому я провожу некоторое тестирование с шифрованием данных на курс, который я прохожу в школе (для этого задания мы должны использовать только среду Windows), и я могу использовать встроенный в Windows "cipher.exe". Инструмент просто отлично подходит для того, что нам нужно сделать.
Я сделал небольшой файл.txt (мой обычный текст) и зашифровал его, используя "cipher / e PlainText.txt", в котором нет ошибок. Тем не менее, я хочу иметь возможность просматривать зашифрованный текст. Как можно это сделать? Я попытался войти в систему как пользователь, который не имел надлежащего доступа к файлу, и вместо того, чтобы увидеть зашифрованный текст, он просто выходит пустым, говоря "Доступ запрещен".
Спасибо за любые идеи.
1 ответ
Чтобы открыть зашифрованный файл для чтения его необработанного зашифрованного содержимого (например, для приложения резервного копирования / восстановления), используйте:
OpenEncryptedFileRaw
,ReadEncryptedFileRaw
,WriteEncryptedFileRaw
, а такжеCloseEncryptedFileRaw
API-функции.
Написание кода на лету, на гипотетическом гибридном языке:
void ExportEncryptedFileToStream(String filename, Stream targetStream)
{
Pointer context;
res = OpenEncryptedFileRaw("C:\Users\Ian\wallet.dat", 0, ref context);
if (res <> ERROR_SUCCESS)
RaiseWin32Error(res);
try
{
res = ReadEncryptedFileRaw(exportCallback, null, context);
if (res != ERROR_SUCCESS)
RaiseWin32Error(res);
}
finally
{
CloseEncryptedFileRaw(context)
}
}
function ExportCallback(pbData: PBYTE, pvCallbackContext: PVOID, ulLength: ULONG): DWORD
{
Stream targetStream = Stream(pvCallbackContext);
try
{
targetStream.Write(pbData, ulLength);
}
catch (Exception e)
{
return ERROR_WRITE_FAULT;
}
return ERROR_SUCCESS;
}
Примечание. Любой код, опубликованный в открытом доступе. Атрибуция не требуется.