Просмотр зашифрованного текста зашифрованного файла в 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;
}

Примечание. Любой код, опубликованный в открытом доступе. Атрибуция не требуется.

Другие вопросы по тегам