PDA

View Full Version : گفتگو: بهترین نرم افزار decoder یا decompiler



fool66
یک شنبه 22 اردیبهشت 1392, 18:42 عصر
سلام بهترین برنامه برای ریسورس کردن برنامه چیه ؟؟؟؟
چطور میشه جلوگیری کرد از نمایش کد؟؟؟

darknes666
یک شنبه 22 اردیبهشت 1392, 18:46 عصر
اقای عزیز چیزی نداریم که بتونه یک برنامه رو بطور کامل ریسورس کنه.
نحوه ی عمل کردش اینه که اول به اسمبلی تبدیل میشه بعدش برنامه میاد معادل سازی میکنه که نه میشه گفت سورس برنامه نیست نه میشه گفت هست.اگر میشد که شرکت هایی مثل unreal,nero,... بیچاره میشدن.

fool66
یک شنبه 22 اردیبهشت 1392, 18:50 عصر
توی C# با نرم افزار NET Reflector این کار رو می کنن می خواستم ببینم توی c++هم میشه

darknes666
یک شنبه 22 اردیبهشت 1392, 18:54 عصر
اصولا نحوه ی کارکردشون همینی هست که میگم.مثلا شما دستور cout رو در نظر بگیر.این دستور به اسمبلی فقط چند خط میشه حالا اونو پیدا کنی میشه cout ولی مثلا دستور های پیچیده تر مثل توابع api غیر ممکنه به این راحتی ها پیدا بشه.

fool66
یک شنبه 22 اردیبهشت 1392, 18:55 عصر
ولی این نرم افزار تقریبا میشه گفت کد رو کامل میده

darknes666
یک شنبه 22 اردیبهشت 1392, 18:59 عصر
زبون ها فرق می کنن.c# تو لایه های بالای سیستم عامل کار میکنه ولی c++ میتونه تا اخرین لایه هم نفوذ کنه(kernel mode) تو این حالت کاری از پس این نرم افزار های ریسورس بر نمیاد.

fool66
یک شنبه 22 اردیبهشت 1392, 19:03 عصر
اونوقت نرم افزاری هست که کد اسمبلی رو به C# یا C++تبدیل کرد؟

darknes666
یک شنبه 22 اردیبهشت 1392, 19:05 عصر
من اطلاع چندانی ندارم ولی به احتمال 99.99 درصد هست.این جا دنیاست هزاران برنامه نویس واسه نیاز هاشون برنامه نویسی میکنن.ممکنه برنامه نویسی نیاز داشته باشه اسمبلی رو به c++ تبدیل کنه و این برنامه رو بنویسه.

UfnCod3r
یک شنبه 22 اردیبهشت 1392, 19:29 عصر
عزیز سی++ سی شارپ یست که با ی دیکامپایلر دل و رودشو بریزی بیرون
بهترین برنامه IDA هست مخصوصا نسخه تجاریش که کلی پولشه
فقط اسمبل می کنه و تحلیل می کنه ببنه چیا استفاده شدن و.. ولی ابزار های خوبی داره
کد رو نمیشه هیچ وقت بدست اوراد با این برنامه شما فقط اسمبل می کنی و بعد می تونی قفل برنامه رو بشکونی ک اونم راحت نیست

developing
سه شنبه 24 اردیبهشت 1392, 10:19 صبح
با سلام

برنامه هایی که به زبان های دات نت نوشته می شوند به یک زبان میانی (IL) ترجمه می شوند نه به کد محلی ماشین.(به خاطر همینه که زبانهای دات نت سرعت کمتری نسبت به زبانهای محلی (Native) دارند) و در صورتی که برنامه نویس از پکرها برای پک کردن کد خودش استفاده نکرده باشه توسط دیکامپایلرها (معروف ترینشون همون Net Reflector. هست) می شه به کد اولیه ی اونها به طور کامل دسترسی داشت.
البته زبان جاوا هم با کمی تفاوت مثل زبان های دات نت هست. برای این زبان هم DJ Java Decompiler استفاده می گردد.
اما زبانهایی مثل سی، سی پلاس پلاس، دلفی و ... (هر زبانی که کد محلی تولید کنه) به کد ماشین تبدیل می شوند و برای این زبانها معمولا دیس اسمبلر(DisAssembler) وجود دارد که کدهای برنامه ی اجرایی رو به زبان اسمبلی نمایش می دهد. این تنها روش دسترسی به کدهای این زبانها می باشد و برای تغییر آنها باید اسمبلی بلد باشید.

البته شما در کل نمی توانید تغییرات زیادی بر روی این کدها اعمال کنید چون معمولا نمی شود فهمید که این کد برای چه تابعی است و می تواند دو تابع که کار متفاوتی انجام می دهند در نهایت در بسیاری از خطوط، اسمبلی مشابهی تولید کنند.