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

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

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

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

radare2./0x06_asm64_double_primitive_datatype

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

aaa

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

ood

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

s main

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

v

При роботі з подвійними числами з плаваючою комою в ARM64 необхідно розуміти, що ми хочемо знайти місце виконання інструкції fmov, де ми беремо значення з нашого регістра w0 і переміщаємо його в регістр плаваючої коми d0. Тут відбувається справжня магія! Це дуже подібно до нашого числення з плаваючою комою, яке працює з s0.

Давайте встановимо зупинку прямо нижче інструкції fmov. Пам'ятайте, що адреси ASLR будуть відрізнятися від цього прикладу.

[0x556bf809b4]> db 0x556bf809c4
[0x556bf809b4]> dc
hit breakpoint at: 0x556bf809c4
[0x556bf809c4]> dr w0 0x33333333

Ми переміщаємо свій регістр w0 в d0, тому ми обов'язково повинні змінити ці значення в d0, які відрізняються від нашого числа з плаваючою комою. Ми розберемо це в наступному урокі.

Давайте продовжимо показувати нашу вартість.

[0x556bf809c4]> dc
10.1
(39979) Process exited with status=0x0
[0x7fa37da0fc]>

У наступному урокі ми змінимо цю вартість!

Хочу звернути увагу, що в українському тексті відсутні спеціальні символи, які були присутні в оригінальному тексті!

results matching ""

    No results matching ""