Частина 1 - Чому, Як...

2021 рік і знову ми починаємо новий курс зворотнього інжинірингу. Цей курс буде присвячений програмуванню мовою C, яку ми статично зворотньо розшифруємо скомпільований ARM 32 elf бінарний файл за допомогою Radare2 дебагера на мікроконтролері Raspberry Pi Pico.

Що таке мікроконтролери? Їх можна знайти в транспортних засобах, роботах, офісних машинах, медичних приладах, мобільних радіотрансиверах, автоматидах і домашніх приладах тощо. Вони призначені для управління малими функціями більшого компонента, без складної передньої частини операційної системи.

Ми будемо писати дуже прості програми мовою C і потім зворотньо розшифрувати їх один за одним мовою ARM 32 збірки.

Я припущу, що ви працюєте з дистрибутивом Ubuntu Linux...

Вам спочатку потрібно мати Raspberry Pi Pico.

Вам потрібно мати репозиторій Radare2.

git clone https://github.com/radareorg/radare2.git
cd radare2
cd radare2 sys/install.sh

Ви ЗАВЖДИ повинні будувати з джерела! Версії, що пакуються в Ubuntu і Kali Linux, старіші і не мають необхідних функцій для нашого рівня зворотнього інжинірингу.

Вам потрібно мати VIM.

sudo apt install vim

Вам потрібно оновити файл.vimrc file.

vim ~/.vimrc

А потім...

set number
set tabstop=2    
set shiftwidth=2
set expandtab 
syntax on
set syntax=c 

Вам потрібно мати репозиторій Raspberry Pi Pico.

mkdir pico
cd pico
git clone -b master https://github.com/raspberrypi/pico-sdk.git
cd pico-sdk
git submodule update --init
cd..
git clone -b master https://github.com/raspberrypi/pico-examples.git
sudo apt update
sudo apt install cmake gcc-arm-none-eabi libnewlib-arm-none-eabi build-essential 

Давайте побудуємо програму "блискавка".

cd pico-examples
mkdir build
cd build
export PICO_SDK_PATH=../../pico-sdk
cmake..
cd blink
make

Копіюйте файл blink.uf2 в свій Pico.

Вітаємо, ви got написали блискучу програму мовою C!

У наступному урокі ми створимо просту програму "Привіт, Світ!".

results matching ""

    No results matching ""