PDA

View Full Version : محافظت از DLL



abi_sarab
شنبه 12 اردیبهشت 1388, 19:20 عصر
سلام!
خوبید؟
چه طور می تونم از Dll هایی که نوشتم محافظت کنم؟
یعنی چه کار کنم کسی نتونه ازش استفاده کنه.
چون وقتی با برنامه رایت می کنم می دم دست مشتری خوب می تونه خیلی راحت Dll رو Add کنه و استفاده کنه.
چی کار کنم؟

rnm123
شنبه 12 اردیبهشت 1388, 22:35 عصر
دوست عزیز یک راهی که به ذهنم میرسه اینه که میتونی توی برنامه هایی که از dll هایت استفاده میکنی یک قسمتی قرار بدهی تا یک کلید خاصی را به عنوان کد شناسایی فایل شما در رجیستر ویندوز ذخیره نماید و در فایل dll خودت هم یک قسمتی را قرار دهی که با اجرا و فراخوانی شدن توابع موجود در آن چک کند که آیا این نسخه از فایل ثبت شده است یا نه اگر که آری پس به برنامه جواب لازم را بدهد ولی اگر نه یک پیغام خطایی مبنی بر رجیستر نبودن فایل dll بدهد که مطمئنا منجر به متوقف شدن برنامه هایی خواهد شد که می خواهند بدون اجازه شما از آن استفاده نمایند

kiosksoft
یک شنبه 13 اردیبهشت 1388, 08:48 صبح
دوست عزیز

در مورد Sign کردن Dll ها تحقیق کنید.

abi_sarab
یک شنبه 13 اردیبهشت 1388, 10:40 صبح
Sign کردن Dll یعنی چی؟

kiosksoft
یک شنبه 13 اردیبهشت 1388, 11:01 صبح
Sign کردن Dll یعنی چی؟

دوست عزیز

این مقاله ها رو بخونید , بصورت علمی کامل در این زمینه بحث شده است.

Introduction to .NET Assemblies (http://www.dnzone.com/go?698)

The Secrets of Strong Naming (http://www.ondotnet.com/lpt/a/3384)

این هم از مایکروسافت

How to: Sign an Assembly with a Strong Name (http://msdn.microsoft.com/en-us/library/xc31ft41.aspx)

Nima NT
دوشنبه 14 اردیبهشت 1388, 00:22 صبح
هر کاری میکنید فرقی نداره , اگر از Obfuscator ها استفاده نشه , امنیت به شدت پائین هست.
حتما" از برنامه های مذکور استفاده کنید.

kiosksoft
دوشنبه 14 اردیبهشت 1388, 11:10 صبح
دوست عزیز به این تاپیک هم حتما مراجعه کنید .

http://www.barnamenevis.org/forum/showthread.php?t=36829

Amir Oveisi
دوشنبه 14 اردیبهشت 1388, 12:04 عصر
هر کاری میکنید فرقی نداره , اگر از Obfuscator ها استفاده نشه , امنیت به شدت پائین هست.

دوست عزیز بستگی داره! ممکنه دیده شدن کدهای برنامه مشکل خاصی ایجاد نکنه (از نظر امنیتی مخصوصا) پس برنامه نویس مجبور نیست که این کار رو انجام بده.
اما ممکنه بخواد که این dll که نوشته فقط تو برنامه خودش قابل استفاده باشه و بقیه نتونن تو برنامه هاشون ازش استفاده کنن.
بهترین و ساده ترین راه برای حل این مشکل - همونطور که دوستان اشاره کردند - استفاده از Assembly Signing هست که NET. بخوبی امکاناتش رو فراهم کرده.

موفق باشید
jooje

Nima NT
دوشنبه 14 اردیبهشت 1388, 13:08 عصر
اما ممکنه بخواد که این dll که نوشته فقط تو برنامه خودش قابل استفاده باشه و بقیه نتونن تو برنامه هاشون ازش استفاده کنن.

حذف کردن امضای فوق به راحتی امکان پذیره در صورتی که اگر برنامه نویس از نرم افزارهایی مثلXenocode استفاده کنه اون موقع کرک کردن و سوء استفاده از اون کار هر کسی نیست.
این برنامه تمامی DLL ها و فایلهای مورد نیاز شما رو به فایل اصلی متصل میکنه و اون رو در Memory آزاد میکنه , به صورتی که امکان گرفتن دامپ از DLL ها وجود نداره و تنها چاره آنپک کردن هست که کار ساده ای نیست.

kiuhnmgtrdcv
دوشنبه 14 اردیبهشت 1388, 13:22 عصر
منظور از اصطلاح dump چیست ؟ چطور میشه از یک dll ،
dump گرفت ؟

Nima NT
دوشنبه 14 اردیبهشت 1388, 16:33 عصر
بله تو دات نت میشه , فرض کنید شما تو برنامتون از کامپوننت XXXX استفاده کردید , و اون رو به هر طریقی تو حافظه برای نیاز خودتون آزاد میکنید , با استفاده از ابزارهایی میشه اون فایل DLL رو بیرون کشید و بدون هیچ مشکلی از اون استفاده کرد ,در حالت کلی نحوه آنپک کردن برنامه های دات نتی همین شکلی هست.