This shows you the differences between two versions of the page.
Both sides previous revisionPrevious revisionNext revision | Previous revisionLast revisionBoth sides next revision | ||
software:win:dbg:savedata [2015/05/13 00:30] – root | software:win:dbg:savedata [2022/02/04 18:59] – root | ||
---|---|---|---|
Line 1: | Line 1: | ||
====== Как вытащить не сохранённые данные из упавшего приложения Microsoft Windows ====== | ====== Как вытащить не сохранённые данные из упавшего приложения Microsoft Windows ====== | ||
Бывает что пишешь текст, бац и ошибка в программе или программа просто перестала отвечать, | Бывает что пишешь текст, бац и ошибка в программе или программа просто перестала отвечать, | ||
- | {{:ru: | + | {{: |
Набивать по новой - всегда мучение, | Набивать по новой - всегда мучение, | ||
К счастью есть относительно простой способ вытащить свой текст.\\ | К счастью есть относительно простой способ вытащить свой текст.\\ | ||
Line 16: | Line 16: | ||
===== Процедура извлечения ===== | ===== Процедура извлечения ===== | ||
- | 1. Не закрываем приложение, | + | ==== 1. Не закрываем приложение, |
- | {{:ru: | + | {{: |
- | 2. Подключаемся к приложению | + | ==== 2. Подключаемся к приложению с помощью отладчика |
Открываем **OllyDBG** и подключаемся к зависшему процессу: | Открываем **OllyDBG** и подключаемся к зависшему процессу: | ||
в столбике **name** ищем зависший процесс и нажимаем **Attach**.\\ | в столбике **name** ищем зависший процесс и нажимаем **Attach**.\\ | ||
- | {{:ru: | + | {{: |
- | 3. Ищем нужный текст в памяти приложения.\\ | + | ==== 3. Ищем нужный текст в памяти приложения |
Меню - **Windows**, | Меню - **Windows**, | ||
В появившемся окне щёлкаем правой кнопкой мыши, в появившемся меню выбираем **Search**.\\ | В появившемся окне щёлкаем правой кнопкой мыши, в появившемся меню выбираем **Search**.\\ | ||
Появится окошко: | Появится окошко: | ||
- | {{:ru: | + | {{: |
В поле UNICODE вводим кусочек текста или цифры. Текст на русском у меня не искало. Хотя бы 3-4 символа, | В поле UNICODE вводим кусочек текста или цифры. Текст на русском у меня не искало. Хотя бы 3-4 символа, | ||
- | 4. Вот что то найдено:\\ | + | ==== 4. Работаем с тем что найдено |
- | {{:ru: | + | {{: |
Если это не то что искали, | Если это не то что искали, | ||
Если это то что мы искали, | Если это то что мы искали, | ||
- | 5. Открываем сохранённый файл в Far / Notepad++, ищем текст из п 3.\\ | + | ==== 5. Извлекаем сохранённый текст из дампа ==== |
- | {{:ru: | + | Открываем сохранённый файл в Far / Notepad++, ищем текст из п 3.\\ |
+ | {{: | ||
Перед поиском нужно убедится что Far/ | Перед поиском нужно убедится что Far/ | ||
Line 47: | Line 48: | ||
===== Ограничения / особенности ===== | ===== Ограничения / особенности ===== | ||
- | 1. Может потребоваться SeDebugPrivelege для пользователя который запускает OllyDbg. Можно запустить от имени пользователя который такую привилегию имеет, например от админа.\\ | + | - Может потребоваться SeDebugPrivelege для пользователя который запускает OllyDbg. Можно запустить от имени пользователя который такую привилегию имеет, например от админа.\\ |
- | 2. Я использовал OllyDbg х32, и приложения у меня были х32. Для зависшего х64 приложения может потребоваться х64 версия отладчика.\\ | + | |
- | 3. Notepad++ не всегда может правильно опознать кодировку и/или переключится на другую.\\ | + | |
- | 4. Если текст вводили в разные поля - скорее всего придётся повторять начиная с п3 до тех пор пока всё нужное не будет найдено и сохранено.\\ | + | |
- | 5. Для текстовых редакторов типа Word метод может не сработать, | + | |
- | 6. UTF-16 Little endian - для юникодных программ, | + | |
- | 7. В принципе можно за " | + | |
- | 8. Возможно OllyDbg и сама умеет показывать текст, и даёт его скопировать, | + | |
- | 9. Метод можно использовать против приложений которые не дают копировать текст, может повезти.\\ | + | |
===== Реальный случай ===== | ===== Реальный случай ===== | ||
Вот как было в первый раз:\\ | Вот как было в первый раз:\\ | ||
Пока готовил еду, кто то из браузеров сожрал всю память, | Пока готовил еду, кто то из браузеров сожрал всю память, | ||
- | {{: | + | Вспомнить я смог только site-to-site.\\ |
- | Вспомнить я смог только site-to-site. | + | {{: |