مشاهده نسخه کامل
: لایسنس برای برنامه
aliaghaaaaa
22-10-2013, 17:25
سلام.
چطور می تونیم برنامه امون رو بصورت تریال عرضه کنیم؟
در واقع بهترین راه که بشه عملیش کرد و امن هم باشه چیه؟
ممنون.:n26:
سلام
به راه های متعدد میتوان این کار را انجام داد.
ساده ترین راه ارائه یک نسخه متفاوت برای دوره آزمایشی است که مدت زمان کارکرد یا دفعات اجرا را در قالب یک داده رمزنگاری شده در فایلی یا در رجیستری نگاه دارد ولی مشکلی که دارد آن است که اگر کسی متوجه فایل یا کلید رجیستری شود (که خواهد شد) میتواند با تعویض و به نوعی فریز کردن آن فایل زمان برنامه تان را نامحدود کند.
راه بهتر بعدی دریافت سریال فعال سازی دوره تریال از یک وب سایت یا با یک پیامک است.
برنامه شما اول یک کدهش از سخت افزار رایانه مشتری میدهد.
کاربر این کد را در سایت وارد کرده یا پیامک میکند و کد فعال سازی را دریافت میکند.
کد فعال سازی باید یک شامل هش کوچکی از کد فعال سازی + تاریخ ابتدای فعال سازی باشد.
برنامه کد فعال سازی دریافت شده را پس از اعتبار سنجی در فایل یا رجیستری ذخیره میکند.
مزیتی که این روش ارائه میدهد ان است که سرور میتواند فهرستی از رایانه هایی که کد فعال سازی گرفته اند را ذخیره کند و به یک رایانه دوبار کد فعال سازی ندهد. (یک سد بیشتر)
در این روش اگر محل ذخیره در فایل یا رجیستری فاش شود با کپی-بازیابی یا هر نوع فریز دیگری روی فایل باز هم برنامه حداقل یک تاریخ شروع فریز شده را دارد که منجر میشود کاربر مجبور شود ساعت سیستم را هم فریز کند (یک پله کار سختر میشود) و اگر برنامه دیتابیسی و سند گرا باشد (مانند یک برنامه فاکتور یا حسابداری) این فریز زمان عملاً استفاده از برنامه را غیر عملی میکند، مخصوصا که برنامه نویس تاریخ فیلدهای ورودی را روی محدوده تریال قفل کرده باشد. (بازهم یک پله سختر البته برای برنامه هایی که تاریخ روز برایشان مهم است)
و...
aliaghaaaaa
26-10-2013, 10:45
سلام.
ممنون از ارائه مطالبتون.
من از این روش استفاده می کنم:
تاریخ شروع برنامه و اینکه برنامه قابل استفاده باشه یا نه رو با الگوریتم MD5 کد می کنم و توی دیتابیس برنامه می زارم.
از اونجایی که اطلاعات کد شده قابل تغییر نیست.
البته مشکل فریز کردن تاریخ هم هست.
اما اگه امکانش هست یه توضیح روی روشتون بدین. اینکه چطور میشه کد هش از اطلاعات سخت افزار درست کرد و اینکه چطور میشه تو رجیستری ریختش.
ممنون.
سلام
در ساده ترین حالت ممکن میتوان گفت:
برنامه در رایانه کاربر اجرا شده و سریال پردازنده یا هارد و... را در می آورد.
این سریال طول ثابتی ندارد و به همین شکا خیلی هم ایمن نیست
در نتیجه سریال فوق از یک الگوریتم هش مانند md5 رد میشود و دیتایی با طول ثابت ایجاد میشود.
به عنوان نمونه 16 بایت یا یک متن 22 حرفی ------ یا 26 حرفی base32 یا 32 حرفی hex که به کاربر نشان داده میشود.
کاربر کد فوق را با سایت، تلفن یا پیامک که برنامه ای در سرور شرکت تحویل میدهد.
برنامه در سرور شرکت کد فوق را آزمایش میکند که قبلاً در دیتابیس اش ثبت نشده نباشد.
و سپس تاریخ نهایی که برنامه کارکند یا تعداد دفعات اجرا و... و نیز یک هش کوچک (مثلاً xor 32 bit) از کد اولیه را سریالی و رمزنگاری میکند و به کاربر میدهد.
کاربر کد فوق را در برنامه وارد میکند و برنامه پس از رمزگشایی کد فوق هش کوچک را با هش کوچک خود چک میکند که برابر باشد و سریال مربوط به خودش باشد
در نهایت برنامه تا تاریخ تایین شده در کد فعال ساز کار میکند
یا اگر برنامه دیتابیسی و مالی باشدو بیشتر هم کار کند حداقلش آن است که در فیلدهای تاریخی اش (مانند تاریخ سند حسابداری یا تاریخ فاکتور و...) نمیگذارد خارج از تاریخ فوق انتخاب شود.
در این بین میتوان کدی بعنوان سریال CD یا سریال خرید را هم از کاربر دریافت کرد و سرور در صورت صحت آن و عدم استفاده خارج از تعداد مشخص، کد فعال سازی نهایی را صادر کند.
الگوریتمی شبیه این
برای مشاهده محتوا ، لطفا وارد شوید یا ثبت نام کنید
موفق باشید.
aliaghaaaaa
01-11-2013, 10:57
سلام.
متشکرم.
حالا چطور میشه کد سخت افزار رو خوند؟
من قبلا در این مورد تحقیق کردم ولی نتونستم بفهمم چطور کار میکنه.
میشه لطفا یه توضیح کامل بدین؟
ممنون.
سلام
برای دریافت اطلاعات سخت افزاری میتوانید از کتابخانه System.Management.dll استفاده کنید.
مثال:
به عنوان نمونه کد زیر سریال اولین هارد را برمیگرداند:
برای مشاهده محتوا ، لطفا وارد شوید یا ثبت نام کنید
و...
موفق باشید.
aliaghaaaaa
10-11-2013, 13:30
سلام.
برنامه من به ManagementObjectSearcher اررور میده و میگه namespace اون رو نمیشناسه:
برای مشاهده محتوا ، لطفا وارد شوید یا ثبت نام کنید
سلام
همانطورکه در پست قبلی اشاره ای کردم، باید اسمبلی System.Management.dll را reference کنید.
vBulletin , Copyright ©2000-2025, Jelsoft Enterprises Ltd.