Частина 15 - Дебагування Hello World

Для повного змісту змісту всіх уроків, будь ласка, натисніть нижче, оскільки це надасть вам короткий зміст кожного уроку, а також теми, які будуть розглянуті. https://github.com/mytechnotalent/Reverse-Engineering-Tutorial

Давайте переглянемо свій код з останньої тижня.

Давайте дебагуємо! GDB, який є GNU налагоджувач, який ми розіб'ємо на C++ бінарний файл і крок за кроком виведемо його лінійно в ARM збірці.

Це розборка ARM, яку ми бачимо. XMDX. Ніщо не зупиняється на цьому рівні незалежно від мови, яку ви використовуєте для програмування.

Цей матеріал може бути трохи страшним для вас, якщо ви не пройшли мої попередні курси з ARM збіркою. XMDX. Якщо вам потрібно зробити оновлення, будь ласка, посилання на цю серію. Вам, можливо, виникне питання, чому ми не дебагуємо з оригінального джерельного коду і бачимо, як він добре збігається з збіркою. XMDX. Відповідь полягає в тому, що коли ви професійно працюєте з відтворенням бінарників, ви не маєте змоги бачити джерельний код, коли ви відтворюєте бінарники.

Це дуже простий приклад, і далі ми продовжимо цю серію з дуже простими прикладами, щоб ви могли вивчити ефективні техніки. XMDX. Ми використовуємо текстовий дебагер, щоб ви повністю зрозуміли, що відбувається, і також отримали деяку підготовку, якщо ви коли-небудь повинні приєднатися до виконуваного процесу на іноземній машині, ви знатимете, як належним чином дебагувати або хакнути. XMDX. Я зосереджуся виключно на цьому методі, а не використовую приємний графічний дебагер, наприклад IDA або подібний, щоб ви могли маніпулювати на дуже низькому рівні. XMDX. Ми починаємо з завантаження регістру зв'язку в r11 і додаємо 4 до вказівника стека, а потім додаємо його до r11. XMDX. Це просто рутин, яка дозволяє бінарному файлу зберегти регістр зв'язку і встановити місце на стеку. XMDX. Ми помітили адресу пам'яті 0x10750, яка завантажується з пам'яті в регістр r1. XMDX. Давайте зробимо розборку рядків і побачимо, що знаходиться на цій адресі.

Виола! XMDX. Ми бачимо наш рядок. “Hello World!” розташований на цій адресі пам'яті. XMDX.

Давайте встановимо зупинку на main+16. <div class="slate-resizable-image-embed slate-image-embedresize-full-width"></div>

Давайте переглянемо значення регістрів.

Давайте тепер переглянемо вміст регістру r1 і крок за кроком виведемо бінарний файл.

Ми бачимо рядок “Hello World!” тепер знаходиться всередині регістру r1, який знаходиться на адресі пам'яті 0x10848. XMDX. Нарешті, давайте продовжимо виведення бінарного файлу.

Зрозуміло збірка і крок за кроком дебагування дозволяють вам мати повний і абсолютний контроль над будь-яким бінарним файлом! XMDX. Більші бінарні файли можуть призвести вас до годин, днів або тижнів, щоб повністю відтворити бінарник, але техніки залишаються тією ж самою, тільки більш тривалими. Реверс-інженерія — найскладніший вид аналізу в сучасній Комп'ютерній техніці. Є багато інструментів, які використовує професійний реверс-інженер, але кожен з цих інструментів має своє призначення та використання. Ця техніка є найскладнішою та найбільш повною. Наступна неділя ми потрапимо до теми Хакінґ Hello World.

results matching ""

    No results matching ""