PDA

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



daneshjo90
چهارشنبه 13 اردیبهشت 1391, 01:47 صبح
سلام خدمت همه عزيزان
من ميخوام يه برنامه بنويسم واسه يه شركت و اينم بگم كه اين اولين برنامه اي هست كه به طور رسمي مينويسم
حالا هم چون ميدونم خيلي هاي ديگه هم به اين برنامه نياز دارم ميخوام يه قفل نرم افزاري براش طراحي كنم .
ولي نميدونم چطوري
البته نظر من اينه كه من اولش بيام شماره سريال مادربورد رو پيدا كنم بعد از اين كه شخص اين كد رو براي من ارسال كرد براش كد فعال سازي بفرستم
اگه كسي هست كه بتونه راهنمايي كنه منو ممنونش ميشم
ببخشيد زياد نوشتن و طولاني شد
بازم تشكر ميكنم از كسايي كه راهنمايي و كمك ميكنن بنده ي حقير رو

bozhmehrani
چهارشنبه 13 اردیبهشت 1391, 06:25 صبح
خواهش،ببین دوست عزیز پیشنهاد منم به شما اینه که شماره مادر برد،شماره هارد ،شماره سیپییو رو بگیری و با یک الگوریتم ترکیب بکنی و با اعمال یک تابع(فرمول) یک مقدار نهایی بدست بیاری
و اون مقدارو تو ریجیستری و یا بانک و یا فایل با یه فرمت hashشده ذخیره بکنی و هربار برا ورود به برنامه ات اونو چک کنی که آیا درست است یاخیر.
بگردی تواین سایت مطلب در این مورد هست.زحمت سرچو به خودت بده

daneshjo90
چهارشنبه 13 اردیبهشت 1391, 19:31 عصر
ميبخشي ها ولي منم ميدونم كه از اين موضوع هست تو سايت ولي كسي آموزش قفل نرم افزاري رو نذاشته فقط يه نفر اومده يه قفل نرم افزاري گذاشته اونجا و كاري به آموزش دادن اون نداره
واسه همين خواستم آموزشش باشه

ya30ien2
چهارشنبه 13 اردیبهشت 1391, 20:37 عصر
اگه کسی بتونه حداقل کد گرفتن سریال مادربرد و hash کردن اون و اینکه چطوری این کد رو که هش شده بگیریم و یک کد دیگه به نرم افزار بدیم که این به عنوان یک قفل نرم افزاری جواب بده رو آموزش بده خیلی ها از جمله خود من لازم داریم و از بابت آموزش خیلی خیلی ممنون میشیم

bozhmehrani
چهارشنبه 13 اردیبهشت 1391, 21:48 عصر
چه آموزشی بهتر از دیدن نمونه کار.همون برنامه ای که تو سایت هست من خودم دارم با استفاده از همون کدها شماره هاردو مادربرد و گرفتم
واسه هش کردنم یک کلاس هم تو همون برنامه و هم تو همین سایت هست که مس تونی استفاده بکنی.اونقدا هم کاره مشکلی نیست

ya30ien2
چهارشنبه 13 اردیبهشت 1391, 21:55 عصر
دوست عزیز اگه امکان داره لطفا یک نمونه کار قرار بدید تا ما هم بتونیم انجام بدیم

daneshjo90
چهارشنبه 13 اردیبهشت 1391, 23:23 عصر
من نميدونم تو اين دوره زمونه وقتي به كسي ميگي آموزش فك ميكنه داريم بهش ناسزا ميگيم:عصبانی:
بابا من ميخوام ياد بگيرم و خودم طراحي كنم نميخوام كه از مال اينو اون استفاده كنم :ناراحت:
يعني اينجا همه بايد به نمونه كار نگا كنن و ياد بگيرن ؟:عصبانی:
آخه همه هم كه مثل شما ها نيستن كه با نگا كردن ياد بگيرن
تورو خدا يادم بديد خيلي زياد لازم دارمش :ناراحت::افسرده:

daneshjo90
پنج شنبه 14 اردیبهشت 1391, 15:54 عصر
يعني كسي نيست كه كمكي بكنه ؟؟؟؟؟؟؟؟؟؟؟؟؟؟؟؟؟؟؟؟؟؟؟؟؟ ؟؟؟؟؟؟؟؟؟؟؟؟؟؟؟؟؟؟؟؟؟؟؟؟؟ ؟؟

Yanehsar
پنج شنبه 14 اردیبهشت 1391, 17:13 عصر
چه آموزشی بهتر از دیدن نمونه کار.همون برنامه ای که تو سایت هست من خودم دارم با استفاده از همون کدها شماره هاردو مادربرد و گرفتم
واسه هش کردنم یک کلاس هم تو همون برنامه و هم تو همین سایت هست که مس تونی استفاده بکنی.اونقدا هم کاره مشکلی نیست

سلام محبت کنید و لینک تاپیک رو بذارید من خودم 10 ها عنوان مختلف از این موضوع تو سایت دیدم اما هیچ کدوم نمونه کار ندارند یا اگر هم دارند خودشون تو تایپک های بعدی مشکل داشتند.

pedram.11
پنج شنبه 14 اردیبهشت 1391, 17:48 عصر
سلام من با این مدل قفل از طریق wmi کار کردم اما نمیدونم چرا روی اکثر سیستم ها هچی نمینویسه، من از کد مادربرد سی پی یو و هارد اسفاده کردم و روی سیستم خودم و بعضی سیستم های دیگه کارمیکرد اما توی بیشتر سیستم ها این سریال ها خالی بودن !!!

hosseinenayati_2009
جمعه 15 اردیبهشت 1391, 00:28 صبح
سلام خدمت همه عزيزان
من ميخوام يه برنامه بنويسم واسه يه شركت و اينم بگم كه اين اولين برنامه اي هست كه به طور رسمي مينويسم
حالا هم چون ميدونم خيلي هاي ديگه هم به اين برنامه نياز دارم ميخوام يه قفل نرم افزاري براش طراحي كنم .
ولي نميدونم چطوري
البته نظر من اينه كه من اولش بيام شماره سريال مادربورد رو پيدا كنم بعد از اين كه شخص اين كد رو براي من ارسال كرد براش كد فعال سازي بفرستم
اگه كسي هست كه بتونه راهنمايي كنه منو ممنونش ميشم
ببخشيد زياد نوشتن و طولاني شد
بازم تشكر ميكنم از كسايي كه راهنمايي و كمك ميكنن بنده ي حقير رو

سلام شما به این سایت سر بزنیدشرکت سامین سافت ، www.gns.ir (http://www.gns.ir)

daneshjo90
جمعه 15 اردیبهشت 1391, 17:00 عصر
سلام شما به این سایت سر بزنیدشرکت سامین سافت ، www.gns.ir (http://www.gns.ir)

سلام
ممنون از راهنماييتون ولي من نميخوام كه قفل نرم افزاري بخرم
من ميخوام خودم يه قفل بسازم اونم هر طوري كه خودم بخوام نه فايل آماده قفل يه شركت ديگه رو
بازم ممنون از وقتي كه گذاشتيد

daneshjo90
جمعه 15 اردیبهشت 1391, 21:02 عصر
بازم سلام
ميخواستم بگم كه من سريال CPU و سريال HDD رو بدست آوردم ولي نميدونم چطوري و با چه الگوريتمي كه يكمي هم پيچيده باشه اينارو به يه عدد 6 رقمي تبديل كنم
اگه كسي هست كمك كنه
باور كنيد لازم دارم
ميشه كمك كنيد؟

mrbm_2007
شنبه 16 اردیبهشت 1391, 03:01 صبح
سلام
یه نمونه ساده میذارم امیدوارم برای شروع مفید باشه

string GetHSN(){
string cpuInfo = string.Empty;
try
{
ManagementObjectSearcher searcher =
new ManagementObjectSearcher("root\\CIMV2",
"SELECT ProcessorId,Caption FROM Win32_Processor");

foreach (ManagementObject queryObj in searcher.Get())
{
try
{
cpuInfo += queryObj["ProcessorId"].ToString();
}
catch { }
try
{
cpuInfo += queryObj["Caption"].ToString();
}
catch { }
}
}
catch
{
var mc = new ManagementClass("win32_Processor");
var moc = mc.GetInstances();
foreach (ManagementObject mo in moc)
{
cpuInfo += mo.Properties["processorID"].Value.ToString();
break;
}
}

string DiskInfo = string.Empty;
try
{
var searcher = new ManagementObjectSearcher("root\\CIMV2",
"SELECT SerialNumber,MediaType,Size FROM win32_DiskDrive");
foreach (ManagementObject queryObj in searcher.Get())
if (queryObj["MediaType"].ToString().ToLower().Contains("fixed hard disk media"))
{
try
{
DiskInfo = queryObj["SerialNumber"].ToString();
}
catch { }
try
{
DiskInfo = queryObj["Size"].ToString();
}
catch { }
break;
}
}
catch
{
var mc = new ManagementClass("win32_DiskDrive");
var moc = mc.GetInstances();
foreach (ManagementObject mo in moc)
if (mo.Properties["MediaType"].Value.ToString().ToLower().Contains("fixed hard disk media"))
{
DiskInfo = mo.Properties["SerialNumber"].Value.ToString();
break;
}
}

string BaseBoardInfo = string.Empty;
try
{
var searcher = new ManagementObjectSearcher("root\\CIMV2",
"Select SerialNumber from Win32_BaseBoard");
foreach (ManagementObject queryObj in searcher.Get())
{
try
{
BaseBoardInfo += queryObj["SerialNumber"].ToString();
}
catch { }
}
}
catch
{
var mc = new ManagementClass("Win32_BaseBoard");
var moc = mc.GetInstances();
foreach (ManagementObject mo in moc)
DiskInfo += mo.Properties["SerialNumber"].Value.ToString();
}

var ID = cpuInfo + "+" + DiskInfo + "+" + BaseBoardInfo;
ID = md5(MyHash(ID)) + " ";
var res = "";
string pat = "2QAM456VWXE3GSL789ZYKHJTNPURFBCD1";
for (int i = 0; i < 33; i += 3)
{
var j = ID[i] + ID[i + 1] + ID[i + 2];
res += pat[j % pat.Length];
}
return res.ToUpper();
}


-----------
تکمیل : مراجعه کنید به دوتا پست بعد (16# (http://barnamenevis.org/showthread.php?339526-%D9%82%D9%81%D9%84-%D9%86%D8%B1%D9%85-%D8%A7%D9%81%D8%B2%D8%A7%D8%B1%D9%8A&p=1499982&viewfull=1#post1499982))

mrbm_2007
شنبه 16 اردیبهشت 1391, 03:06 صبح
البته به بحث امنیت هم بسیار توجه داشته باشید، به خصوص در برنامه نویسی با #C و بطور کلی محصولات Net. چون به راحتی کد برنامه از فایل exe و یا dll قابل استخراج هست.اگر قفلی نوشتید بد نیست برای امتحان توی تالار امنیت در نرم افزار و برنامه نویسی (http://barnamenevis.org/forumdisplay.php?66-%D8%A7%D9%85%D9%86%DB%8C%D8%AA-%D8%AF%D8%B1-%D9%86%D8%B1%D9%85-%D8%A7%D9%81%D8%B2%D8%A7%D8%B1-%D9%88-%D8%A8%D8%B1%D9%86%D8%A7%D9%85%D9%87-%D9%86%D9%88%DB%8C%D8%B3%DB%8C) در قسمت CrakMe کار خودتون رو محک بزنید. 3 سوته قفل رو کرک خواهند کرد!!!

mrbm_2007
شنبه 16 اردیبهشت 1391, 13:32 عصر
در پست قبل یادم رفت این تابع رو بذارم

private static string md5(string str)
{
byte[] textBytes = System.Text.Encoding.Default.GetBytes(str);
try
{
System.Security.Cryptography.MD5CryptoServiceProvi der cryptHandler;
cryptHandler = new System.Security.Cryptography.MD5CryptoServiceProvi der();
byte[] hash = cryptHandler.ComputeHash(textBytes);
string ret = "";
foreach (byte a in hash)
ret += ((a < 16) ? "0" : "") + a.ToString("x");
return ret;
}
catch
{
throw;
}
}


در قسمت using هم اضافه کنید

using System.Management;


و System.Management رو هم به References اضافه کنید.

Yanehsar
شنبه 16 اردیبهشت 1391, 20:09 عصر
سلام خطا میده از این دو برنامه :


System.Security.Cryptography.MD5CryptoServiceProvi der cryptHandler;
cryptHandler = new System.Security.Cryptography.MD5CryptoServiceProvi der();

mrbm_2007
یک شنبه 17 اردیبهشت 1391, 03:48 صبح
آخه دقیق بگو چه خطایی میده! متن خطا رو بذار. اینجوری من چه جوابی می تونم بدم؟
شاید بخاطر این فاصله ی اضافه است که اینجا افتاده

MD5CryptoServiceProvi der
که باید باشه

MD5CryptoServiceProvider

که این مشکل مربوط به نحوه ی نمایش تگ کد توی این سایته (نمی دونم چرا اینجوری نشونش میده!!!!)

Yanehsar
یک شنبه 17 اردیبهشت 1391, 08:53 صبح
آخه دقیق بگو چه خطایی میده! متن خطا رو بذار. اینجوری من چه جوابی می تونم بدم؟
شاید بخاطر این فاصله ی اضافه است که اینجا افتاده

که باید باشه


که این مشکل مربوط به نحوه ی نمایش تگ کد توی این سایته (نمی دونم چرا اینجوری نشونش میده!!!!)

سلام این 5 تا خطا رو میده

Only assignment, call, increment, decrement, and new object expressions can be used as a statement
Error 2 The type or namespace name 'MD5CryptoServiceProvidercryptHandler' does not exist in the namespace 'System.Security.Cryptography' (are you missing an assembly reference?)
Error 3 The name 'cryptHandler' does not exist in the current context
Error 4 The name 'cryptHandler' does not exist in the current context
Error 5 The name 'MyHash' does not exist in the current context

asemaneiran
یک شنبه 17 اردیبهشت 1391, 09:24 صبح
آخه دقیق بگو چه خطایی میده! متن خطا رو بذار. اینجوری من چه جوابی می تونم بدم؟
شاید بخاطر این فاصله ی اضافه است که اینجا افتاده

که باید باشه


که این مشکل مربوط به نحوه ی نمایش تگ کد توی این سایته (نمی دونم چرا اینجوری نشونش میده!!!!)

سلام دوستان
ببخشید آقای mrbm_2007
من از این بحث خوشم اومد
خواستم نمونه شما رو امتحان کنم
ممکنه توضیح بدید این کدها رو کجا باید بنویسم ؟و چطور کار میکنه؟ و مورد استفاده اش چجوری هاست؟؟؟
ممنون

mrbm_2007
یک شنبه 17 اردیبهشت 1391, 15:15 عصر
باشه من یک پروژه ی نمونه آماده می کنم و اینجا آپلود می کنم

mrbm_2007
یک شنبه 17 اردیبهشت 1391, 15:46 عصر
اینم یه نمونه همراه فایل پروژه
86728

ya30ien2
یک شنبه 17 اردیبهشت 1391, 15:46 عصر
اگه نمونه یزارید عالی میشه
بازم ممنون که یک نفر همکاری میکنه

daneshjo90
دوشنبه 18 اردیبهشت 1391, 01:14 صبح
http://www.pic1.iran-forum.ir/images/up5/24633387086455524422.jpg
تو اين عكس شماره 1 تو همه كامپيوتر ها فقط همين شمارست
چون بيش از 10 كامپيوتر امتحانش كردم
شماره 2 نميدونم چرا خالي هستن
اما شماره 3
اين چيه و چطوري بدست آورديش ؟
هميشه اين تعداد عدد هست يا متغيير هست و تو سيستم هاي ديگه تعداد عدد فرق ميكنه
يعني تو بعضي هاش 6 تا بعضي هاش 8 تا كه نيست ؟
ممنون از راهنمائيت

mrbm_2007
دوشنبه 18 اردیبهشت 1391, 01:26 صبح
ولی من خودم تست کردم هر 3 شماره رو نشود داد
86757
ویندوز 7

شماره سومی هم مربوط به مادربورد میشه

نحوه ی بدست آوردن هر کدوم هم توی کد هست می تونی نگاه کنی
در ضمن من کد بدست آوردن سریال نامبر ها رو توی بلوک try گذاشتم و اررور ها رو نشون نمیده، می تونی try ها رو برداری تا اگر خطایی توی بدست آوردن سریال ها رخ داد نشون بده

macsharp
دوشنبه 18 اردیبهشت 1391, 04:07 صبح
یه قفل خوب , قفلی هست که برنامه با توجه به مشخصات برنامه , سخت افزار هایی که ثابتن و احتمال تعویض کمی دارن باید کار کنه
مثلاً هارد دیسک احتمال تعویض یا سوخت و سوزش زیاده و شاید چند تا هارد دیسک دیگه به سیستم اضافه بشه
به نظر من تنها میشه به مادر بورد اطمینان کرد
این هم که همه نسخه های برنامه رو با یک کد بدیم دست مردم کار جالبی نیست
اگه برنامه بزرگی نوشتین باید یه سرور هم بگیرین هر نسخه برنامه رو با یه کد بفروشین و تو یه دیتابیس همه رو کد شده نگهداری کنین
بعد فروش این کد و به همراه کد تولیدی متشکل از هرچی که دوست دارین به سرور فرستاده میشه و برنامه روی سرور با توجه به اینا یه فایل برای مشتری بر میگردونه که کنار نرم افزارش باید قرار بگیره
اگر هنگام باز کردن نرم افزار فایل بود و کد تولیدی نرم افزار با کد تو این فایل یکی بود برنامه به کاره خودش ادامه میده
سرور هم به این خاطر هست که هر نسخه رو فقط یه نفر استفاده کنه چون کد اون نرم افزار تو بانک ثبت هست و موقع رجیستر به نام فرد ثبت میشه یا میشه گفت فروخته شده
نفر دوم با فایلی که ما فرستادیم (اوتوماتیک) نمیتونه کار کنه چون سخت افزارش فرق میکنه و باید فایل رو از سرور بگیره که خب نمیتونه

از همه مهم تر باید فایل اجرایی برنامه رو با برنامه هایی مثل DotNet Reactor کد کرد تا نتونن الگوریتم ما رو از تو فایل اجرایی بکشن بیرون

موفق باشین:لبخندساده:

ya30ien2
دوشنبه 18 اردیبهشت 1391, 11:41 صبح
دوستان من یه نرم افزار حسابداری گرفته بودم و وقتی میخواستی نصبش که باید کدی رو که بهت تحویل میداد اس ام اس کنی و یه کد اس ام اس میشد اون رو وارد میکردی که نرم افزار فعال بشه
حالا جالبیش اینجا بود که در هر بار اجرا کدش عوض میشد منظورم اینه که تا قبل وارد کردن کد فعال سازی اگه برنامه رو میبستیم و دوباره اجرا میکردیم یه کد جدید تحویل میداد که فقط هفت حروف اول همیشه ثابت بود و بقیه تغییر میکرد میشه در مورد این هم یکم توضیح بدید؟

daneshjo90
سه شنبه 19 اردیبهشت 1391, 00:46 صبح
86757


شماره سومی هم مربوط به مادربورد میشه


ببينم ميشه يه كاري كنيم ؟
من بيام همين سريال هست كه با شماره 3 نشون دادم رو به عنوان كد كاربري از كاربر بگيرم و براش كد فعال سازي بسازم ؟
اگه ميشه ممنون ميشم كمكم كنيد

takonlineIR
دوشنبه 22 خرداد 1391, 11:58 صبح
اینم یه نمونه همراه فایل پروژه
86728

سلام ممنون از نمونه کد، این کد رو در ویندوز 7 اجرا کردم هر سه ای دی رو برگردوند، اما روی ویندوز XP که در ویرچال نصب بود امتحان کردم فقط کد سی پی یو رو برگردوند!!!

این کد همیشه اخر سر کد 8 رقمی برمیگردونه؟

mrbm_2007
دوشنبه 22 خرداد 1391, 14:17 عصر
سلام ممنون از نمونه کد، این کد رو در ویندوز 7 اجرا کردم هر سه ای دی رو برگردوند، اما روی ویندوز XP که در ویرچال نصب بود امتحان کردم فقط کد سی پی یو رو برگردوند!!!

این کد همیشه اخر سر کد 8 رقمی برمیگردونه؟

ممکنه بخاطر مجازی بودن (virtual) سریال سخت افزارها را نگرفته باشه
آره با ترکیب این سریال ها یک کد 8 حرفی تولید می کنه

hamid1988
پنج شنبه 25 خرداد 1391, 17:35 عصر
دوستان من یه سوال در مورد روند ارائه رمز به کاربر دارم.
فرض کنید ما شماره سریال هارد یا .... رو گرفتیم و اون رو با شماره ای که همراه با پکیج به کاربر میدیم توسط الگوریتم های خاصی، عددی رو تولید کردیم و کاربر عدد رو با اس ام اس به ما فرستاد و ما در سرور برای بدست آوردن شماره هارد و یا غیره به دو عدد (سریال روی پک و عدد تولید شده) نیاز خواهیم داشت. در حالی که کاربر فقط عدد تولید شده رو برای ما فرستاده.

daneshjo90
دوشنبه 29 خرداد 1391, 12:15 عصر
سلام منظور شما از سريال روي پك فك كنم كد خريد باشه كه كاربر بعد از واريز پول به حساب از برنامه نويس ميگيره
من خودم دارم يه برنامه مينويسم كه هم كد خريد توليد ميكنه و هم كد فعالسازي كه كد خريد رو با استفاده از برنامه هاي رندوم ساز كه امكان تكرار خيلي كمي دارن ميسازم ولي كد فعال سازي رو بر اساس الگوريتمي كه فقط خودم ميدونم دارم ميسازم
كد كاربري كه تو سيستم شخص هم تويلد ميشه همين كد 8 حرفي هست كه mrbm_2007 عزيز زحمتشو كشيد
ري سيستم هاي زيادي امتحانش كردم خيلي هم عالي جواب داده ولي هنوزم كه هنوزه ميترسم خيلي زود كرك بشه
چون من اين قفل رو براي يه نرم افزار كه مورد استفاده خيلي ها هست ميخوام بزارم
چون اگه قفلم كرك بشه ديگه هيچ درآمدي از اين برنامه نخواهم داشت
اگه كسي هست كه بتونه كمكم كنه ممنون ميشم
در ضمن يادم رفتن بگم
شما وقتي كد خريد رو به كاربر چه بعد از واريز پول به حساب يا اگه با پكيج ميفروشيد روي پكيج ميزاريد از كاربر ميخواهيد كه كد خريد رو همراه كد كاربري به شما اس ام اس بفرسته
با كد كاربري كد فعالسازي توليد ميكنيد و با كد خريد رو تو سيستم ذخيره ميكنيد تا اگه شخص ديگه اي خواست از اين برنامه استفاده كنه كد خريد رو نتونه دوباره براتون ارسال كنه و بايد كد خريد از شما خريداري كنه
مي بخشيد طولاني شد

barnamenevisjavan
دوشنبه 29 خرداد 1391, 12:50 عصر
سلام این همه سوال جواب نداره میتونید از این نمونه کد و کامپوننت استفاده کنید خیلی خوبه
توی کد برنامه جایی هست که نوشته شده password شما باید هرجا این کلمه رو دیدین بجاش مثلا بزارین mahdi (که به عنوان کلید هستش) بعدش توی کیجن برنامه وارد کنید و رمز فعال سازی استخراج کنید و بدید به کاربر
برنامه به اصل به زبون وی بی دات نت بود توی یه پروژه لازم شد به سی شارپ تبدیل کنم

daneshjo90
دوشنبه 29 خرداد 1391, 13:09 عصر
سلام این همه سوال جواب نداره میتونید از این نمونه کد و کامپوننت استفاده کنید خیلی خوبه
توی کد برنامه جایی هست که نوشته شده password شما باید هرجا این کلمه رو دیدین بجاش مثلا بزارین mahdi (که به عنوان کلید هستش) بعدش توی کیجن برنامه وارد کنید و رمز فعال سازی استخراج کنید و بدید به کاربر
برنامه به اصل به زبون وی بی دات نت بود توی یه پروژه لازم شد به سی شارپ تبدیل کنم

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

barnamenevisjavan
دوشنبه 29 خرداد 1391, 13:29 عصر
میدونم من فکر کردم کارت لنگ باشه گفتم بهت بدم کارت راه بیوفته توی تالار وی بی دات نت در رابطه با این کامپوننت کلی بحث شده سازندش هم حضور داره alimanam
در هر صورت این برنامه هم بهت یه جورایی کمک میکنه

rana-writes
دوشنبه 29 خرداد 1391, 14:32 عصر
سلام
ممنون از دوستان و راهنماييشون
من يه سوالي دارم كه شايد ساده و خيلي ابتدايي باشه
تو روشهاي قفل نرم افزاري همه گفتند كه شماره سريالي cpu و هارد و مين بورد رو ميگيرن و با الگوريتمي يه عدد درميارن و اين عدد رو چك ميكنن اگر درست بود برنامه اجرا بشه
حالا سوال مهم من اينه
من برنامه رو روي سيستم خودم دارم مي نويسم و همين جا هم ازش ستاپ ميگيرم و به فرض مثال هم اون عددي كه در اومد رو توي ديتابيسم ذخيره ميكنم
طبيعتا وقتي برنامه روي سيستم مشتري اجرا ميشه عدد متفاوتي بدست مياد درسته؟ چون هارد و سي پي يوش با سيستم من فرق ميكنه
در اين حالت بايد چكار كرد؟
يعني اول بايد يه سري برنامه رو سيستم مشتري اجرا كرد و شماره ها رو درآورد؟
يا اينكه من كلا قضيه رو بد متوجه شدم
ممنون ميشم راهنماييم كنين.

daneshjo90
دوشنبه 29 خرداد 1391, 14:41 عصر
سلام
شما مثل اينكه كلا قضيه رو نفهميديد چيه
قضيه اينه كه ما داريم يه برنامه مينويسيم كه وقتي روي هر سيستمي اجرا شد كد مخصوص به اون سيستم رو به كاربر نشون ميده و شما اين كد رو از كاربر به هر طريقي ميگيري ( SMS - Email - تلفن گويا و ...)
بعدش هم براش با يه الگوريتم خاص كه فقط خودت ميدوني براش كد فعال سازي درست ميكني و به كاربر ميدي
اگه درست باشه برنامه فعال ميشه
تو اين بين هم ميتوني براي مشتري كد خريد هم بفروشي كه معلوم باشه هر شخص چند بار سيستم رو فعال ميكنه
به اين ترتيب كه با هر كد خريد مثلا يك سيستم فعال ميشه
متوجه شديد يا بازم توضيح بدم ؟

rana-writes
پنج شنبه 01 تیر 1391, 23:16 عصر
سلام
ميشه بيشتر توضيح بدين؟
من كلا متوجه اين ماجرا نميشم
چطوري كدي كه از كاربر گرفتيم و باهاش يه كد فعال سازي ايجاد كرديم رو سيستم كاربر بايد درسته باشه؟ از كجا مقايسه ميشه و چطوري درست بودنش بررسي ميشه؟

من در اين مورد خيلي سرچ كردم ولي اين بخش كه مهم ترين قسمت ماجراست رو باهاش مشكل دارم :(
ممنون از راهنماييتون

daneshjo90
جمعه 02 تیر 1391, 01:19 صبح
سلام
چشم من تا جايي كه سوادم قد ميده كمكت ميكنم
ببينين شما يه برنامه ساختي كه كد فعال سازي رو بر اساس كد كاربري (كدي كه از كاربر گرفتي) ميسازه
واسه اينكه شما بدونيد كه اين كد فعال سازي مخصوص اون كد كاربري هست يعني تو سيستم كاربر هم بررسي بشه تو خود برنامه همون الگوريتمي رو به كار ميبرين كه به تو ساخت كد فعال سازي ازش استفاده شده.
شما تو برنامه توليد كد فعال سازي كدرو توليد ميكنيد و به كاربر ميديد ولي تو قفلتون همون كد رو هم توليد ميكني هم مقايسه ميكني با اين تفاوت كه تو سيستم كاربر كد فعال سازي كه توليد ميشه نمايش داده نميشه بلكه فقط مقايسه ميشه با كد فعال سازي كه ما داديم دست كاربر
نميدونم تونستم قضيه رو كامل توضيح بدم يا نه
اما اگه سوالي بود بازم در خدمتم

hosseinenayati_2009
جمعه 02 تیر 1391, 02:00 صبح
سلام تو قسمت نمونه برنامه های مفید سی شارپ سایت یکسری برنامه برای این کار است امیدوارم مشکلتون حل بشه

Yanehsar
جمعه 02 تیر 1391, 08:57 صبح
سلام دوستان
من چندین برنامه که دیدم از اعداد استفاده میکنن.اما این کدهای که در بالا هست یا مثلا سریال سی پی یو شامل کاراکترهای انگلیسی و اعداد هستش.
تایپکی که من ایجاد کردم برای بدست آوردن سریال های سخت افزار یه سیستم
http://barnamenevis.org/showthread.php?328658-%D8%A8%D8%AF%D8%B3%D8%AA-%D8%A2%D9%88%D8%B1%D8%AF%D9%86-%D8%B3%D8%B1%DB%8C%D8%A7%D9%84-%D8%B3%D8%AE%D8%AA-%D8%A7%D9%81%D8%B2%D8%A7%D8%B1-%D8%B3%DB%8C%D8%B3%D8%AA%D9%85
حالا یه سوال کار با اعداد راحتتر هستش یا با همین کدهای که شامل اعداد و کاراکتر میشه؟اگر کسی میدونه چطوری میشه فقط اعداد مربوط به سخت افزار به دست آورد ممنون میشم راهنمایی کنه

programerinfonet
جمعه 02 تیر 1391, 13:15 عصر
دوست عزیز از کلیدهای رجیستری هم می تونی استغاده کنی

Yanehsar
جمعه 02 تیر 1391, 18:08 عصر
سلام
میشه نمونه کد بذارید؟