Site Tools


software:win:dbg:savedata

Differences

This shows you the differences between two versions of the page.

Link to this comparison view

Both sides previous revisionPrevious revision
Next revision
Previous revision
software:win:dbg:savedata [2015/05/13 00:30]
root
software:win:dbg:savedata [2022/02/05 04:38] (current)
root
Line 1: Line 1:
 ====== Как вытащить не сохранённые данные из упавшего приложения Microsoft Windows ====== ====== Как вытащить не сохранённые данные из упавшего приложения Microsoft Windows ======
 Бывает что пишешь текст, бац и ошибка в программе или программа просто перестала отвечать, до того как отправил/сохранил.\\ Бывает что пишешь текст, бац и ошибка в программе или программа просто перестала отвечать, до того как отправил/сохранил.\\
-{{:ru:software:dbg:extract1.png|}}\\+{{:software:dbg:extract1.png|}}\\
 Набивать по новой - всегда мучение, особенно если не обладаешь исключительной памятью. Набивать по новой - всегда мучение, особенно если не обладаешь исключительной памятью.
 К счастью есть относительно простой способ вытащить свой текст.\\ К счастью есть относительно простой способ вытащить свой текст.\\
Line 16: Line 16:
  
 ===== Процедура извлечения ===== ===== Процедура извлечения =====
-1. Не закрываем приложение, пусть и дальше висит!\\ +==== 1. Не закрываем приложение, пусть и дальше висит! ==== 
-{{:ru:software:dbg:extract2.png|}}+{{:software:dbg:extract2.png|}}
  
-2. Подключаемся к приложению которое зависло/вылетело с помощью отладчика.\\+==== 2. Подключаемся к приложению с помощью отладчика ====
 Открываем **OllyDBG** и подключаемся к зависшему процессу: **File**, **Attach**\\ Открываем **OllyDBG** и подключаемся к зависшему процессу: **File**, **Attach**\\
 в столбике **name** ищем зависший процесс и нажимаем **Attach**.\\ в столбике **name** ищем зависший процесс и нажимаем **Attach**.\\
-{{:ru:software:dbg:extract3.png|}}+{{:software:dbg:extract3.png|}}
  
-3. Ищем нужный текст в памяти приложения.\\+==== 3. Ищем нужный текст в памяти приложения ====
 Меню - **Windows**, **2 Memory Map**.\\ Меню - **Windows**, **2 Memory Map**.\\
 В появившемся окне щёлкаем правой кнопкой мыши, в появившемся меню выбираем **Search**.\\ В появившемся окне щёлкаем правой кнопкой мыши, в появившемся меню выбираем **Search**.\\
 Появится окошко:\\ Появится окошко:\\
-{{:ru:software:dbg:extract4.png|}}\\+{{:software:dbg:extract4.png|}}\\
  
 В поле UNICODE вводим кусочек текста или цифры. Текст на русском у меня не искало. Хотя бы 3-4 символа, иначе будет много похожего.\\ В поле UNICODE вводим кусочек текста или цифры. Текст на русском у меня не искало. Хотя бы 3-4 символа, иначе будет много похожего.\\
  
-4. Вот что то найдено:\\ +==== 4. Работаем с тем что найдено ==== 
-{{:ru:software:dbg:extract5.png|}}\\+{{:software:dbg:extract5.png|}}\\
  
 Если это не то что искали, то закрываем окошко **Dump** с найденным текстом, и в окошке **Memory Map** щёлкаем правой кнопкой и выбираем **Search Next**.\\ Если это не то что искали, то закрываем окошко **Dump** с найденным текстом, и в окошке **Memory Map** щёлкаем правой кнопкой и выбираем **Search Next**.\\
 Если это то что мы искали, заветный текст то правой кнопкой, **Backup**, **Save data to file**.\\ Если это то что мы искали, заветный текст то правой кнопкой, **Backup**, **Save data to file**.\\
  
-5. Открываем сохранённый файл в Far / Notepad++, ищем текст из п 3.\\ +==== 5. Извлекаем сохранённый текст из дампа ==== 
-{{:ru:software:dbg:extract6.png|}}\\+Открываем сохранённый файл в Far / Notepad++, ищем текст из п 3.\\ 
 +{{:software:dbg:extract6.png|}}\\
  
 Перед поиском нужно убедится что Far/Notepad++ интерпретируют содержимое файла как UTF-16 Little endian. Перед поиском нужно убедится что Far/Notepad++ интерпретируют содержимое файла как UTF-16 Little endian.
Line 47: Line 48:
  
 ===== Ограничения / особенности ===== ===== Ограничения / особенности =====
-1. Может потребоваться SeDebugPrivelege для пользователя который запускает OllyDbg. Можно запустить от имени пользователя который такую привилегию имеет, например от админа.\\ +  - Может потребоваться SeDebugPrivelege для пользователя который запускает OllyDbg. Можно запустить от имени пользователя который такую привилегию имеет, например от админа.\\ 
-2. Я использовал OllyDbg х32, и приложения у меня были х32. Для зависшего х64 приложения может потребоваться х64 версия отладчика.\\ +  Я использовал OllyDbg х32, и приложения у меня были х32. Для зависшего х64 приложения может потребоваться х64 версия отладчика.\\ 
-3. Notepad++ не всегда может правильно опознать кодировку и/или переключится на другую.\\ +  Notepad++ не всегда может правильно опознать кодировку и/или переключится на другую.\\ 
-4. Если текст вводили в разные поля - скорее всего придётся повторять начиная с п3 до тех пор пока всё нужное не будет найдено и сохранено.\\ +  Если текст вводили в разные поля - скорее всего придётся повторять начиная с п3 до тех пор пока всё нужное не будет найдено и сохранено.\\ 
-5. Для текстовых редакторов типа Word метод может не сработать, тк их внутреннее представление текста может быть отличным от UTF-16 Little endian.\\ +  Для текстовых редакторов типа Word метод может не сработать, тк их внутреннее представление текста может быть отличным от UTF-16 Little endian.\\ 
-6. UTF-16 Little endian - для юникодных программ, для старых ANSI.\\ +  UTF-16 Little endian - для юникодных программ, для старых ANSI.\\ 
-7. В принципе можно за "вечер" написать утилиту которая будет сама всё делать, останется только выбрать процесс и какой фрагмент памяти и куда сохранить, просто случается не часто чтобы так автоматизировать.\\ +  В принципе можно за "вечер" написать утилиту которая будет сама всё делать, останется только выбрать процесс и какой фрагмент памяти и куда сохранить, просто случается не часто чтобы так автоматизировать.\\ 
-8. Возможно OllyDbg и сама умеет показывать текст, и даёт его скопировать, но я ей пользоваться не умею потому действовал "по старинке" через Far.\\ +  Возможно OllyDbg и сама умеет показывать текст, и даёт его скопировать, но я ей пользоваться не умею потому действовал "по старинке" через Far.\\ 
-9. Метод можно использовать против приложений которые не дают копировать текст, может повезти.\\+  Метод можно использовать против приложений которые не дают копировать текст, может повезти.\\
  
 ===== Реальный случай ===== ===== Реальный случай =====
 Вот как было в первый раз:\\ Вот как было в первый раз:\\
 Пока готовил еду, кто то из браузеров сожрал всю память, экслорер и опера вылетели, фаерфокс с недописанным комментарием повис (скорее всего тоже не смог выделить память, но более корректно обработал ошибку выделения).\\ Пока готовил еду, кто то из браузеров сожрал всю память, экслорер и опера вылетели, фаерфокс с недописанным комментарием повис (скорее всего тоже не смог выделить память, но более корректно обработал ошибку выделения).\\
-{{:ru:software:dbg:extract7.png|}}\\ +Вспомнить я смог только site-to-site.\\ 
-Вспомнить я смог только site-to-site.+{{:software:dbg:extract7.png|}}\\ 
 + 
 + 
 + 
 +{{tag>software howto windows debug}}
software/win/dbg/savedata.1431477036.txt.gz · Last modified: 2015/05/13 00:30 by root