سلام
دیدم چند نکته را لازم هست که یادآوری کنم:
1- کی گفته ما ایرانی ها کرک می کنیم؟
کرک ها رو روس ها معمولا انجام میدند و ما ایرانی ها از اونها استفاده می کنیم.
2- هر برنامه ای راحت کرک بشه به این دلیل بوده که راحت هم نوشته شده.
3- امنیت لینوکس و ویندوز و VS ربطی به امنیت برنامه هایی که ما تحت NET. می نویسیم نداره. لطفا برخی دوستان به بحث حاشیه ندند.
4- لطفا به خاتمه ی بحث نظر ندید. اگه کسی از این بحث خوشش نمیاد می تونه تو این بحث شرکت نکنه.
5- بد نیست روند جهانی گرایش به زبان های برنامه نویسی را ببینید و خودتون نظر بدید که کدوم برنامه رشد کاربرانش زیاد شده و کدوم کم. (قابل توجه اونایی که میگند C# امنیت نداره برید سراغ نرم افزارهای دیگه)
6- ANSI,Win7,Vista و خیلی نرم افزارهای شاخ دیگه هم کرک شدند که به زبان های Native بودند.
7- C# خیلی خوانا هست. پس کد مهندسی معکوس شده ی اون هم باید قاعدتا خوانا باشه.
8- شما برید اسکریپت Obfuscade شده ی JavaScript را یک نگاه بندازید. بعد خودتون قضاوت کنید کد Obfuscade آیا قابل خوندن هست یا نه. آدم کد خودش رو هم به زور می خونه چه برسه به کدی که Obfuscade شده باشه. به خصوص زمانی که Function ها Highly Overload میشند. برای همین کد ما برای کرکر ها به یک آشغال کد تبدیل میشه.
هم میشه کد ++C را باز کرد هم C# را با این تفاوت که کد باز شده ی C# یکم سطحش بالاتره. ولی برای یک برنامه ی بزرگ به این راحتی ها هم که گفته میشه قابل فهم نیست.
9- برخی برنامه نویس ها خودشون سوتی میدند که کدشون راحت هک میشه.
چند تا نکته به نظر من میاد که کمک زیادی به حفظ برنامه ی ما میده:
- در برنامه هیچ وقت string های حیاتی را دم دست قرار ندید. برخی رشته ها را میشه ROT13 کرد یا با روش های دیگه کد کرد. دزد تو خونه ی هر کسی میره اول کجا رو می گرده؟ پولت رو اونجا قرار نده.
- در برنامه ی خود زمان را چک کنید. تا ببینید برنامه در حال اجرای عادی هست یا در حال دیباگ شدن. این کار حداقل یکم کرک کردن را سختتر می کنه.
- از کد های یتیم معلق در برنامه برای رد گم کردن استفاده کنید. لازم نیست که همه ی کد ها کار مفید انجام بدند.
البته این ها روش هایی هست که من (که رشته م کامپیوتر نیست و تفننی برنامه نویسی می کنم) پیشنهاد می کنم. مسلما یک برنامه نویس حرفه یی راه های بهتری هم سراغ داره.
10- چرا کسی در این مورد که "یکی از امنیتهای C# به این صورته که نفوذ از خارج محیط اون به داده هاش غیر ممکنه" حرفی نمی زنه؟
11- با کد IL حال نکردی برو نسخه ی کرک شده ی مبدل های IL به Native را دانلود کن برنامه را Native بکن تا خیالت راحت بشه. به هر حال برنامه یا باید IL باشه یا Native نمی شه که همه ی مزیت هر دو را با هم داشته باشه.