Reverse Engineering
Last updated
Reverse Engineering – bu tizim yoki dasturiy ta'minotni tahlil qilish, uni qanday ishlashini tushunish va uning ichki strukturasini ajratish jarayonidir. Reverse engineering (RE) asosan xavfsizlik tadqiqotlari, zararlanishlarni aniqlash, dasturning ishlash prinsiplarini o‘rganish va hatto dasturni tahrirlash maqsadida amalga oshiriladi.
Reverse engineering (RE) — bu dastur yoki tizimning ishlashini tushunish uchun uning manba kodi yoki ishlash mexanizmlarini tahlil qilish jarayoni. Bu, odatda, quyidagi maqsadlar uchun amalga oshiriladi:
Xavfsizlikni tekshirish – Potensial zaifliklarni yoki xatoliklarni topish.
Dastur tahlili – Dastur yoki tizimning qanday ishlashini tushunish.
Dastur tahriri – Dasturga yangi funksiyalar qo‘shish yoki mavjudlarini o‘zgartirish.
Maqsadli tizimni hujum qilish – Kiberxavfsizlikni o‘rganish, zaifliklarni aniqlash.
Reverse engineering ko‘plab sohalarda ishlatiladi, lekin eng ko‘p uchraydigan joylar quyidagilar:
Dasturiy ta'minot tahlili (masalan, Windows yoki Linux dasturlari)
Fizik apparatlar va qurilmalar tahlili (masalan, IoT qurilmalari)
Kiberxavfsizlik va viruslarni tahlil qilish
Patchelar va tahrirlar – dasturdagi zaifliklarni topish va ularga qarshi himoya choralarini ko‘rish.
Reverse engineeringni o‘rganish bir nechta qadamni talab qiladi. Bu qadamlar o‘rganiladigan platformalarga, dasturga va tahlil qilish maqsadlariga qarab farq qilishi mumkin, ammo umumiy qadamlar quyidagicha bo‘lishi mumkin:
1. Dasturiy Ta'minot Asoslarini O‘rganish
Asosiy Dasturlash Tillari:
C, C++ – bu tillar ko‘plab past darajali tizimlar va dasturlarda ishlatiladi, shuningdek, tahlil qilishda eng ko‘p uchraydigan tillardir.
Assembly – tizim va arxitektura bilan ishlashda eng past darajadagi til.
Python – avtomatlashtirilgan tahlil uchun juda mos, masalan, skriptlar yozish va ma'lumotlarni yig‘ish uchun.
O‘rganish Manbalari:
Kurslar: Coursera, Udemy, edX kabi platformalarda RE bo‘yicha kurslar.
Kitoblar: "Practical Reverse Engineering" (Bruce Dang) yoki "The Art of Software Security Assessment" (Mark Dowd) kabi kitoblar.
Reverse engineering uchun eng mashhur vositalar:
Ghidra
IDA Pro
OllyDbg
Radare2
x64dbg
Binary Ninja
Reverse engineeringni o‘rganishda tizimlar, apparatlar yoki fayllar o‘rtasidagi farqni tushunish muhimdir. Boshqa tizimlarni o‘rganish orqali tahlil qilishni o‘rganishingiz mumkin.
Binari fayllar, masalan, .exe
yoki .dll
fayllari, ko‘pincha reverse engineering uchun tahlil qilinadi. Bunday fayllarni tahlil qilishda quyidagi usullarni ishlatish mumkin:
Static Analysis: Dasturda hech qanday ishni bajarishdan oldin uning kodini va strukturasini tahlil qilish.
Dynamic Analysis: Dastur ishlayotganda uning xatti-harakatlarini va resurslar ustida qanday ishlashini tahlil qilish.
5. Buglarni va Zaifliklarni Qidirish
Tahlil qilish jarayonida kutilmagan natijalar va zaifliklar, masalan, buffer overflow yoki SQL injection kabi xatoliklarni topish mumkin.
6. Praktika
Har xil dasturlarni tahlil qilish, mashqlarni bajarish va amaliyotga o‘rganish kerak. Crackmes va CTF musobaqalarida qatnashish REni o‘rganishning samarali usulidir.
Ghidra – bu AQSh Milliy Xavfsizlik Agentligi (NSA) tomonidan ishlab chiqilgan bepul va ochiq manba (open-source) reverse engineering asbobidir. Ghidra dasturi binar fayllarni tahlil qilishda ishlatiladi va turli tizimlar va arxitekturalarni qo‘llab-quvvatlaydi. Ghidra ko‘plab tahlilchilar tomonidan yuqori sifatli asbob sifatida qadrlanadi.
Ghidra Xususiyatlari:
Multiplatform Qo‘llab-quvvatlash: Ghidra Windows, macOS va Linux tizimlarida ishlaydi.
Interfeys: Ghidra interaktiv grafik interfeysga ega, bu tahlilchilar uchun qulaylik yaratadi.
Xavfsizlik tahlili: Dastur xavfsizlikni tahlil qilish va reverse engineeringni osonlashtiradi.
Arxitekturalarni qo‘llab-quvvatlash: Ghidra turli arxitekturalarni qo‘llab-quvvatlaydi, masalan, x86, x64, ARM, MIPS, PowerPC, va boshqa ko‘plab arxitekturalar.
Decompilation: Ghidra asosan dekompilyatsiya (ya'ni, binar fayldan yuqori darajadagi tilga qaytarish) qilish imkoniyatiga ega.
Ghidra-ni qanday ishlatish kerak?
Ghidra-ni O‘rnatish:
Ghidra Java yordamida ishlaydi, shuning uchun Java Development Kit (JDK) o‘rnatilgan bo‘lishi kerak.
Dastur Faylini Ochish:
Ghidra-ni ishga tushurib, "File" -> "New Project" ni tanlang.
"Import File" bo‘limiga kirib, tahlil qilishni xohlagan binar faylni tanlang.
Faylni Tahlil Qilish:
Ghidra faylni tahlil qilishni boshlaydi va dasturdagi kodni qismlarga bo‘lib, har bir qismini tahlil qiladi.
Dasturda kutilmagan natijalar yoki xavfsizlik zaifliklarini aniqlash uchun turli xil modullarni ishlatishingiz mumkin.
Decompilation:
Ghidra o‘zining dekompilyatoridan foydalanib, yuqori darajadagi kodni (masalan, C yoki Java) yaratadi.
Bu sizga dasturdagi xatoliklarni yoki bug'larni topishda yordam beradi.
Ghidra Plaginlari:
Ghidra o‘zining plaginlar ekosistemasi bilan mashhur. Dasturda ko‘plab qo‘shimcha funksiyalarni va vositalarni o‘rnatish mumkin.
Ghidra bilan ishlashda Qo‘llaniladigan Vositalar:
Decompiler: Binarny faylni yuqori darajadagi dasturlash tiliga (masalan, C) aylantirish.
Disassembler: Assembler kodini dekodlash va inson tomonidan tushuniladigan formaga keltirish.
Symbol Table: Dasturdagi barcha ma'lumotlar va funksiyalarni saqlash.
Function Analysis: Dasturdagi funksiyalarni tahlil qilish va ular orasidagi bog‘lanishni aniqlash.
IDA Pro:
Eng mashhur reverse engineering vositalaridan biri. IDA Pro keng tarqalgan va ko‘plab reverse engineering mutaxassislari tomonidan ishlatiladi.
OllyDbg:
Windows uchun ishlatiladigan debugger va disassembler.
Radare2:
Bepul va ochiq manba vosita bo‘lib, reverse engineering uchun juda qulay.
x64dbg:
Windows uchun debuggere bo‘lib, x86 va x64 arxitekturalarini qo‘llab-quvvatlaydi.
Reverse engineeringni o‘rganish – bu murakkab, ammo juda foydali ko‘nikma. Agar siz kiberxavfsizlikni o‘rganayotgan bo‘lsangiz, REni o‘rganish sizga xavfsizlik zaifliklarini aniqlash, dasturlarning ichki ishlashini tushunish va hatto zararli dasturlarni aniqlash imkonini beradi. Ghidra kabi vositalar bu jarayonni osonlashtiradi va bepul bo‘lishi sizga keng imkoniyatlar yaratadi.
Ghidra-ni orqali yuklab olishingiz mumkin.