Частина 6 - Дебагування char

Сьогодні ми дебагуємо програму char. Давайте переглянемо код.

ХМДХ

#include <stdio.h>

include "pico/stdlib.h"

XMDX27c006cc56b1XMDX main()  {   stdio_init_all();

  while(1)    {     char x = 'x';              XMDXf86a742b2f82XMDX("%c ", x);

    sleep_ms(1000);   }            return 0; } </pre>ХМДХ

Давайте запустимо наш дебагер.

ХМДХ

XMDX62b186897c90XMDX -w XMDX27c475ab84b0XMDX -b 16 0x03_char.XMDX58f4224c1872XMDX
ХМДХ

Давайте зробимо автоматичний аналіз.

ХМДХ

aaaa
ХМДХ

Давайте перейдемо до головної частини програми.

ХМДХ

s main
ХМДХ

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

ХМДХ</XMDX07c1fb0c54aaXMDX>ХМДХ

Ми починаємо встановлювати значення повернення головної частини програми.

ХМДХ

push {r4, lr}
ХМДХ

Ми викликаємо стандартну ініціалізацію I/O.

ХМДХ

XMDXd52fb0592f8cXMDX sym.stdio_init_all
ХМДХ

Далі ми завантажуємо форматний модифікатор %c в r4.

ХМДХ

ldr r4, [0x0000033c]
ХМДХ

Ми можемо перевірити його.

ХМДХ

:> psz @ [0x0000033c]
%c
ХМДХ

Далі ми завантажуємо символ char 'x' в r1.

ХМДХ

movs r1, 0x78
ХМДХ

ХМДХhttps://www.asciitable.comХМДХ

Ви можете перевірити на сайті, що 0x78 в шістнадцятковій системі є 'x'.

Далі ми переміщаємо форматний модифікатор в r0.

ХМДХ

movs r0, r4 
ХМДХ

Далі ми здійснюємо стрибок на велику відстань до обгортки printf і виконуємо її.

ХМДХ

XMDX665cb8fe8415XMDX sym.__wrap_printf

</pre>ХМДХ

Далі ми переміщаємо 250 у десятичній системі або 0xfa в шістнадцятковій системі в r0.

ХМДХ

movs r0, 0xfa
ХМДХ

Далі ми переміщаємо 250 у десятичній системі, яке ми знаємо, що після логічного зміщення вліво двічі буде 1,000 у десятичній системі або 0xfa в шістнадцятковій системі в r0.

ХМДХ

lsls r0, r0, 2
ХМДХ

Далі ми викликаємо функцію sleep_ms.

ХМДХ

XMDX67187dbd89d6XMDX sym.sleep_ms
ХМДХ

Далі ми продовжуємо цикл while нескінченно.

ХМДХ

b 0x328
ХМДХ

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

results matching ""

    No results matching ""