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 revisionBoth sides next revision
software:win:dbg:savedata [2015/05/13 00:34]
– [2. Подключаемся к приложению которое зависло/вылетело с помощью отладчика] root
software:win:dbg:savedata [2022/02/04 18:32]
– removed - external edit (Unknown date) 127.0.0.1
Line 1: Line 1:
-====== Как вытащить не сохранённые данные из упавшего приложения Microsoft Windows ====== 
-Бывает что пишешь текст, бац и ошибка в программе или программа просто перестала отвечать, до того как отправил/сохранил.\\ 
-{{:ru:software:dbg:extract1.png|}}\\ 
-Набивать по новой - всегда мучение, особенно если не обладаешь исключительной памятью. 
-К счастью есть относительно простой способ вытащить свой текст.\\ 
- 
-**Замечание** 
-DNSLookup.exe - моё приложение, пришлось специально его модифицировать чтобы вылетал при нажатии кнопки test.\\ 
-Размер текста для извлечения тоже не ограничен, в этом примере всего одно слово только как демонстрация техники.\\ 
- 
-===== Инструменты ===== 
-Для вытаскивания текста потребуется OllyDBG и Far или Notepad++.\\ 
-Особых навыков не требуется, достаточно быть уверенным пользователем.\\ 
-Сам я сегодня впервые это сделал, обычно отлаживаю только свои проги.\\ 
-Искушённых в отладке людей прошу не ругаться, метода описана доступным языком.\\ 
- 
-===== Процедура извлечения ===== 
-==== 1. Не закрываем приложение, пусть и дальше висит! ==== 
-{{:ru:software:dbg:extract2.png|}} 
- 
-==== 2. Подключаемся к приложению с помощью отладчика ==== 
-Открываем **OllyDBG** и подключаемся к зависшему процессу: **File**, **Attach**\\ 
-в столбике **name** ищем зависший процесс и нажимаем **Attach**.\\ 
-{{:ru:software:dbg:extract3.png|}} 
- 
-==== 3. Ищем нужный текст в памяти приложения ==== 
-Меню - **Windows**, **2 Memory Map**.\\ 
-В появившемся окне щёлкаем правой кнопкой мыши, в появившемся меню выбираем **Search**.\\ 
-Появится окошко:\\ 
-{{:ru:software:dbg:extract4.png|}}\\ 
- 
-В поле UNICODE вводим кусочек текста или цифры. Текст на русском у меня не искало. Хотя бы 3-4 символа, иначе будет много похожего.\\ 
- 
-==== 4. Работаем с тем что найдено ==== 
-{{:ru:software:dbg:extract5.png|}}\\ 
- 
-Если это не то что искали, то закрываем окошко **Dump** с найденным текстом, и в окошке **Memory Map** щёлкаем правой кнопкой и выбираем **Search Next**.\\ 
-Если это то что мы искали, заветный текст то правой кнопкой, **Backup**, **Save data to file**.\\ 
- 
-==== 5. Извлекаем сохранённый текст из дампа ==== 
-Открываем сохранённый файл в Far / Notepad++, ищем текст из п 3.\\ 
-{{:ru:software:dbg:extract6.png|}}\\ 
- 
-Перед поиском нужно убедится что 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.\\ 
-  - Метод можно использовать против приложений которые не дают копировать текст, может повезти.\\ 
- 
-===== Реальный случай ===== 
-Вот как было в первый раз:\\ 
-Пока готовил еду, кто то из браузеров сожрал всю память, экслорер и опера вылетели, фаерфокс с недописанным комментарием повис (скорее всего тоже не смог выделить память, но более корректно обработал ошибку выделения).\\ 
-Вспомнить я смог только site-to-site.\\ 
-{{:ru:software:dbg:extract7.png|}}\\ 
  
software/win/dbg/savedata.txt · Last modified: 2022/02/05 04:38 by root