ممنون از جوابتون
-------------------
وقتی خود اون نرم افزار هم کرک شده ، پس رمزنگاری کردن کدها به چه دردی میخوره؟
خود اون نرم افزار چطور امنیت رو بالا میبره؟
چطور با کدنویسی این کار رو خودم انجام بدم؟
چ چیزهایی رو باید درنظر بگیرم؟
همیشه هدف کرک کردن برنامه نیست، گاهی اصلا الگوریتم و کد برنامه تون رو برای استفاده در جایی دیگه لازم دارند، نه فایل اجرایی کرک شده.
تقریبا میشه گفت طراحی Obfuscator کاری نیست که خودتون بخواهید بکنید، تخصص فنی خیلی بالایی میخواد، اونم نه در مورد خود زبانی مثل #C، در مورد کامپایلرش و CLR و CLI که مستنداتش و تخصصش در اختیار هر کسی نیست. نقطه ضعف در کامپایلر و ماهیت ماشین مجازی این زبان ئه، وگرنه با دست کاری کردن کد برنامه تون جلوی تبدیل اش به کد رو نمی گیرید.
شما می توانید بعضی از قابلیت های ساده Obfuscator ها رو خودتون ایجاد کنید، مثلا اسم همه متغیر ها و متد های برنامه تون رو طولانی و نامفهوم کنید ولی اصل کاری که Obfuscator انجام میده در اون قابلیت های ساده اش نیست.
خلاصه اش اینه که کامپایلر بعضی زبان ها کد رو به یک زبان میانی تبدیل می کنند که راحت تر میشه به زبان اصلی کد برگردوند و کد تبدیل شده خوانایی قابل قبولی داره. مثل کامپایلر زبان های NET.، مثل زبان #C
این معنی اش الزاما این نیست که برنامه راحت کرک میشه، معنی اش اینه که اگه کسی به کد برنامه تون نیاز داشته باشه، می تونه برنامه اجرایی تون رو راحت به کد معادل تبدیل کنه، شاید عینا مثل کد شما نباشه، توضیحاتش هم قطعا داخلش نیست، ولی معادل همون کد شما کار می کنه. Obfuscator ها دو تا کار اساسی می کنند، اول اینکه تبدیل فایل اجرایی به کد رو مشکل می کنند، ثانیا اگه تبدیل هم صورت بگیره، از خوانایی و روانی کد حاصل شدیدا کم می کنند، طوری که فهمیدن منطق کد سخت بشه، البته به قیمت کاهش شدن سرعت اجرای برنامه یا بعضی محدودیت ها.
چطور میشه وارد سورس کد رمزنگاری شده یک برنامه شد؟ (بدون استفاده از یک نرم افزار خاص)
کد رمز نگاری شده یعنی برای باز کردنش به رمز اش نیاز ئه. جزو مباحث متعارف این انجمن هم نیست که بخواهیم در موردش صحبتی بکنیم.