مهندسی معکوس نرم افزار حتی با تمام قابلیتهایی که ابزارهای مهندسی معکوس ارائه میدن، میتونه یک کار پیچیده باشه. برای همین منظور، اغلب ابزارها، قابلیت هایی مانند اسکریپت نویسی یا پلاگین رو ارائه میدن، تا افراد بسته به نیاز خودشون، این ابزارهارو توسعه بدن.
یکی از ابزارهایی که اغلب در مهندسی معکوس نرم افزار مورد استفاده قرار میگیره و این ویژگی های توسعه رو در اختیار محققین امنیتی قرار میده، IDA از شرکت Hex-Rays هستش.
این شرکت، برای ایجاد نوآوری در جامعهی IDA، هر ساله مسابقه ای با عنوان IDA Plugin Contest، برگراز میکنه تا خلاقانه ترین، مفیدترین و از نظر فنی چشمگیرترین پلاگینهای ساخته شده برای IDA یا Decompiler اون رو معرفی کنه. برای مثال برندگان سال پیش این مسابقه رو میتونید از این لینک مشاهده کنید.
هدف کلی این مسابقه اینِ که، کاربران چطوری امکانات IDA رو گسترش میدن تا اونو با جریان کاری خودشون تطبیق بدن، وظایف تکراری رو خودکار کنن و قابلیتهای جدیدی به اون اضافه کنن.
برای شرکت در این مسابقه پلاگین نویسی، موضوعات زیر بیشتر مورد توجه هستش، اما محدود به این موارد هم نیست:
- خودکارسازی (Automate): انجام وظایف تحلیل تکراری یا زمان بر
- بهبود (Enhance): در زمینه ی بصری سازی، ناوبری (navigation)، یا همکاری تیمی (collaboration)
- ادغام (Integrate): ادغام IDA با ابزارها، زبانها یا اکوسیستمهای دیگه
- پشتیبانی: افزودن پشتیبانی از معماریها، پردازنده ها یا فرمتهای جدید
- شیوه استفاده: استفاده از هوش مصنوعی یا تکنیکهای پیشرفته برای تحلیل هوشمندتر
زمان بندی مسابقه:
مهلت ارسال آثار از ۱۵ اکتبر ۲۰۲۵ (۲۳ مهر ۱۴۰۴) تا ۱۵ ژانویه ۲۰۲۶ (۲۵ دی ۱۴۰۴) هستش و برندگان در ۲۴ مارس ۲۰۲۶ (4 فروردین ۱۴۰۵) اعلام میشن.
جوایز مسابقه:
- مقام اول:
- 5000 دلار جایزه نقدی
- یک بلیت شرکت در کنفرانسی که Hex-Rays اسپانسرش هستش.
- یک لایسنس IDA Pro Expert-2 رایگان (برای ارتقا یا تمدید) *
- مقام دوم:
- 2500 دلار جایزه نقدی
- یک لایسنس IDA Pro Expert-2 رایگان (برای ارتقا یا تمدید) *
- مقام سوم:
- 1000 دلار جایزه نقدی
- یک لایسنس IDA Pro Expert-2 رایگان (برای ارتقا یا تمدید) *
*: لایسنس ها ممکنِ بسته به شرایط صلاحیت شرکت کننده، متفاوت باشن.
نحوهی شرکت در مسابقه:
- یک پلاگین خلاقانه و کاربردی برای IDA یا Decompiler بسازید:
- زبانهای پشتیبانی شده: C، C++، Python
- پلاگین ها باید با نسخه های IDA 9.1 یا 9.2 سازگار باشن.
- برنامه های جانبی که از idalib استفاده میکنن هم پذیرش میشن.
- مطمئن بشید شرایط لازم رو دارید:
- باید صاحب حقوق کپی رایت کد باشید یا مجوز ارسال اون رو داشته باشید.
- نباید در هیچ فهرست تحریم بین المللی قرار داشته باشید.
- کارمندان شرکت Hex-Rays و اعضای خانوادهی اونا مجاز به شرکت نیستند.
- نکته: با توجه به متن باز شدن، IDA SDK، کاربران IDA Free هم میتونن در مسابقه شرکت کنن. نیازی به داشتن لایسنس فعال IDA Pro نیست.
- ارسال و انتشار پلاگین در مخزن جدید:
- امسال، تمام پلاگین ها باید در مخزن رسمی پلاگینهای Hex-Rays منتشر بشن. برای این کار:
- در بالای صفحهی، روی دکمهی Submit plugins & apps کلیک کنید.
- وارد پورتال Hex-Rays بشید.
- از منوی SERVICES گزینهی My plugins رو انتخاب کرده و روی دکمهی Submit a plugin در بالا سمت راست کلیک کنید.
- ارسال شما باید شامل موارد زیر باشد:
- لینک به مخزن GitHub پروژه
- فایل README.md شامل موارد زیر باشه:
- نمای کلی: توضیح بدید پلاگین چیکار میکنه و چرا اهمیت داره. توضیح میتونه کوتاه باشه، اما باید برای داوران مفید و روشن باشه.
- دستورالعمل نصب و نمونه های استفاده
- فایل README.md شامل موارد زیر باشه:
- اطلاعات اعتبار (Credit): مشخص کنید نویسندگان چگونه معرفی میشن (مثلا نام افراد، شرکت یا دانشگاه).
- فایل ida-plugin.json که اطلاعات متادیتا مانند نسخه، دسته بندی و غیره رو تعریف میکنه (برای جزئیات به مستندات مراجعه کنید).
- نکته: معمولا حدود ۲۴ ساعت پس از ارسال پلاگین، انتشار اون در مخزن انجام میشه.
- لینک به مخزن GitHub پروژه
- ارسال نهایی برای مسابقه ۲۰۲۵:
- بعد از انتشار پلاگین در مخزن پلاگین های Hex-Rays، میتونید اون رو بطور رسمی برای مسابقه، از طریق این لینک ارسال کنید.
پرداخت و احراز هویت:
- برندگان باید مدارک شناسایی معتبر (مانند کارت ملی، پاسپورت یا گواهینامه رانندگی) و اطلاعات بانکی خودشون رو حداکثر تا ۳۰ روز بعد از اعلام نتایج ارسال کنن.
- جوایز بعد از تأیید مدارک، حداکثر ظرف دو هفته به حساب برندگان واریز میشه.
- شرکت در قالب تیمی مجاز هستش، اما تیم باید یک نفر رو بعنوان دریافت کنندهی جایزه معرفی کنه.
- نام برندگان در صفحهی رسمی مسابقهی Hex-Rays منتشر میشه، البته در صورت تمایل، میشه درخواست بدید که نام واقعی شما منتشر نشه.