Как восстановить содержимое из Блокнота, когда задача зависла?

782
Albin

Если Notepad (блокнот Microsoft, который поставляется с предустановленной Windows, в моем случае Windows 7) завис до того, как у меня появилась возможность сохранить содержимое в файл, есть ли способ восстановить содержимое? Блокнот не имеет какой-то «резервной копии» на жестком диске. Я не думаю, что в любой версии Windows Блокнот хранит какие-либо данные на диске.

Это все в памяти, или если вы открыли существующий файл, который уже был сохранен на диске, все изменения будут в памяти. Так что, если задача все еще там просто заморожена, память все еще должна быть там. Идея пришла мне в голову с первой попытки решить проблему с помощью «незамерзающего» блокнота (см. Как анализировать сбой блокнота? (Windows7) ). Если разморозка не работает, проблема остается в восстановлении данных.

Обратите внимание, что это совсем другой сценарий, чем тот, который указан в следующем вопросе: Как мы «восстанавливаем» блокнот после сбоя? Там память стирается из-за перезагрузки, в моем случае все данные все еще находятся в памяти.

0
Комментарии не для расширенного обсуждения; этот разговор был [перемещен в чат] (https://chat.stackexchange.com/rooms/79575/discussion-on-question-by-albin-how-do-i-recover-the-content-from-notepad- когда-т). DavidPostill 5 лет назад 0

1 ответ на вопрос

3
Albin

Если задача / процесс блокнота все еще существует, текст в блокноте все еще сохраняется в основной памяти компьютера.

Один из способов получить к нему доступ - создать полный дамп памяти процесса и восстановить оттуда текст. Это займет у меня около 5 минут (но вам, скорее всего, нужно добавить некоторое время, если вы делаете это в первые несколько раз, в зависимости от ваших базовых знаний - рассмотрите возможность добавления 10-20 минут). Но вы сможете восстановить свой полный текст.

Для хранения дампа памяти вам нужен менеджер задач, который может хранить файлы дампа, вы можете использовать встроенный диспетчер задач Windows, лично я использую бесплатный инструмент Processhacker.

  • Откройте диспетчер задач
  • Выберите замороженную задачу блокнота
  • выберите сохранение файла дампа через меню или контекстное меню (используйте «полный дамп», если программа дает вам выбор)
  • сохранить файл дампа на диск

Вы можете проанализировать его с помощью обычного Hex-редактора Windows (например, HxD Hex Editor) и восстановить ваши данные:

  • Откройте файл дампа памяти в Hex-редакторе. Обычно он довольно большой (50 000 КБ или более, даже если в диспетчере задач он показывал только менее 1 000 КБ), потому что он содержит гораздо больше, чем просто текст, который вы записали в блокнот, большая часть которого - нечитаемый бред.
  • Чтобы найти «ваш текст» в файле дампа, используйте «поиск» вашего HEX-редактора. Выполните поиск любой части вашего текста, которая была в блокноте, например, части предложения или слова (убедитесь, что вы выбираете правильный метод кодирования при поиске, обычно это Unicode)
  • Как только вы найдете его в файле дампа, отметьте весь раздел, содержащий весь ваш текст из блокнота
  • Скопируйте и вставьте его в «правильный» текстовый редактор (например, Notepad ++, не используйте MS notepad, потому что вы не сможете избавиться от специальных символов, как описано в следующем шаге)
  • После того, как вы вставили свой текст в текстовый редактор, обычно вы увидите «специальный символ» между каждым символом вашего исходного текста. Вы можете удалить всех, просто удалите его, используя функцию «заменить все» вашего текстового редактора (специальный символ может быть добавлено копирование и вставка).

Вуаля, вы восстановили данные ...

PS. Иногда необходимо выполнить дополнительную очистку, часть вашего текста может быть там два раза, один раз читаемая один раз, «наполовину читаемая». В этом случае просто удалите наполовину читаемую копию. Но она «всегда отличается», поэтому вы просто нужно проверить, так ли это с вашим текстом.

PPS. С HxD Hex Editor вы также можете напрямую обращаться к памяти, не сохраняя ее на диск. В меню «Дополнения» нажмите «Открыть память» (не забудьте снять флажок, который скрывает «нечитаемую» память, когда вы выбираете свою задачу)