تمام سوالات سوالات بدون پاسخ سوال بپرسید

سلام،
شنیدم امکان این هست که فایل کامپایل شده (DLL و EXE) رو به سورسش تبدیل کرد و به منابعش دسترسی پیدا کرد.
حالا سوال من اینه، چطور میشه از ریسورس (Resource) شدن برنامه خودم محافظت کنم؟
ترجیحا برای .Net و برنامه های C++ تحت لینوکس با تشکر

1

این مطلب رو بخونید برای .net توضیح دادم.

http://www.hamcodi.ir/qa/questions/1059/

(15 آوریل '12, 23:15) amir
1 پاسخ

برای C++ نیازی به این کار نیست چون به زبان ماشین ترجمه میشن و برگردوندن کدهای اون تقریبا غیر ممکن هست.ولی زبان های همچون خانواده .net و vb6 و جاوا قابلیت ریسورس شدن رو دارند. برنامه های که با .net نوشته شدن با استفاده از ابزاری همچون .NET Reflector قابلیت بازیابی 100% کد رو دارند. برای جلوگیری از ریسورس شدن برنامه باید از ابزارهای obfuscator یا گمراه کننده استفاده کنید. این ابزارها با روش های زیر کدهای شما رو ناخوانا می کنند:

  • تغییر نام کلاس ها متدها متغیرها و ... به نامهای گنگ و نامفهوم
  • افزودن کد برای گمراه کردن
  • انکریپت کردن مقادیر متغیرها
  • و تکنیک های پیشرفته دیگر ....

در حال حاضر بهترین ابزار برای این کار محصول دیگر شرکت ردگیت یعنی SmartAssembly می باشد.

بله درست متوجه شدید شرکت red-gate قویترین ابزار ریسورس دات نت رو طراحی کرده و خودش هم ابزار محافظت از کدتتون رو طراحی کرده ، نکته جالب اینه که هردو ابزار پولی هستن. به هرحال این هم یک جور کسب درآمده رفیق دزد و شریک قافله !

درست متوجه شدم؟ یعنی باز هم کدها باز می شوند ولی کاربر نمیتواند از کد سر دربیاورد؟
برای C++ فرمودید «تقریبا غیر ممکن است»، یعنی باز هم امکان ریسورس شدن کدها هست؟ (برای برنامه های بزرگی و گران قیمتی همچون 3DMAX)

(16 آوریل '12, 06:50) _Ant Eater_

بله کدها ریسورس میشن ولی اونقدر گنگ و نامفهوم هستند که طرف از خیرش می گذره ، البته توامندی شما در استفاده از ابزار obfuscator خیلی تاثیر گذار است.

توی c++ به این دلیل گفتم تقریبا چون در علوم کامپیوتر هیچ چیز مطلق نیست و ممکنه روش ها و ابزاری در آینده به وجود بیاد که این کار رو انجام بده.

(17 آوریل '12, 22:47) mohammadi4net

البته توجه داشته باشید که ما داریم در مورد ریسور شدن صحبت می کنیم ، در بحث کرک نرم افزارها هیچ برنامه ای در امان نیست حتی C++ !

(17 آوریل '12, 22:51) mohammadi4net

ممنون مطلب رو گرفتم. پس من باید یا برنامه رو با زبانی بنویسم که کدهای بومی (Native) تولید کنه یا اینکه اگر مثلا از زبان های تحت .NEt استفاده میکنم، از ابزارهایی مثل .Net Reactor استفاده کنم. در ضمن مبحث کرک شدن برنامه هم چیز دیگریست که به مکانیزم های متفاوتی نیاز داره. ممنون دوست عزیز :)

(19 آوریل '12, 12:11) _Ant Eater_
toggle preview



آموزش زبان برنامه نویسی C#
آموزش jquery
آموزش برنامه نویسی
آموزش طراحی وبسایت
آموزش مدیریت وبسایت
آموزش جاوا Java
آموزش پایتون Python
آموزش سی شارپ C#‎
آموزش HTML و CSS
آموزش JavaScript جاوااسکریپت
آموزش jQuery جی کوئری
آموزش ساخت ربات تلگرام
آموزش برنامه‌نویسی PHP
آموزش برنامه‌نویسی اندروید
● آموزش‌های رایگان

سوالات مرتبط

راهنمای استفاده از ویرایشگر
  • *ایتالیک*‌ یا __ایتالیک__
  • **ضخیم** یا __ضخیم__
  • آدرس:[متن](http://url.com/ "عنوان")
  • عکس?![alt متن](/path/img.jpg "عنوان")
  • لیست عددی: 1. Foo 2. Bar
  • برای رفتن به خط بعد، هر جا مایلید که خط جدید شروع شود دو کاراکتر فاصله (space) قرار دهید
  • تگ‌های ساده HTML هم پشتیبانی می‌شوند

تگها:
  • ×43
  • ×37
  • ×2
  • پرسیده شده: 15 آوریل '12, 20:51
  • بازدید: 4,179 بار
  • آخرین بروزرسانی: 19 آوریل '12, 12:11

این سوال را دنبال کنیدتوسط ایمیل: ایمیل شما (باید معتبر باشد, هرگز به دیگران نمایش داده نمیشود):

هنگامی که شما به سیستم وارد شوید،قادر خواهید بود برای بروز رسانی ها مشترک شوید.


توسط RSS:

پاسخها

پاسخها و نظرها