ورود

نسخه کامل مشاهده نسخه کامل : گذاشتن سکیوریتی رجیستری روی فایل exe



aslaniaa
25-02-2012, 22:49
سلام
من یکی از دوستانم از برنامه نویسی سر رشته داره.من یک نرم افزار درست کرده بودم و تنها فایل اجرایی آن رو به دوستم دادم و اونم وقتی به من برگردوند یک سکیوریتی باحال روی اون انداخته بود.
وقتی برنامه باز میشد ازت میخواست رجیسترش کنی.و چند نوع پسورد داشت پسورد های چند روزه چند ساعته چند ماهه و چند ساله.مثلا اگه پسورد 2 ساله داشتی باهاش تا دوسال کار میکرد بعدش دوباره و این بار یک رمز دیگه میخواست!!!
از جایی که رمزو میخواست یک تصویر هم گذاشتم.
خیلی خوشم اومده بود.

حالا چند تا سوال دارم:
1-آیا خودش برنامه نویسیش کرده بود یا از نرم افزار خاصی استفاده کرده بود؟؟
2-کسی هست برای من یک کار اینجوری درست کنه؟(صلواتی-رفاقتی -هرچی دوست داری اسمشو بزار)



[ برای مشاهده لینک ، لطفا با نام کاربری خود وارد شوید یا ثبت نام کنید ]
دوستان خیلی برام مهمه راهنمایی کنید

pejman taghipoor
09-05-2012, 13:10
سلام
من یکی از دوستانم از برنامه نویسی سر رشته داره.من یک نرم افزار درست کرده بودم و تنها فایل اجرایی آن رو به دوستم دادم و اونم وقتی به من برگردوند یک سکیوریتی باحال روی اون انداخته بود.
وقتی برنامه باز میشد ازت میخواست رجیسترش کنی.و چند نوع پسورد داشت پسورد های چند روزه چند ساعته چند ماهه و چند ساله.مثلا اگه پسورد 2 ساله داشتی باهاش تا دوسال کار میکرد بعدش دوباره و این بار یک رمز دیگه میخواست!!!
از جایی که رمزو میخواست یک تصویر هم گذاشتم.
خیلی خوشم اومده بود.

حالا چند تا سوال دارم:
1-آیا خودش برنامه نویسیش کرده بود یا از نرم افزار خاصی استفاده کرده بود؟؟
2-کسی هست برای من یک کار اینجوری درست کنه؟(صلواتی-رفاقتی -هرچی دوست داری اسمشو بزار)



[ برای مشاهده لینک ، لطفا با نام کاربری خود وارد شوید یا ثبت نام کنید ]
دوستان خیلی برام مهمه راهنمایی کنید

اگه یاد گرفتی ممنون میشم به منم یاد بدی.

_H2_
24-05-2012, 15:22
سلام
برای اینکار اول نیاز به استخراج یک سریال منحصر بفرد از سخت افزار سیستم فرد دارید، مثل مادربور یا هارد و... (تا کدفعال سازی تولید شده شما فقط روی همان رایانه کار

کند)
برای اینکار میتوانید از System.Management.dll و فضای نام مربوطه استفاده کنید.

سپس کد مذکور را با یک الگوریتم هش به طول ثابت تبدیل کنید.
مثلاً با الگوریتم MD5 که از طریق کلاس آماده System.Security.Cryptography.MD5 میتوانید.

الگوریتم MD بدون توجه به حجم ورودی یک کد ثابت 16 بایتی میدهد که برای نمایش به کاربر میتوانید با ------ استفاده کنید.
برای این کار هم و توابع آماده System.Convert اموجود هستند و 26 کاراکتر انگلیسی قابل رویت به مشتری نشان میدهید.

برای مشاهده محتوا ، لطفا وارد شوید یا ثبت نام کنید

این کدی است که برنامه روی رایانه کاربر اعلام میکند و از او درخواست میکند طبق این کد، کد فعال سازی را وارد نماید.
(مشتری میتواند کد فوق را از طریق SMS یا سایت و یا تلفن و... به شما اعلام کند و کدنظیر فعال سازی را دریافت کنید.)

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


(((
یعنی شما همان کد سخت افزاری را که رایانه مشتری تولید کرده و به شما داده به همان صورت یا با هش کوچکتری در داخل کد فعال سازی خود هم جای میدهید!
چرا؟!
برنامه که روی رایانه مشتری است پس از گرفتن کد فعال سازی کد هش سخت افزاری داخل آن را با کد هش ای که خودش تولید کرده مقایسه میکند و مثلاً در صورت عدم برابری نتیجه

میگیرد این کد فعال سازی برای رایانه دیگری صادر شده و نباید کار کند و بلعکس ...
)))


کد فعال سازی که شامل اطلاعات سریالی شده فوق است را باید رمزنگاری کنید تا محتویات ان مشخص نشود.
مثلاً برای اینکار میتوانید از الگوریتم DES استفاده کنید و 7 بایت یا 15 بایت را به ان بدهید و در نهایت 8 بایت یا 16 بایت رمزنگری شده را تحویل بگیرید.
برای اینکار میتوانید از کلاس آماده System.Security.Cryptography.DES استفاده کنید.



(((

دقت کنید که تولید مقادیر 7 بایت یا 15 بایت در اینکار و با استفاده از DES خیلی مهم است.
چون اولاً آنکه در سریال فعال سازی شما نمیتوانید تعداد بایت زیادی را منتقل کنید
و دوماً الگوریتمی مثل DES بین حداقل 1 الی حداکثر 8 بایت سربار رمزنگاری دارد.
یعنی مثلاً اگر 7 بایت را برای رمز نگاری به DES بدهید 8 بایت پس میدهد ولی
اگر 8 بایت را بدهید رمزنگاری کند 16 بایت پس میدهد.

یعنی یک بایت اختلاف باعث تفاوت نشان دادن 13 کاراکتر انگلیسی در مقابل 26 کاراکتر خواهد شد.

)))


این کد را هم به همان صورت ------ گفته شده به کاربر میدهید تا در برنامه وارد کند.
بقیه فرآیند معکوس اعمال فوق الذکر است.
یعنی برنامه کد فعال سازی را میگیرد و با DES رمزگشایی میکند و کد سخت افزاری ان را مقایسه میکند و پس از صحت ، محدودیت های ان را برای کارکرد جاری خود اعمال میکند.


اگر شروع به برنامه نویسی فرآیند فوق کردید و هرجایی به مشکل برخوردید، بفرمائید در خدمت هستم ولی فرصت کافی برای ساخت و ارائه برنامه نمونه را ندارم.


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

زمان بر کمتر شود...
)))


موفق باشید.

aslaniaa
27-05-2012, 16:26
خیلی ممنون دوست عزیز
واقعا مفید بود.