PDA

View Full Version : سوال: قرار دادن رمز در فايل DLL



crying sphere
شنبه 08 آبان 1389, 17:37 عصر
با سلام خدمت دوستان

سوالي داشتم اينكه آيا امكان اين وجود داره كه بشه سورس يك DLL رو بدست آورد؟ يا اينكه بشه محتويات اونو فهميد كه چيه؟
چون من مي خوام رمز هاي برنامه و ... رو بزارم تو DLL و از توي اون بخونم.

b.mahsa
شنبه 08 آبان 1389, 18:37 عصر
source ش رو میشه به دست آورد. Dll جای مناسبی برای گذاشتن password ها نیست.
میتونید تو registery بنویسید.

dataking
شنبه 08 آبان 1389, 18:59 عصر
سلام
اگه هدف شما دوست عزیز جلوگیری از انتشار غیر مجاز برنامتونه؟ به نظر من حکر ها خیلی قوی هستند ولی تقریبا کار با قفل های سخت افزاری براشون سخت تره .مشکل امنیت یک مشکل بزرگ برای برنامه نویس ایرانیه (بخصوص)البته برنامه نویسهای خارجی هم از دست هکر های ما به هیچ وجه در امان نیستند . می بینید که به راحتی برنامه های چندین دلاریشون تو کافی نت ها و سایر مراکز فروش نرم افزار رایت می کنند حتی 500 تومن حتی کمتر ؟!!!!!!!!! شرمت های محترم و معروف ارائه کننده نرم افزار تو یک سی به قول خودشون اورجینال 100 تا نرم افزار را قرار می دن بعد می زنند قیمت : 2500 تومان
ببخشید اگه خیلی به موضوع ربط نداشت من دلم از دست بعضی قانون ها خونه

Mani_rf
یک شنبه 09 آبان 1389, 09:16 صبح
source ش رو میشه به دست آورد. Dll جای مناسبی برای گذاشتن password ها نیست.
میتونید تو registery بنویسید.

مطمعنی که Registry جای مناسبیه برای قرار دادن Password ها و امنیتش از DLL بالاتره؟؟؟

من پیشنهاد میکنم که پسورد ها را در دیتابیس به صورت Hash شده قرار بده. اونطوری دیگه خودتم نمیتونی با دیدنشون بفهمی که چی هستند.

b.mahsa
یک شنبه 09 آبان 1389, 09:59 صبح
دقيقا . جناب Mani_rf درست فرمودند.اطلاعات كلا بايد hash بشه. قبل از ذخيره شدن. و گرنه هيچ جايي براي ذخيره اطلاعات امن نيست.
به قول خود هكر ها. برنامه اي كه هنوز هك نشده. برنامه ايه كه هنوز نوشته نشده.:چشمک:

من عرض كردم Dll جای مناسبی برای گذاشتن password ها نیست. منظورم اين نبود كه registery هست....
ولي در كل به نظر من registery مناسب تره تا dll.

dataking
یک شنبه 09 آبان 1389, 10:33 صبح
من پیشنهاد میکنم که پسورد ها را در دیتابیس به صورت Hash شده قرار بده. اونطوری دیگه خودتم نمیتونی با دیدنشون بفهمی که چی هستند.
با این پیشنهاد موافقم از روشهای دیگه مطمئنتر ه درصد لو رفتنش هم خیلی خیلی خیلی کمه

crying sphere
دوشنبه 10 آبان 1389, 08:47 صبح
با تشكر از تمامي دوستاني كه نظر دادند :

من DLL هايي مي خوام بنويسم كه دوست ندارم كسي ديگه اي از آن استفاده كنه. به همين خاطر مي خوام يكي از پارامترهاي توابع داخلي آن در خواست كدي باشد كه درستي آن با كدي كه در خود DLL گذاشته شده است بررسي شود.
به همين خاطر مي خواستم بدونم كه آيا امكان مشاهده محتويات DLL وجود دارد يا خير. با پيشنهاداتي كه دوستان دادند فكر كنم كه كار سختي باشد هك DLL .

دوستان ديگه هم همين پيشنهاد رو دارند؟ به خصوص آقاي Ali Manam كه خيلي تو كار نوشتن DLL و كامپوننت هستن لطفا راهنمايي كنن.

با تشكر

b.mahsa
دوشنبه 10 آبان 1389, 14:08 عصر
با پيشنهاداتي كه دوستان دادند فكر كنم كه كار سختي باشد هك DLL .


بر عكس دوست من. ديدن محتويات يك dll خيلي هم سادست. شما يه نگاهي به برنامه red gats - reflector بنداز ببين به چه سادگي ميتوني محتويات dll رو ببيني.

DoDoklak
دوشنبه 10 آبان 1389, 16:23 عصر
عكس دوست من. ديدن محتويات يك dll خيلي هم سادست. شما يه نگاهي به برنامه red gats - reflector بنداز ببين به چه سادگي ميتوني محتويات dll رو ببيني.


البته این مال موقعی هست که شما سورستو قفل نکرده نباشی همین شرکت Red Gates نرم افزاری ارائه داده به نام Smart assembly 5.5 که حتی نمی زاره یک خط کد رو هم ببینی

برای نمونه به تصویر زیر نگاه کنید

تصویر اول قبل از قفل کردن سورس
تصویر دوم بعد از قفل کردن سورس

http://www.simple-talk.com/iwritefor/articlefiles/1046-Obfuscate2.JPG


http://www.simple-talk.com/iwritefor/articlefiles/1046-obfuscate3.JPG



ه همين خاطر مي خوام يكي از پارامترهاي توابع داخلي آن در خواست كدي باشد كه درستي آن با كدي كه در خود DLL گذاشته شده است بررسي شود.


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

Felony
دوشنبه 10 آبان 1389, 17:53 عصر
DLL های تولید شده در زبان های Net. ی فایل های DLL استاندارد ویندوز نیستن ( مثل فایل های اجرایی تولید شده در این زبان ها ) پس انتظار امنیت فایل های DLL استاندارد ویندوز رو از اونها نداشته باشید ، البته همونطور که در پست های قبل ذکر شد ابزار هایی برای بالا بردن این امنیت وجود داره ، اگر اسراری به ذخیره رمزها داخل DLL دارید بهتره روش ذکر شده تو پست 4 رو با روش مورد نظرتون ترکیب کنید ، یعنی رمز مورد نظر رو توسط الگوریتم های Hash کد کنید و حالا اون کد رو داخل DLL نگهداری کنید .

علاوه بر موارد بالا داده هایی که به صورت رشته در DLL ها یا فایل های exe ذخیره میشن ( چه زبان های Native و چه Managed ) به راحتی قابل بازیافت هستند !

@ گرچه وقتی رمزتون رو Hash کنید امنیت اون کد تضمین شده هست و حتی اگر از لحاظ فنی مشکلی نداشت میتونستید اون رو تو یه فایل متنی هم نگهداری کنید !

alimanam
دوشنبه 10 آبان 1389, 20:03 عصر
باسلام

به نظر من دوستان اکثراً نکات خوب و مفیدی بیان کردن مخصوصاً آقا مجتبی . نظر من هم همینه که اطلاعات هرجا قراره در جایی ذخیره بشه چه فایل dll باشه چه رجیستری باشه چه یه فایل متنی باشه چه جای دیگه باید کد بشه بعد ذخیره بشه و اطلاعات حیاتی مثل پسورد و ... نباید همینجوری بدون حفاظ در معرض دید کسانی که علاقه خاصی به این نوع اطلاعات دارن باشه .

و اما در مورد ابزار مفیدی که دوستان معرفی کردن باید این نکته رو هم اضافه کنم که اکثراً همه این ابزارهای مفید دارای نقایصی هستن و نمیشه 100 مورد اطمینان قرار بگیرن چون همه این ابزارها دارای ابزارهای ضد خودشون هستن و قابل برگشت به سورس اصلی تا اندازه قابل قبول ( شاید تا 80 یا 90 درصد ) هستن . ولی به قول یکی از دوستان همینم غنیمته و قابل استفاده و اگه همین ابزارها نبودن دیگه فاجعه بود .

به نظر من خودتون باید تا جایی که در امر برنامه نویسی مهارت دارین کاری کنین که توابع حیاتی یه برنامه رو تا جایی که میشه نسبت به هرچیزی که مشکوکه حساس کنین و همیشه از توابع پیچ در پیچ و تو در تو استفاده کنین که نشه به این سادگی ازش سر در اورد . موفق باشید .

crying sphere
چهارشنبه 12 آبان 1389, 14:15 عصر
البته این مال موقعی هست که شما سورستو قفل نکرده نباشی همین شرکت Red Gates نرم افزاری ارائه داده به نام Smart assembly 5.5 که حتی نمی زاره یک خط کد رو هم ببینی

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

دوست عزيز ميشه بگيد كه طرز استفاده از اين كدها جهت قفل كردن DLL چجوريه؟ ممنون

DoDoklak
چهارشنبه 12 آبان 1389, 16:48 عصر
دوست عزيز ميشه بگيد كه طرز استفاده از اين كدها جهت قفل كردن DLL چجوريه؟


اگر منظورت مخفی کردن سورس dll هستش خیلی راحته کافیه نرم افزار مورد نظر رو داشته باشی و اونوقت خود برنامه فایل مربوطه رو ازت میگیره و گزینه هایی هم داره که تیک میزنی و بعد فایل خروجی قفل شده رو تحویلت میده

حجمش 51MB هستش البته نسخه 5.5 چون زیاده وقت ندارم برات بزارم
نسخه کرک شده آخرین ورژن نرم افزار مربوطه در اینترنت موجوده بگرد پیدا میکنی(البته یکم مشکل پیدا میشه من یکماه دنبالش بودم تا آخرین ورژن رو گیر آوردم)
اگر هم پیدا نکردی بگو تا اون لینکی که من ازش دانلود کردم دوباره برات پیدا میکنم(چون الان یادم نیست از کجا گرفتمش)

crying sphere
دوشنبه 24 آبان 1389, 15:53 عصر
اگر منظورت مخفی کردن سورس dll هستش خیلی راحته کافیه نرم افزار مورد نظر رو داشته باشی و اونوقت خود برنامه فایل مربوطه رو ازت میگیره و گزینه هایی هم داره که تیک میزنی و بعد فایل خروجی قفل شده رو تحویلت میده

حجمش 51MB هستش البته نسخه 5.5 چون زیاده وقت ندارم برات بزارم
نسخه کرک شده آخرین ورژن نرم افزار مربوطه در اینترنت موجوده بگرد پیدا میکنی(البته یکم مشکل پیدا میشه من یکماه دنبالش بودم تا آخرین ورژن رو گیر آوردم)
اگر هم پیدا نکردی بگو تا اون لینکی که من ازش دانلود کردم دوباره برات پیدا میکنم(چون الان یادم نیست از کجا گرفتمش)


اگه لينكشو بدي ممنون ميشم

DoDoklak
دوشنبه 24 آبان 1389, 18:00 عصر
اگه لينكشو بدي ممنون ميشم



http://www.accuratefiles.com/download/smartassembly