Site Tools


software:win:dbg:savedata

Differences

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

Link to this comparison view

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