Частина 35 - x64 C++ 2 Дебаг [Part 2]

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

Давайте переглянемо свій код:

Компілюємо:

Запускаємо:

За останні роки я використовував GDB як основний дебагер. Причина полягає в тому, що він знаходиться на кожному системі Linux, яка працює майже кожен IoT і сервер у світі. Крім того, існують версії для Windows.

Я дуже важко працював над цим, але вирішив представити ще один термінальний дебагер під назвою Radare 2. Причина, чому я дуже люблю Radare 2, полягає в тому, що він ще й сьогодні термінальний, але більш міцний за своїм набором функцій. Якщо ви працюєте з віртуальною машиною Kali Linux, як я роблю тут, ви можете просто виконати нижче.

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

Ось багато чого відбувається тут. Давайте розберемо це. Спочатку відкриємо Radare 2 в режимі запису, натиснувши клавішу 'r2 -w./1' і потім використаємо команду 'aaa' для аналізу байнері. Потім ми використовуємо команду 's sym.main' для звернення до головної частини байнері, яка є нашим вхідним точкою. Потім ми виконувємо команду 'pdf' для розбору байнері.

Ми бачимо, що називають прологом, де ми підкидаємо rbp вказівник стека на стік. Потім ми переміщаємо rsp в rbp для збереження та потім ми резервуємо 0x10 шістнадцяткові байти або 16 десяткові байти на стік, щоб звільнити місце для нашої рядка.

Якщо ніщо з цього не має сенсу, будь ласка, поверніться до початку навчальної серії, щоб переглянути основи збірки та регістрів, оскільки це КРИТИЧНО важливо, щоб ви зрозуміли це, перш ніж продовжувати далі.

Ми дуже добре бачимо qword 'Hello World\n' на адресі пам'яті 0x2005 і потім бачимо нашу бібліотеку C++ call для виведення потоку, який є cout для виведення нашої рядки в термінал.

Давайте розглянемо 0x2005 для підтвердження того, що наша рядка знаходиться в цьому місці:

Наступна неділя ми змінимо значення та змінимо байнері. Я дуже рекомендую вам встановити VirtualBox, яке є вільним, та отримати образ віртуальної машини Kali Linux та встановити Vim також.

Є навчальні матеріали щодо всього цього в моїй попередній серії. Підтримуйте мене наступної неділі!

Дякую за увагу!

results matching ""

    No results matching ""