یک decompiler یک فایل اجرایی را به عنوان ورودی، و تلاش برای ایجاد یک سطح بالا، compilable، فایل منبع احتمالا حتی نگهداری که همین کار.
این در مقابل از یک کامپایلر، که طول می کشد یک فایل منبع و باعث می شود یک فایل اجرایی است بنابراین. با این حال، decompiler عمومی نمی کوشد معکوس هر عمل از decompiler، و نه آن تبدیل برنامه ورودی بارها و بارها تا نتیجه سطح بالا کد منبع است. بنابراین فایل منبع اصلی از نو خلق نیست؛ احتمالا چیزی شبیه به آن.
مهم نیست که اگر فایل اجرایی است علامت یا نه، و یا از هر زبان خاص وارد شده بود. (با این حال، زبان اعلانی مانند ML در نظر گرفته نشده است.)
هدف این است که برای ایجاد یک decompiler retargetable (به عنوان مثال یکی است که می تواند انواع مختلف دستگاه فایل کد با تلاش نسبتا کم decompile، به عنوان مثال X86-پنجره ها، SPARC-سولاریس، و غیره). آن را نیز در نظر گرفته شده بود که بسیار مدولار، به طوری که بخش های مختلف از decompiler را می توان با ماژول های تجربی جایگزین شده است. این نظر گرفته شده بود که در نهایت تعاملی تبدیل، لا IDA نرم افزار، به دلیل برخی از چیزهایی (و نه فقط نام و نظرات متغیر، هر چند این بدیهی است که بسیار مهم است) نیاز به مداخله متخصص. این که آیا این تعامل متعلق به decompiler و یا در یک ابزار جداگانه همچنان نامشخص است.
با تبدیل معناشناسی دستورالعمل های فردی، و با استفاده از تکنیک های قدرتمند مانند تجزیه و تحلیل dataflow واگذاری تنها استاتیک، بومرنگ باید (تا حد زیادی) مستقل از رفتار دقیق کامپایلر که اتفاق افتاده است مورد استفاده قرار گیرد. بهینه سازی باید نتایج تاثیر نمی گذارد. از این رو، هدف decompiler عمومی است.
محدودیت ها:
· در صورتی که شما می خواهید امتحان کنید بومرنگ آن را به عنوان به عنوان یک decompiler است (به عنوان آزمایش با آن، و یا بهبود آن مخالف)، محدودیت های شدید آن آگاه باشند. همانطور که از اوایل سال 2004، بومرنگ فقط decompile X86 (لینوکس / X86 یا ویندوز PE)، SPARC (سولاریس، و یا احتمالا لینوکس / SPARC)، و یا قدرت PC (لینوکس / PPC یا Mac OS / X) برنامه. به طور خاص، توجه داشته باشید که برنامه های DOS و یا NE (ویندوز 3.1) decompile نیست. اضافه کردن پردازنده دیگر (چند ماه) انجام بزرگ است.
· تنها تولید خواهد C، C ++ نمی. آن را به C برنامه البته، (و هر نوع از برنامه ها، از جمله اسمبلر) decompile ++. شما ممکن است قادر به دست برخی از برنامه های ویرایش C ++ به C ++ کد منبع قابل استفاده است. برای برنامه های MSVC وارد شده، در حال حاضر شما باید spoonfeed decompiler و آن را بگویم که یک پارامتر است ثبت نام (thiscall کنوانسیون تماس) وجود دارد. سوئیچ که مسئولیت رسیدگی به این مجموعه می باشد. با استفاده از سوئیچ -sf را ببینید.
جزئیات نرم افزار:
نظر یافت نشد