فرض کنید پلاگینی داریم که که کدهای دیکامپایل شده در IDA Pro رو بهش میدیم و این پلاگین برای ما توضیح میده که این کدها چه کاری انجام میدن.
در این پست میخواییم این پلاگین رو دانلود، نصب و استفاده کنیم. (اگه حوصله خوندن متن رو ندارید، مستقیم برید ویدیو رو ببینید)
مقدمه:
فرایند مهندسی معکوس (Reverse Engineering) یعنی رسیدن به یک درک و شناخت از یک سیستم، که در فرایند مهندسی تولید شده.
اگه این سیستم رو یک نرم افزار در نظر بگیریم، مهندسی معکوس نرم افزار (Software Reverse Engineering) یعنی رسیدن به یک درک و شناخت از نرم افزار. ما با این درک و شناخت میتونیم یک نرم افزار رو کرک کنیم، داخل این نرم افزار آسیب پذیری کشف و اونو اکسپلویت کنیم، میتونید بصورت کامل یا بخشی از این نرم افزار رو بازتولید کنیم و در نهایت اگه نرم افزار ما یک بدافزار باشه، میتونیم راههایی برای تشخیص و متوقف کردن اون بدست بیاریم.
مهندسی معکوس نرم افزار، یک فرایند چالش برانگیز هستش و سختی های خودش رو داره. معمولا برای اینکه بتونیم یک نرم افزار رو مهندسی معکوس کنیم، اونو به کمک ابزارهایی مانند دیس اسمبلرها و دیباگرها به کدهای اسمبلی تبدیل میکنیم و در ادامه روی این کدهای اسمبلی کار میکنیم.
معمولا اگه هدفمون آنالیز استاتیک باشه، یعنی برنامه رو بدون اجرا کردن، بخواییم آنالیز کنیم، از دیس اسمبلرهایی مانند IDA Pro و Ghidra استفاده میکنیم:
و اگه هدفمون آنالیز داینامیک باشه، یعنی برنامه رو اجرا کنیم، خط به خط جلو بریم و تاثیرش رو روی محیط و … ببینیم، معمولا از دیباگرهایی مانند x64dbg، WinDbg و HyperDbg استفاده میکنیم.
ابزارهایی مانند IDA Pro و Ghidra برای اینکه فرایند مهندسی معکوس رو ساده تر و سریعتر کنن از یک دیکامپایلر داخلی استفاده میکنن. از طریق این دیکامپایلر، کدهای اسمبلی به کدهای C تبدیل میشن. اینجوری ما به جای اینکه چند صد خط کد اسمبلی رو بررسی کنیم، چندین خط کد C رو بررسی میکنیم.
معرفی پلاگین AIDAPAL:
با اینکه فرایند دیکامپایل کردن، موجب ساده تر شدن فرایند مهندسی معکوس میشه، اما باز چالش های خودش رو داره. برای حل این چالش ها، میتونیم از هوش مصنوعی (Artificial intelligence) استفاده کنیم.
با پیشرفتهایی که در این سالهای اخیر هوش مصنوعی داشته، این امکان فراهم شده که همه ی مردم، حتی بدون داشتن دانش تخصصی، از این ابزارها و سرویس ها، بتونن استفاده کنن. میشه گفت که هوش مصنوعی هم داره کم کم، به بخش جدایی ناپذیر زندگی ما تبدیل میشه.
مهندسین معکوس نرم افزار هم از این بستری که هوش مصنوعی فراهم کرده، برای ساده تر کردن فرایند مهندسی معکوس استفاده میکنه و هر روز شاهد چنین پروژه هایی در کنفرانس های امنیت سایبری و شبکه های اجتماعی هستیم.
یکی از پروژه هایی که اخیرا به کمک هوش مصنوعی منجر به تسهیل فرایند مهندسی معکوس شده، پلاگین AIDAPAL هستش که برای IDA Pro توسعه داده شده.
کاری که این پلاگین انجام میده، اینه که کدهای دیکامپایل شده در IDA PRO رو میگیره و به شما میگه که این کدها چه کاری انجام میدن، همچنین خوندن کدهای دیکامپایل شده رو، برای شما ساده تر میکنه.
یکی از ویژگی هایی که این پلاگین داره اینه که مدل رو بصورت لوکال در اختیار شما قرار میده و شما میتونید بدون دغدغه و نگرانی از دید حریم خصوصی و … ، با این ابزار کار کنید. البته برای همین منظور هم نیاز به کانفیگ سخت افزاری نسبتا خوبی دارید.
در این ویدیوی آموزشی، این پلاگین رو در نسخه ی ویندوزی IDA Pro، دانلود و نصب و استفاده میکنیم.
بصورت کلی این ویدیو مطالب زیر رو پوشش میده:
- مقدمه
- تعریف فرایند مهندسی معکوس نرم افزار
- دیس اسمبل کردن برنامه در مهندسی معکوس
- استفاده از کدهای اسمبلی در آنالیز استاتیک و داینامیک
- چالش های بررسی کدهای اسمبلی در مهندسی معکوس
- دیکامپایل کردن برنامه در مهندسی معکوس
- چالش های بررسی کدهای دیکامپایل شده
- استفاده از هوش مصنوعی در مهندسی معکوس نرم افزار
- معرفی پلاگین AIDAPAL
- پیش نیاز اول: نصب IDA Pro
- بررسی کلی و فنی نحوه ی کار پلاگین AIDAPAL
- معرفی موارد مورد نیاز جهت دانلود
- دانلود راه ارتباطی با مدل و نمایش خروجی پلاگین
- دانلود Ollama بعنوان بستر استفاده از مدل
- دانلود مدل هوش مصنوعی
- مدل در هوش مصنوعی چیه؟
- دانلود ModelFile
- بررسی همه ی فایلهای دانلود شده
- قدم اول نصب: کپی فایلهای پایتونی
- نصب Ollama در ویندوز
- وارد کردن مدل به Ollama
- بررسی لیست مدلها در Ollama
- محل ذخیره مدل در Ollama
- فعال کردن پایتون در IDA Pro
- بررسی و انتخاب نسخه ی پایتون پیش فرض به کمک IDAPySwitch در IDA Pro
- بررسی نسخه ی پیش فرض پایتون به کمک ماژول پایتونی SYS در IDA Pro
- نصب ماژول پایتونی (requests) برای استفاده در IDA Pro
- نحوه ی استفاده از پلاگین AIDAPAL
- بررسی خروجی پلاگین AIDAPAL
- نحوه ی آموزش یک مدل LLM برای پروژه های امنیت سایبری
- استفاده از پلاگین AIDAPAL در سرور مجازی
- توجه به آسیب پذیری CVE-2024-37032
- توسعه ی ویژگی های پلاگین AIDAPAL
این ویدیو رو میتونید از طریق یوتیوب، مشاهده کنید.