Частина 10 - Дебагування примітивного типу даних символу

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

Сьогодні ми будемо дебагувати дуже простий примітивний тип даних символу.

Для початку відкрийте нашу бінарну у Radare2.

radare2./0x03_asm64_char_primitive_datatype

Давайте скористаємося функцією автоматичної аналізу Radare2.

aaa

Наступним логічним кроком буде запуск програми в режимі дебагування, щоб вона відображала на диску вихідний машинний код в робочий процес.

ood

Тепер, коли у нас є робочий екземпляр, ми можемо звернутися до головної точки входу бінарного файлу.

s main

Давайте зробимо початкову експертизу, виконавши наступні дії.

v

Ми бачимо, що на 0x5576bff9ec ми переміщаємо 0x63 або ascii 'c' в регістр w0. Пам'ятайте, що ваш адрес буде різним через ASLR.

Давайте встановимо зупинку на 0x5576bff9ec і перевіримо вміст.

[0x5576bff9e4]> db 0x5576bff9ec
[0x5576bff9e4]> dc
hit breakpoint at: 0x5576bff9ec
[0x5576bff9ec]> dr w0 0x00000001
[0x5576bff9ec]> ds
[0x5576bff9ec]> dr w0 0x00000063
[0x5576bff9ec]>

Це дуже простий крок, але давайте розберемо його. Ми встановили зупинку і продовжили виконання. Ми переглянули вміст регістру w0 і побачили, що значення становить 0x01.

Далі ми зробили крок вперед і знову переглянули вміст регістру w0 і побачили, що 0x63 був успішно переміщений в регістр w0, оскільки тепер ми бачимо, що він містить 0x63.

Якщо ми зробимо ще один крок вперед, ми побачимо, що воно відображається в stdout, як очікувалося.

[0x5576bff9ec]> dc
c
(10845) Process exited with status=0x0
[0x7f9727503c]>

У наступному урокі ми змінимо символ на іншу значення своєї вибору.

results matching ""

    No results matching ""