✅ چالش مهندسی معکوس CrackMe-v7
مهندسی معکوس فرایندی است که در آن عملکرد، ساختار یا رفتار یک نرمافزار یا سیستم را بدون دسترسی به کد منبع آن تحلیل و بازسازی میکنیم. هدف میتواند کشف منطق داخلی، درک پروتکلها، بازیابی الگوریتمها یا یافتن نقاط ضعف امنیتی باشد. دو رویکرد کلی در مهندسی معکوس و آنالیز برنامه وجود دارد:
🔹 تحلیل استاتیک: مطالعهٔ باینری و دادههای درون فایل بدون اجرای آن (مثلاً با دکامپلر، disassembler، خواندن بخشهای داده و نمادها). مناسب برای یافتن ساختارها، توابع و رشتهها.
🔹 تحلیل داینامیک: اجرای برنامه در محیط کنترلشده و دنبالکردن رفتار در زمان اجرا (دیباگر، tracing، مانیتورینگ syscalls). مناسب برای دیدن مقدارهای واقعی، مسیرهای اجرا و اثرات جانبی.
کاربردهای مهندسی معکوس در امنیت و حوزههای مرتبط عبارتند از:
✔️ کشف آسیبپذیریها (Vulnerability Research): تحلیل باینریها برای پیدا کردن باگها و اکسپلویتهای احتمالی.
✔️ تحلیل بدافزار (Malware Analysis): بررسی رفتار برنامههای مخرب، شناسایی تروجانها، و توسعهٔ راهکارهای مقابله.
✔️ تضمین کیفیت و سازگاری (Interoperability): درک پروتکلها یا فرمتهای اختصاصی برای ایجاد نرمافزارهای سازگار.
✔️ بازبینی لایسنس و رعایت قوانین (License Auditing): بررسی مکانیزمهای لایسنس و تضمین اینکه نرمافزار مطابق سیاستها رفتار میکند.
✔️ جرایم و دیجیتال فورنزیک (Forensics): بازیابی شواهد و تحلیل رفتار برنامهها پس از حادثهٔ امنیتی.
در این چالش یک فایل اجرایی به نام Unlock در اختیار شماست. برنامه از شما ورودی میگیرد و اگر ورودی درست باشد پیام موفقیت نمایش میدهد. هدف شما این است که ورودی درست (فلگ) را پیدا کنید.
این فایل برای لینوکس ۶۴ بیت ساخته شده است. اگر ویندوز هستید، از WSL یا ماشین مجازی لینوکس استفاده کنید.
راهنماییها (Hints)
داخل باینری به دنبال دادههای ثابت (constant) بگردید.
الگوریتم خیلی ساده است: یک کلید چندبایتی که تکرار میشود (repeating key).