تحلیل و مهندسی معکوس نرمافزار: دستورالعملهای پایه اسمبلی - نکته خودمونی
دستورالعملهای پایه اسمبلی
- نکته 1: مهندسی معکوس نرم افزار به معنای بررسی کد های باینری برای درک عملکرد برنامه است. با ابزارهایی مثل Ghidra شروع کنید تا disassembly را تمرین کنید. این کار به شما کمک می کند تا نرم افزار های پیچیده را بهتر بفهمید 🔍💻
- نکته 2: دستور MOV در اسمبلی برای انتقال داده بین رجیستر ها و حافظه استفاده می شود. مثلاً MOV AX, BX داده را از BX به AX کپی می کند. همیشه رجیستر ها را چک کنید تا اشتباه نکنید 😊🖥
- نکته 3: برای تحلیل نرم افزار، ابتدا فایل اجرایی را با hex editor باز کنید و الگو های داده را پیدا کنید. این روش ساده برای شناسایی ساختار ها عالی است 📂🔍
- نکته 4: دستور ADD در اسمبلی جمع دو مقدار را انجام می دهد، مثل ADD AX, 5 که 5 را به AX اضافه می کند. در برنامه نویسی سطح پایین، از آن برای محاسبات پایه استفاده کنید ➕💡
- نکته 5: رجیستر های عمومی مثل EAX و EBX را بشناسید؛ آن ها برای ذخیره موقت داده ها مفیدند. در مهندسی معکوس، پیگیری تغییرات رجیستر ها کلید حل معما است 🧠⚙
- نکته 6: دستور JMP برای پرش به آدرس دیگر در کد اسمبلی است. در تحلیل، جا های پرش را دنبال کنید تا جریان برنامه را بفهمید ➡🐛
- نکته 7: از debugger مثل OllyDbg برای اجرای گام به گام نرم افزار استفاده کنید. این ابزار به شما اجازه می دهد حالات را بررسی کنید و مشکلات را پیدا کنید 🛠😄
- نکته 8: دستور SUB برای تفریق داده ها کاربرد دارد، مثلاً SUB CX, DX. در معکوس سازی، این دستور ها را برای درک الگوریتم ها ردیابی کنید ➖📊
- نکته 9: همیشه مهندسی معکوس را در چارچوب قانونی انجام دهید، مثل بررسی نرم افزار های خود تان یا با مجوز. این کار اخلاقی و مفید برای امنیت است ⚖🛡
- نکته 10: با دستور CALL تابع ها را فراخوانی کنید، مثل CALL subroutine. در تحلیل، stack را چک کنید تا فراخوانی ها را دنبال کنید و ساختار برنامه را ببینید 📞🔄
منبع آموزشی این مطلب
این مطلب برگرفته از محصول آموزشی «دوره مهندسی معکوس و هک حافظه با چیت انجین» است
برای مشاهده توضیحات کامل، جزئیات دوره و دریافت محصول، روی دکمه زیر کلیک کنید.
اطلاعات بیشتر و دریافت محصول