32

Возможный дубликат:
Как восстановить информацию формы для веб-страницы в Firefox

Я набрал пару абзацев на доске обсуждений, но когда я нажал кнопку «Отправить», сайт проходил (не) плановое обслуживание, и кнопка «Назад» решила обновить страницу, отправив мои абзацы в забвение.

Быстрый поиск в сети показал, что Lazarus обеспечивает восстановление формы для Firefox. Однако для установки плагина требуется перезапуск Firefox, и даже после перезапуска Firefox (что я еще не сделал) Lazarus не может восстановить формы, для которых он еще не создал резервную копию.

Теперь, когда лошадь вышла из сарая, я хочу сделать невозможное: восстановить часть или весь набранный текст без перезагрузки браузера.


Изменить: я должен уточнить. Lazarus - это прекрасное решение для предотвращения потери данных в будущем . Этот вопрос для людей, которые уже отошли от своей формы и потеряли ее содержание, но надеются, что есть какой-то способ спасти ситуацию. Мое решение состояло в том, чтобы получить дамп ядра процесса и выполнить его через grep, но для этого может быть непрофессиональный способ (например, каким-то образом заставить Firefox загрузить кэшированную версию предыдущей страницы). Таким образом, решения, которые только решают проблему в будущем, не обращаясь к настоящему, являются неуместными в этом вопросе.

2 ответа2

56

Не перезагружайте браузер и не нажимайте кнопку «Назад»!

В Linux:

Это решение ударил или пропустил, и работает на Linux. Вкратце: выгрузите память процесса Firefox и найдите в нем фрагменты вашего текста. Это некрасиво, но это ваше последнее средство.

Во-первых, создайте дамп ядра с помощью утилиты gcore , для которой требуется установить gdb (отладчик GNU):

$ ps -e | grep firefox
 7089 ?        00:02:23 firefox
$ gcore 7089
[New Thread 0xa8ffeb70 (LWP 8924)]
[New Thread 0xb25feb70 (LWP 8531)]
[New Thread 0x9d7feb70 (LWP 8527)]
... snip ...
[New Thread 0xb5ffeb70 (LWP 7099)]
[New Thread 0xb67ffb70 (LWP 7098)]
[New Thread 0xb72f8b70 (LWP 7097)]
Saved corefile core.7089

Обратите внимание, что дамп ядра может занимать несколько сотен мегабайт дискового пространства.

Если это удалось, теперь вы можете вздохнуть с облегчением. Если ваш текст случайно задержался в памяти, он был записан в дамп памяти.

Теперь попробуйте запомнить фразу из вашего эссе (например, "глубокий эффект") и используйте grep чтобы увидеть, присутствует ли она в документе:

$ grep 'a profound effect' core.7089 
Binary file core.7089 matches

Если вы получили «Двоичный файл ... совпадения», хорошо, оно есть! Если нет, попробуйте больше фраз. Если все ваши попытки grep приводят к пустым выводам, то ваше эссе, вероятно, исчезло навсегда, и вы ничего не можете с этим поделать. (Вы можете попробовать grep -R 'a profound effect' ~/.mozilla , но я сомневаюсь, что это сработает)

Предполагая, что вы получите совпадение, следующая задача будет вырезать кусочки основного дампа, содержащего текст, который вы ищете, и использовать less чтобы просмотреть его визуально:

$ grep -B 20 -A 20 -a 'a profound effect' core.7089 > /tmp/out
$ less /tmp/out

(Вы можете пропустить первую строку и просто сказать less core.7089 но я обнаружил , что less , как правило, взрывают в использовании памяти при поиске через такой большой двоичный файл.)

Теперь введите /a profound effect , нажмите ввод, ожидание и страницу вниз, пока не увидите что-то узнаваемое:

альтернативный текст

Бам! Если вам не нравится этот результат, посмотрите, есть ли другие, набрав 'n'. Кроме того, не забудьте вычитать мусор, чтобы не оставлять сообщения:

мой ум будет часто генерировать идеи, выраженные на этом языке.

Я полагаю, что это забито так, потому что память, содержащая ваши фрагменты эссе, больше не выделяется и вытесняется последующими выделениями.

В Windows:

Процедура такая же. Во-первых, создайте дамп ядра Firefox. Это можно сделать в диспетчере задач. На английском языке пункт меню « Создать файл дампа».

Сброс ядра Firefox

Сброс занимает несколько секунд.

Место основной свалки

Затем используйте шестнадцатеричный редактор, например http://mh-nexus.de/en/hxd/, чтобы открыть дамп и найти потерянный текст.

HxD для поиска дампа

1

Первое - формы обычно не кэшируются. Итак, все, что вы отправили, отправляется на сайт, и если оно было удалено, то все готово; Вы должны повторно напечатать это.

Lazarus использует базу данных SQLite для хранения данных формы (конечно, только после ее установки).

PS: дамп памяти - это милая попытка сделать все необходимое, однако мне интересно, есть ли в этом преимущество, связанное с затратами на усилия (это было бы более полезно в качестве метода шпионского / вредоносного ПО - не обижайтесь на Joey здесь),

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .