سلام. چه طور میشه یه کد سخت افزاری از سیستم مشتری ایجاد کرد؟
با تشکر
سلام. چه طور میشه یه کد سخت افزاری از سیستم مشتری ایجاد کرد؟
با تشکر
سلام
کد سخت افزاری؟
منظورت ای دی Cpu یا Hard disk هستش؟
سلام دوست عزيز
شما كافي است سريال هارد ديسك كامپيوتر طرف را برداري به همراه يك GUIDتركيب كني بهترين روش براي تعيين كد سخت افزاري است
در ضم مجددا توصيه مي كنم كه هارد ديسك!! چون CPUوRAM و غيره داراي مشكلات ديگري هستند كه اگر خواستي مفصل برايت مي نويسم
پس بهترين كار استفاده از سريال هارد است
ممنون فقط اگه میشه کدشو یا یه نمونشو واسم بزارید.
با سلام
دوست عزیز ببین این کد به دردت میخوره یا نه ؟
اگه قبل زدن تاپیک یکم سرچ میکردی خوب بود
HardwareInfo.rar
اینم فایلش
اشکال داشت بپرس بگم
موفق باشی
سلام
کد CPU :
using System.Management;
قبلش باید حتما Add Refrence کنیش
اینم تابع اصلی :
public string GetCPUId()
{
string cpuInfo = String.Empty;
//create an instance of the Managemnet class with the
//Win32_Processor class
ManagementClass mgmt = new ManagementClass("Win32_Processor");
//create a ManagementObjectCollection to loop through
ManagementObjectCollection objCol = mgmt.GetInstances();
//start our loop for all processors found
foreach (ManagementObject obj in objCol)
{
if (cpuInfo == String.Empty)
{
// only return cpuInfo from first CPU
cpuInfo = obj.Properties["ProcessorId"].Value.ToString();
}
}
return cpuInfo;
}
موفق باشی
تشکر میکنم واسه قطعه کدی که گذاشتین
لازم به ذکر هستش که دوست عزیز فایلی که بنده برای ایشون گذاشتم هم سریال HDD - سریال CPU و سریال Motherboard رو هم میاره
موفق باشی
دوست عزیز رو این قسمت ارور میده:
Screenshot (5).png
تا جایی که تو عکس نشون میده و تونستم بخونم مشکل از رفرنسش هست
شما به صورت دستی namespace Management رو به پوشه references اضافه کن
روش راست کلیک کن و بعدش Add References رو بزن از تب .Net ادش کن
مشکلت حل میشه
موفق باشی
من که گفتمقبلش باید حتما Add Refrence کنیش
بازم ممنونسلام دوست عزیز
با تشکر
کامپوننت در کنار پروژه توصیه نمیشه و کد درون برنامه هست و بهتره میشه با پروتکتور محافظتش کرد
و به نظر من کد Cpu بهتره : 1-خرابیش کمتره 2-هگزادسیماله 3-احتمال تعویضش نسبت به قطعات دیگه کمتره
موفق باشی
به نظر من بهتر از همه اینا من یه جایی (دقیق نمیدونم کدوم تاپیک) دیدم که نوشته بودن یه کدی در ریجستری ویندوز هست که در هر کامپیوتر یکتاست
ولی دقیق امتحانش نکردم
اگه تونستم تاپیک رو پیدا میکنم براتون همینجا قرار میدم
موفق باشی
دوست عزیز اینم از لینک
شما امتحانش کنید اگه جواب داد نمونه برنامه رو برای منم بفرستین شاید به دردم بخوره
ممنون از نظرات سازندتون
ببخشید میتونم از تجربتون در مورد یه کاری کمک بگیرم ؟
موفق باشی
سلام دوست عزیز
هیچ نرم افزاری کد یکتا نداره ویندوز هم نرم افزاره دیگه؟به نظر من بهتر از همه اینا من یه جایی (دقیق نمیدونم کدوم تاپیک) دیدم که نوشته بودن یه کدی در ریجستری ویندوز هست که در هر کامپیوتر یکتاست
اگر تو ریجیستری چنین کدی هست مطمئن باش اون کد یک سخت افزاره
نمیشه به این چیزا اعتماد کرد ولی به نظر من کد cpu در C# هست، خود قطعه cpu هم درون کامپیوتر پس بهتره دیگه
تا جایی که بلد باشم در خدمتمببخشید میتونم از تجربتون در مورد یه کاری کمک بگیرم ؟
موفق باشید
آقا این کد شما واسه من سریال مادربرد رو نمیاره!
اشکالی نداره به جاش یه کد دیگه میاره که تو تکست باکس نشون نمیده ولی در مجموع که یه کد 8 رقمی از حروف و ارقام تشکیل شده به شما میده
این کد در همه سیستم ها به صورت 8 رقمی هستش
شما میتونید رو این کد مانور بدی
مشکلی بود بازم بگید توضیح بدم
موفق باشی
سلام برا منم یه کد 16 رقمی بازگردوند که اعداد و حروف قاطی هستش ، درسته ؟
16 رقمی که از (حروف و ارقام) قاطی هست ؟؟؟؟؟؟
به قول یکی از دوستان جملاتی میبینیم که خیلی عجیب غریبنیه کد 16 رقمی بازگردوند که اعداد و حروف قاطی هستش
اصلا امکان نداره کد 16 کاراکتری بیاره
تکست باکسی که شما مشاهده میکنی همیشه یه کد 8 کاراکتری برمیگردونه
که متشکل از حروف و اعداد هستش
اگه امکانش هست یه عکس از اون کد برام بزارید ببینم
موفق باشی
سلام به همه دوستان که واقعا تاپیک رو پربار کردن
اگر میشه درباره نحوه ایجاد کد فعالسازی واسه قفل توضیح بدین تا اینجا نحوه ساخت قفل رو یاد گرفتم اما میخوام نحوه دادن کد فعالسازی رو به برنامه و ساختن اونو یاد بگیرم
با تکر از همه دوستان
سلام کد ها برای CPU هستش(مقدار بازگشتی : BFEBFBFF000206A7 ):
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Windows.Forms;
using System.Management;
namespace WindowsFormsApplication1
{
public partial class Form1 : Form
{
public Form1()
{
InitializeComponent();
}
private void button1_Click(object sender, EventArgs e)
{
string cpuInfo = String.Empty;
//create an instance of the Managemnet class with the
//Win32_Processor class
ManagementClass mgmt = new ManagementClass("Win32_Processor");
//create a ManagementObjectCollection to loop through
ManagementObjectCollection objCol = mgmt.GetInstances();
//start our loop for all processors found
foreach (ManagementObject obj in objCol)
{
if (cpuInfo == String.Empty)
{
// only return cpuInfo from first CPU
cpuInfo = obj.Properties["ProcessorId"].Value.ToString();
}
}
textBox1.Text = cpuInfo.ToString();
//return cpuInfo;
}
}
}
با سلامسلام دوست عزيز
شما كافي است سريال هارد ديسك كامپيوتر طرف را برداري به همراه يك GUIDتركيب كني بهترين روش براي تعيين كد سخت افزاري است
در ضم مجددا توصيه مي كنم كه هارد ديسك!! چون CPUوRAM و غيره داراي مشكلات ديگري هستند كه اگر خواستي مفصل برايت مي نويسم
پس بهترين كار استفاده از سريال هارد است
دوست عزیز بنظرت اگه طرف دوتا هارد یا مثله من سه تا هارد داشت چی میشه ؟
به اینش فکر کردی ؟
موفق باشی
با سلام به شما شرمنده دیر جواب میدمسلام کد ها برای CPU هستش(مقدار بازگشتی : BFEBFBFF000206A7 ):
ببین دوست عزیز شما با این کد کاری نداشته باشید شما برای استفاده از این کدها فقط روی کد هشت کاراکتری تمرکز کنید.
کد زیر همیه یه کد 8 کاراکتری تولید میکنه که تو همه ی کامپیوترها متغیر هستش
چون روی بیش از 80 سیستم امتحانش کردم با یقین میگم متغیر هستش
private static string GetHSN()
{
var cpuInfo = CPU();
var DiskInfo = Hard();
var BaseBoardInfo = BaseBoard();
var ID = cpuInfo + "+" + DiskInfo + "+" + BaseBoardInfo;
ID = md5(MyHash(ID)) + " ";
var res = "";
string pat = "2QAM456VWXE3GSL789ZYKHJTNPURFBCD1";
for (int i = 0; i < 32; i += 4)
{
var j = ID[i] + ID[i + 1] + ID[i + 2];
res += pat[j % pat.Length];
}
return res.ToUpper();
}
حالا دیگه بقیش باخودتون که چطوری براش الگوریتم تعریف کنید
موفق باشید
اگر میشه درباره نحوه ایجاد کد فعالسازی واسه قفل توضیح بدین تا اینجا نحوه ساخت قفل رو یاد گرفتم اما میخوام نحوه دادن کد فعالسازی رو به برنامه و ساختن اونو یاد بگیرم
با سلام به شما
دوست عزیز مبحثش خیلی پیچیده نیست
فقط شما باید بتونی کد 8 کاراکتری رو با یه الگوریتمی به یه عدد یا حروف دیگه تبدیل کنی بعدش یه برنامه بسازی که وقتی این کد رو دادم برنامه براش کدی که من تبدیل کردمم و کاربر نمیبینه رو برگردونه(همون الگوریتمی که به عدد یا حروف تبدیل شدن)
بعدش خیلی راحته برنامت مقایسه میکنه این با اون برابر هستش ؟
اگه آره برنامه اجرا میشه اگه نه خطا میده
متوجه شدی یا بیشتر توضیح بدم ؟
موفق باشی
میشه در مورد الگوریتم تبدیل بیشتر توضیح بدید یا یه نمونه بزارید
با سلام
ببینید من ایجا توشیح میدم با کدها بقیش به عهده خودتون که برا خودتون الگوریتم طراحی کنید
من بعد از اینکه کد 8کاراکتری رو دریافت کردم مثل کد زیر
private string tabdil(string test)
{
int i,sum=0;
string b;
for (i = 0; i < test.Length; i++)
switch (test[i])
{
case 'A':
case 'a':
sum += 27;
continue;
case 'b':
case 'B':
sum += 28;
continue;
case 'c':
case 'C':
sum += 29;
continue;
case 'd':
case 'D':
sum += 30;
continue;
case 'E':
case 'e':
sum += 31 ;
continue;
case 'f':
case 'F':
sum += 32 ;
continue;
case 'G':
case 'g':
sum += 33 ;
continue;
case 'H':
case 'h':
sum += 34 ;
continue;
case 'i':
case 'I':
sum += 35 ;
continue;
case 'J':
case 'j':
sum += 10 ;
continue;
case 'K':
case 'k':
sum += 11 ;
continue;
case 'L':
case 'l':
sum += 12 ;
continue;
case 'M':
case 'm':
sum += 13 ;
continue;
case 'N':
case 'n':
sum += 14 ;
continue;
case 'O':
case 'o':
sum += 15 ;
continue;
case 'P':
case 'p':
sum += 16 ;
continue;
case 'Q':
case 'q':
sum += 17 ;
continue;
case 'R':
case 'r':
sum += 18 ;
continue;
case 'S':
case 's':
sum += 19 ;
continue;
case 'T':
case 't':
sum += 20 ;
continue;
case 'U':
case 'u':
sum += 21 ;
continue;
case 'v':
case 'V':
sum += 22 ;
continue;
case 'w':
case 'W':
sum += 23 ;
continue;
case 'x':
case 'X':
sum += 24 ;
continue;
case 'Y':
case 'y':
sum += 25 ;
continue;
case 'Z':
case 'z':
sum += 26 ;
continue;
case '0':
sum += 0 ;
continue;
case '1':
sum += 1;
continue;
case '2':
sum += 2;
continue;
case '3':
sum += 3;
continue;
case '4':
sum += 4;
continue;
case '5':
sum += 5;
continue;
case '6':
sum += 6;
continue;
case '7':
sum += 7;
continue;
case '8':
sum += 8;
continue;
case '9':
sum += 9;
continue;
}
b = ((sum / 2) * 3).ToString();
return b;
}
از اول مقایسه میکنم هر حرف یا کاراکتری بود اونو به یه عدد تبدیل کنه بعد در آخر sum رو تقسیم بر 2 ضرب در 3 میکنم (به صورت دلخواه انجام میشه شما 1 چیز دیگه در نظر بگیرید)
مثلا اگه کد من : 59J2QRCW باشه اینو تبدیل میکنم به عدد میشه 113 و اینو تقسیم بر 2 میکنم بعدش ضربدر 3 که میشه 169.5 چون int تعریفش کردم فقط 169 رو انتقال میده
حالا میایم روی 169 که اومده به تایع javab عملیات زیر رو انجام میدیم
private string javab(string saeed)
{
int a, tags, zab, sum;
string s;
//label3.Text = carbari.Text;
s = tabdil(saeed);
a = Convert.ToInt32(s);//Convert.ToInt32(label3.Text);
tags = a * 242;
zab = tags / 4;
sum = zab * (5735);
return sum.ToString ();
}
خیلی راحت با چندتا ضرب تقسیم خیلی ساده اون عدد رو به یه عدد دیگه تبدیل میکنم مثلا برای امنیت بیشتر
169 رو ضرب در 242 میکنیم میشه 40898
بعد 40898 رو تقسیم بر 4 میکنیم که اینم میشه 10224(اعشارشو حذف میکنیم چون int هست متغییرمون)
این 10224 رو ضربدر 5735 میکنیم که جوابش میشه 58634640
و این کد 58634640 برای من میشه کد فعال سازی
اگه کاربر بتونه اینو وارد کنه برنامه کدفعال سازی رو درست تشخیص میده و برنامه فعال میشه در غیر اینصورت خطا میده
مثل قطعه کد زیر
int b,a;
string c;
c = javab(textBox_hID.Text);
b = Convert.ToInt32(c);
a = Convert.ToInt32(Registry.Text);
this.Text = c;
if (a == b)
MessageBox.Show("yes", "Hi");
else
MessageBox.Show("no", "Hi");
فک کنم همه متوجه شده باشید
اگه بازم نقطه مبهمی بود در خدمتم همین جا مطرح کنید جواب میدم
اگه زحمتی براتون نشه یه تشکر رو هم کلیک کنید
موفق باشید همگی
ممنونم خیلی خوب بود ولی من تست کردم به خطاهایی خوردم میشه شما که تا اینجا زحمت کشیدید یه سورسم ازش قرار بدید؟
این کد ها مقدار های یکسان برمیگردونن و یونیک نیستند.من 20 تا سیستم برا اداره گرفتم که همشون از نظر سخت افزاری عین هم هستن.رو همشون یه مقدار برمیگردونه.
یعنی بعد از این همه تاپیک توضیح توی اینترنت و جاهایدیگه یه نمونه ساده برای این کار نیست؟ممنونم خیلی خوب بود ولی من تست کردم به خطاهایی خوردم میشه شما که تا اینجا زحمت کشیدید یه سورسم ازش قرار بدید؟
یعنی بعد از این همه تاپیک توضیح توی اینترنت و جاهایدیگه یه نمونه ساده برای این کار نیست؟ممنونم خیلی خوب بود ولی من تست کردم به خطاهایی خوردم میشه شما که تا اینجا زحمت کشیدید یه سورسم ازش قرار بدید؟
خب دوست عزیز شما اگه همون فایلی رو که کد رو تولید میکنه بجای اینکه مقایسه کنید فقط بزارید که جواب الگوریتم رو براتون نمایش بده
که همون جواب میشه کدفعال سازی فهمیدید چی شد ؟
اگه نه براتون یه نمونه میزارم
موفق باشید
خوب دوست عزیز معلومه وقتی قطعات یکسان باشن همشون یه کد میدناین کد ها مقدار های یکسان برمیگردونن و یونیک نیستند.من 20 تا سیستم برا اداره گرفتم که همشون از نظر سخت افزاری عین هم هستن.رو همشون یه مقدار برمیگردونه.
برا این کار میتونی به برنامت یه تیکه کد اضافه کنی که هر کدی که میگیره بعد با یه عدد دیگه به صورت رندم جمع یا تفریق و ... بکنه که اینطوری فک کنم مشکلتون حل میشه
این برنامه فقط یه نمونه ساده هست که تازه کارا بتونن نحوه ساخت رو آموزش ببینن
افزایش ضریب امنیتش به عهده خوده برنامه نویس هست
موفق باشید
دوست عزیز شما اگه میشه خطاهارو با عکس نمایش بدید بگم مشکل کجاستممنونم خیلی خوب بود ولی من تست کردم به خطاهایی خوردم میشه شما که تا اینجا زحمت کشیدید یه سورسم ازش قرار بدید؟
و سعی کنید در سورس کد ها بجای اینکه مقایسه انجام بده مقدار نهایی الگوریتم رو براتون نمایش بده
اینطوری میتونید کد فعال سازی هم ایجاد کنید
موفق باشید
خیلی مفید بود مرسی از همه دوستان عزیز..