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