Частина 7 - Дебагування базової програми I/O

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

Сьогодні ми будемо дебагувати нашу дуже базову програму перевірки входу з попереднього заняття.

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

radare2./0x02_asm_64_basicio

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

aaa

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

ood

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

s main

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

v

Нотатки щодо декількох речей ми бачимо 0x5566be00cc вивід "Enter Age: " і на 0x5566be017c call до istream який буде захоплювати значення з stdin до якого ми ідентифікуємо умову невдачі на 0x5566be01d0 де ми знаходимо "Dude be real!" і бачимо результати належної перевірки входу починаючи з 0x5566be0218 де ми кажемо "You are " і потім бачимо call до виходу в потік на 0x5566be0238 і потім продовження перевірки входу на 0x5566be0244 де ми кажемо " років, здається, все добре!".

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

q
VV
ppppp

Це наш розширений візуальний граф. Ми бачимо, як програма рухається від функції до функції. Ви помітите рядки тегів, такі як [ol] або [ok] і ви можете буквально ввести наступне:

p
ol

Тепер ми знаходимся всередині цієї функції.

Затем поверніться до головної програми.

qq
s main
VV

Це візуальний граф, який ми можемо використовувати для перегляду навколо за допомогою стрілок клавіатури.

Давайте встановимо зупинку на 0x5566be00c4 де ми bne 0x5566be0214 яке є місцем успішної програми нашої бінарної програми.

[0x5566be0194]> db 0x5566be00c4
[0x5566be0194]> dc
hit breakpoint at: 0x5566be00c4
Enter Age: 33
hit breakpoint at: 0x5566be00c4
[0x5566be0194]> dc
Your are 33 years old, seems legit!
(2215) Process exited with status=0x0

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

У наступному занятті ми навчимося хакувати перевірку входу.

results matching ""

    No results matching ""