Частина 37 – Хакінг оператора SizeOf

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

Давайте знову переглянемо наш код.

Ми створюємо змінну myNumber = 16 до якої створюємо ще одну змінну myNumberSize яка зберігає значення розміру myNumber. Ми бачимо, що коли ми виконувємо наш код, воно показує 4, тому ми бачимо, що оператор SizeOf вказує, що ціле число має ширину 4 байти.

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

Давайте зупинимося на main+20 оскільки ми бачимо значення 4 яке переміщується в r3.

Давайте розглянемо, що відбувається на main+16 оскільки ми бачимо, що зберігаємо значення в $r11-8 that which exists in r3 which in our case is 16. This makes sense as when we examine our original code the value of myNumber was in fact 16. We can see this here when we examine the value inside $r11-8.

Як ми бачимо вище, значення всередині $r11-12 є 4 оскільки воно представляє значення, яке повертає SizeOf як ціле число 16 насправді має ширину 4 байти.

Останнім часом коли ми продовжимо виконання, насправді побачимо значення 4 відображене в терміналі.

Давайте хакнемо!

Ми запускаємо і зупиняємося на main+28.

Ми бачимо значення в r3 є 4 яке очікується.

Ми зупиняємося на main+36.

Ми бачимо значення в r1 є 4 яке повинно бути логічно зрозумілим оскільки значення було збережено з r3 в r11-12 і потім знову в r1.

Давайте хакнемо значення в r1!

Успіх! Ми здійснили хакінг машини!

Наступна неділя ми вийдемо в оператор Pre-Increment.

results matching ""

    No results matching ""