###### tags: `module11` `revers` `disassemble` `tools` `x64dbg` [ToC] # Занятие 4. Отладка с помощью x64gdb ## Видеозапись урока {%youtube g_AJCsCWK7s %} ### timecodes 00:00:00 Ждем 00:11:30 что было, что будет. 00:14:15 Что такое x64dbg 00:19:00 Общая информация об окнах приложения 00:20:45 Параметры работы 00:31:10 Старт работы 00:36:45 Точки остановки 00:50:00 Перерыв 00:56:40 Поиск строк в коде 01:08:15 Декомпиляция 01:13:30 Стек вызовов 01:15:47 Изменение кода 01:19:44 Изменение регистров 01:21:20 Переименование 01:26:30 Карта памяти 01:33:30 Установка плагинов 01:36:00 Перерыв 01:47:45 Устанавливаем snowman 01:52:40 Отключаем антивирус и уведомления 02:01:40 Запускаем x64dbg и выполняем настройку 02:07:35 Открываем и дебажим by_hash 02:30:40 Перерыв 02:36:15 Разбираем creckme1 03:17:20 Домашка 03:21:50 Вопросы x64dbg развитие OllyDbg, но уже с поддержкой 64й архитектуры ## Параметры работы ![](https://i.imgur.com/ADGSApN.png) System breakpoint перехват функции, которая будет инициализировать анализируемое приложение TLS Callback стартует до main, инициализирует потоки приложения. Entry BP старт приложения можно поменять вид точки остановки, для обхода антиотладки ![](https://i.imgur.com/B45zCAr.png) отключаем exceptions ![](https://i.imgur.com/ZDvf8s5.png) ## Старт ![](https://i.imgur.com/uSqn3sH.png) ## Горячие клавиши отладки Интерфейс x64dbg • F9: запуск выполнения • F7: выполнение инструкции с заходом в функцию • F8: выполнение инструкции без захода в функцию • Ctrl+F9: выполнение до инструкции RET • Alt+F9: выполнение до пользовательского кода ## Точки останова • Программные - установка точки и приложения для отладки, злоумышленнику легче отследить такие точки остановки • На участок памяти - когда мы знаем что злоумышленник подготовил себе что-то в памяти, например, буфер, но мы не знаем когда он будет задействован. мы **можем отловить обращение к этому участку памяти** такие как чтение, запись, выполнение • Аппаратные можно отлавливать те или иные изменения в регистрах ![](https://i.imgur.com/FingJjX.png) На участок памяти ![](https://i.imgur.com/hXZTVhg.png) Окно точек останова ![](https://i.imgur.com/lAk0cv6.png) ## Поиск элементов ### Поиск строк в коде ![](https://i.imgur.com/c628rVG.png) ### Использование строки ![](https://i.imgur.com/e4YXyEI.png) ### Граф функции (HotKey G) ![](https://i.imgur.com/L6IBX4Y.png) ### Декомпилирование кода ![](https://i.imgur.com/1eDdJJV.png) ![](https://i.imgur.com/mW14MqO.png) декомпилирован кусок кода представленный на картинке выше (Граф функции) ![](https://i.imgur.com/qxT4Uyw.png) ### Стек вызовов ![](https://i.imgur.com/fGI6c4G.png) ### Изменение кода ![](https://i.imgur.com/eRWVpEi.png) ![](https://i.imgur.com/kteDRil.png) ![](https://i.imgur.com/5et4WFW.png) ### Изменение регистров ![](https://i.imgur.com/MudUNIf.png) ![](https://i.imgur.com/jV5ajUm.png) ![](https://i.imgur.com/PgMQiIe.png) ### Переименование ![](https://i.imgur.com/LFXRCRs.png) ![](https://i.imgur.com/JeNd2Z5.png) ![](https://i.imgur.com/6sLg8rN.png) ### Карта памяти ![](https://i.imgur.com/eF8r02p.png) большие участки памяти которые имеют сразу все доступы ERW должны вызывать у нас подозрение и требуют анализа. ### Установка плагинов https://github.com/x64dbg/snowman ## Практика пересмотреть