Частина 1 – Сенс життя Частина 2
Для повного змісту змісту всіх уроків, будь ласка, натисніть нижче, оскільки це надасть вам короткий зміст кожного уроку, а також теми, які будуть розглянуті. https://github.com/mytechnotalent/Reverse-Engineering-Tutorial
Вітаємо в навчальному курсі ARM реверс-інженерія. Це третій навчальний курс, який я зробив, який зосереджується на мові збірки та реверс-інженерія. Перший курс був про x86 збірку, а другий був про ARM збірку. Цей курс буде розширеним курсом на ARM, який зосереджується на ARM реверс-інженерія, тому ми працюватимемо з мовою збірки та C разом і здійснюватимемо відтворення в мові збірки, щоб ви отримали смак справжнього світу серії застосунків та те, як воно виглядає розібране. Ми не працюватимемо з графічними інструментами, такими як IDA Pro, оскільки працюватимемо з GDB в CLI shell. Ми не працюватимемо в традиційній лабораторній обстановці, де ми помістимо бінарний файл у відладник, а ми підключимося до ARM пристрою за допомогою SSH і фактично підключимося до виконуваного процесу (PID) і здійснимо відтворення процесу під час виконання. Перші 13 тижнів будуть точним переглядом курсу ARM збірки, оскільки дуже важливо знову розглянути ці концепції, щоб мати дуже міцну базу, коли прийде час відтворювати бінарні файли. Я хотів повернути оригінальний цитат перед тим, як розпочати... “Так, якщо я навчусь в університеті та вивчу Java, я зроблю мільйон доларів і буду мати гарні речі?”
Я відчував необхідність розпочати цей навчальний курс з подібної заяви. Це НЕ напад на Java, оскільки я вже використовував Java в розробці Android, Spring та JavaEE. У сучасному середовищі Agile швидка розробка реальність. З підвищеними викликами як у комерційному ринку, так і в державному секторі, розробка програмного забезпечення продовжуватиме зосереджуватися на більш міцних бібліотеках, які зроблять більше з меншого. React, Python, Java, C# та подібні продовжуватимуть зростати, а не зменшуватися, оскільки боротьба за виконання проекту збільшується з кожною секундою часу. Як вам сподобається чи ні, обладнання стає все меншим і меншим, а тенденція змінюється від CISC до RISC. CISC це ваше звичайне x86MDXX/XMDXcb8ee4417efcXMDXXMDX комп'ютер з складною серією інструкцій. CISC комп'ютери завжди існуватимуть, проте тенденція спрямована на хмарні обчислення та те, що RISC машини з зменшеною інструкційною множиною сьогодні такі надзвичайно потужні, вони є очевидним вибором для споживання. Скільки смартфонів ви думаєте існує на землі сьогодні? Більшість з них є RISC машинами. Скільки з вас мають розумний телевізор чи Amazon Echo чи будь-яку кількість пристроїв, що вважаються частиною IOT чи Інтернету речей? Кожен з цих пристроїв має одне спільне – вони є RISC і всі вони в основному засновані на XMDX. XMDX є високорозвиненим пристроєм RISC. У порівнянні з дуже складною архітектурою CISC, більшість сучасних XMDX систем є інтегрованими мікросхемами або системами на чипі, які мають усі компоненти комп'ютера та електронної системи на одному чипі. Ця інтеграція включає також функціональність радіочастотної техніки. Ці низьковольтні вбудовані пристрої можуть працювати під різними версіями Windows, Linux та багатьох інших високопродуктивних операційних систем. “Хто ще про XMDX цікавиться? Ви можете назвати його чим завгодно, я знаю Java і цього досить, щоб воно працювало всюди, тому мені не потрібно хвилюватися про щось під капотом.”
Я знову хочу зупинитися на цьому вислові на кілька секунд. З кожним днем, що проходить, більше і більше систем стають уразливими для атак та компрометування. Власне розуміння того, що відбувається під капотом, може тільки допомогти зменшити цю неприємну реальність. Ця серія буде присвячена XMDX. Ми працюватимемо з Raspberry Pi 3, який містить мікросхему Broadcom BCM2837 SoC з 4х XMDX Cortex-A53, 1,2 ГГц процесором та 1 ГБ оперативної пам'яті LPDDR2. Ми працюватимемо з операційною системою Raspbian Jessie, заснованою на Linux. Якщо ви не володієте Raspberry Pi 3, вони звичайно доступні за 35 доларів на Amazon або будь-якій іншій торговій мережі. Якщо ви бажаєте дізнатися більше, відвідайте XMDX. Ми працюватимемо виключно в терміналі, тому немає ніяких гарних зображень та графіків, оскільки ми дотримуємося дуже простої та мінімальної реалізації, використовуючи GNU-інструментарій для компіляції та відлагодження нашої бази коду.
Наступна неділя ми вийдемо на тему бінарної системи чисел та порівняємо її з десятковою та шістнадцятковою системами чисел, щоб мати належну базову структуру розуміння для подальшого руху.