This shows you the differences between two versions of the page.
Both sides previous revisionPrevious revisionNext revision | Previous revision | ||
software:win:dbg:savedata [2022/02/04 18:32] – removed - external edit (Unknown date) 127.0.0.1 | software:win:dbg:savedata [2022/02/05 04:38] (current) – root | ||
---|---|---|---|
Line 1: | Line 1: | ||
+ | ====== Как вытащить не сохранённые данные из упавшего приложения Microsoft Windows ====== | ||
+ | Бывает что пишешь текст, бац и ошибка в программе или программа просто перестала отвечать, | ||
+ | {{: | ||
+ | Набивать по новой - всегда мучение, | ||
+ | К счастью есть относительно простой способ вытащить свой текст.\\ | ||
+ | **Замечание** | ||
+ | DNSLookup.exe - моё приложение, | ||
+ | Размер текста для извлечения тоже не ограничен, | ||
+ | |||
+ | ===== Инструменты ===== | ||
+ | Для вытаскивания текста потребуется OllyDBG и Far или Notepad++.\\ | ||
+ | Особых навыков не требуется, | ||
+ | Сам я сегодня впервые это сделал, | ||
+ | Искушённых в отладке людей прошу не ругаться, | ||
+ | |||
+ | ===== Процедура извлечения ===== | ||
+ | ==== 1. Не закрываем приложение, | ||
+ | {{: | ||
+ | |||
+ | ==== 2. Подключаемся к приложению с помощью отладчика ==== | ||
+ | Открываем **OllyDBG** и подключаемся к зависшему процессу: | ||
+ | в столбике **name** ищем зависший процесс и нажимаем **Attach**.\\ | ||
+ | {{: | ||
+ | |||
+ | ==== 3. Ищем нужный текст в памяти приложения ==== | ||
+ | Меню - **Windows**, | ||
+ | В появившемся окне щёлкаем правой кнопкой мыши, в появившемся меню выбираем **Search**.\\ | ||
+ | Появится окошко: | ||
+ | {{: | ||
+ | |||
+ | В поле UNICODE вводим кусочек текста или цифры. Текст на русском у меня не искало. Хотя бы 3-4 символа, | ||
+ | |||
+ | ==== 4. Работаем с тем что найдено ==== | ||
+ | {{: | ||
+ | |||
+ | Если это не то что искали, | ||
+ | Если это то что мы искали, | ||
+ | |||
+ | ==== 5. Извлекаем сохранённый текст из дампа ==== | ||
+ | Открываем сохранённый файл в Far / Notepad++, ищем текст из п 3.\\ | ||
+ | {{: | ||
+ | |||
+ | Перед поиском нужно убедится что Far/ | ||
+ | (Shift + F8 в Far в режиме просмотра).\\ | ||
+ | |||
+ | Остаётся только выделить найденное и скопировать в более удобное место.\\ | ||
+ | |||
+ | ===== Ограничения / особенности ===== | ||
+ | - Может потребоваться SeDebugPrivelege для пользователя который запускает OllyDbg. Можно запустить от имени пользователя который такую привилегию имеет, например от админа.\\ | ||
+ | - Я использовал OllyDbg х32, и приложения у меня были х32. Для зависшего х64 приложения может потребоваться х64 версия отладчика.\\ | ||
+ | - Notepad++ не всегда может правильно опознать кодировку и/или переключится на другую.\\ | ||
+ | - Если текст вводили в разные поля - скорее всего придётся повторять начиная с п3 до тех пор пока всё нужное не будет найдено и сохранено.\\ | ||
+ | - Для текстовых редакторов типа Word метод может не сработать, | ||
+ | - UTF-16 Little endian - для юникодных программ, | ||
+ | - В принципе можно за " | ||
+ | - Возможно OllyDbg и сама умеет показывать текст, и даёт его скопировать, | ||
+ | - Метод можно использовать против приложений которые не дают копировать текст, может повезти.\\ | ||
+ | |||
+ | ===== Реальный случай ===== | ||
+ | Вот как было в первый раз:\\ | ||
+ | Пока готовил еду, кто то из браузеров сожрал всю память, | ||
+ | Вспомнить я смог только site-to-site.\\ | ||
+ | {{: | ||
+ | |||
+ | |||
+ | |||
+ | {{tag> |