PDA

View Full Version : سوال: ایجاد کد سخت افزاری...



rezarko
شنبه 14 بهمن 1391, 13:01 عصر
سلام. چه طور میشه یه کد سخت افزاری از سیستم مشتری ایجاد کرد؟
با تشکر

asghar2008
شنبه 14 بهمن 1391, 13:29 عصر
سلام
کد سخت افزاری؟
منظورت ای دی Cpu یا Hard disk هستش؟

AmirGhasemi
شنبه 14 بهمن 1391, 13:41 عصر
سلام دوست عزيز
شما كافي است سريال هارد ديسك كامپيوتر طرف را برداري به همراه يك GUID‌تركيب كني بهترين روش براي تعيين كد سخت افزاري است
در ضم مجددا توصيه مي كنم كه هارد ديسك!! چون CPUوRAM و غيره داراي مشكلات ديگري هستند كه اگر خواستي مفصل برايت مي نويسم
پس بهترين كار استفاده از سريال هارد است

rezarko
شنبه 14 بهمن 1391, 15:09 عصر
ممنون فقط اگه میشه کدشو یا یه نمونشو واسم بزارید.

daneshjo90
شنبه 14 بهمن 1391, 15:35 عصر
با سلام

دوست عزیز ببین این کد به دردت میخوره یا نه ؟

اگه قبل زدن تاپیک یکم سرچ میکردی خوب بود



99422

اینم فایلش

اشکال داشت بپرس بگم

موفق باشی

danialafshari
شنبه 14 بهمن 1391, 15:47 عصر
سلام
کد 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;
}
موفق باشی

daneshjo90
شنبه 14 بهمن 1391, 15:54 عصر
تشکر میکنم واسه قطعه کدی که گذاشتین

لازم به ذکر هستش که دوست عزیز فایلی که بنده برای ایشون گذاشتم هم سریال HDD - سریال CPU و سریال Motherboard رو هم میاره

موفق باشی

rezarko
شنبه 14 بهمن 1391, 16:03 عصر
دوست عزیز رو این قسمت ارور میده:
99424

danialafshari
شنبه 14 بهمن 1391, 16:06 عصر
تشکر میکنم واسه قطعه کدی که گذاشتین

لازم به ذکر هستش که دوست عزیز فایلی که بنده برای ایشون گذاشتم هم سریال HDD - سریال CPU و سریال Motherboard رو هم میاره

موفق باشی

سلام دوست عزیز
با تشکر
کامپوننت در کنار پروژه توصیه نمیشه و کد درون برنامه هست و بهتره میشه با پروتکتور محافظتش کرد
و به نظر من کد Cpu بهتره : 1-خرابیش کمتره 2-هگزادسیماله 3-احتمال تعویضش نسبت به قطعات دیگه کمتره
موفق باشی

daneshjo90
شنبه 14 بهمن 1391, 16:13 عصر
تا جایی که تو عکس نشون میده و تونستم بخونم مشکل از رفرنسش هست

شما به صورت دستی namespace Management رو به پوشه references اضافه کن

روش راست کلیک کن و بعدش Add References رو بزن از تب .Net ادش کن

مشکلت حل میشه

موفق باشی

danialafshari
شنبه 14 بهمن 1391, 16:50 عصر
من که گفتم
قبلش باید حتما Add Refrence کنیش

daneshjo90
شنبه 14 بهمن 1391, 17:16 عصر
سلام دوست عزیز
با تشکر
کامپوننت در کنار پروژه توصیه نمیشه و کد درون برنامه هست و بهتره میشه با پروتکتور محافظتش کرد
و به نظر من کد Cpu بهتره : 1-خرابیش کمتره 2-هگزادسیماله 3-احتمال تعویضش نسبت به قطعات دیگه کمتره
موفق باشی

بازم ممنون

به نظر من بهتر از همه اینا من یه جایی (دقیق نمیدونم کدوم تاپیک) دیدم که نوشته بودن یه کدی در ریجستری ویندوز هست که در هر کامپیوتر یکتاست
ولی دقیق امتحانش نکردم
اگه تونستم تاپیک رو پیدا میکنم براتون همینجا قرار میدم


موفق باشی

daneshjo90
شنبه 14 بهمن 1391, 17:19 عصر
دوست عزیز اینم از لینک
شما امتحانش کنید اگه جواب داد نمونه برنامه رو برای منم بفرستین شاید به دردم بخوره

ممنون از نظرات سازندتون

ببخشید میتونم از تجربتون در مورد یه کاری کمک بگیرم ؟

موفق باشی

danialafshari
شنبه 14 بهمن 1391, 19:45 عصر
سلام دوست عزیز


به نظر من بهتر از همه اینا من یه جایی (دقیق نمیدونم کدوم تاپیک) دیدم که نوشته بودن یه کدی در ریجستری ویندوز هست که در هر کامپیوتر یکتاست
هیچ نرم افزاری کد یکتا نداره ویندوز هم نرم افزاره دیگه؟
اگر تو ریجیستری چنین کدی هست مطمئن باش اون کد یک سخت افزاره
نمیشه به این چیزا اعتماد کرد ولی به نظر من کد cpu در C# هست، خود قطعه cpu هم درون کامپیوتر پس بهتره دیگه

ببخشید میتونم از تجربتون در مورد یه کاری کمک بگیرم ؟
تا جایی که بلد باشم در خدمتم

موفق باشید

uniqueboy_ara
شنبه 14 بهمن 1391, 21:15 عصر
آقا این کد شما واسه من سریال مادربرد رو نمیاره!

daneshjo90
شنبه 14 بهمن 1391, 23:29 عصر
اشکالی نداره به جاش یه کد دیگه میاره که تو تکست باکس نشون نمیده ولی در مجموع که یه کد 8 رقمی از حروف و ارقام تشکیل شده به شما میده

این کد در همه سیستم ها به صورت 8 رقمی هستش

شما میتونید رو این کد مانور بدی

مشکلی بود بازم بگید توضیح بدم

موفق باشی

Mosafers
یک شنبه 15 بهمن 1391, 01:27 صبح
سلام برا منم یه کد 16 رقمی بازگردوند که اعداد و حروف قاطی هستش ، درسته ؟

daneshjo90
یک شنبه 15 بهمن 1391, 02:21 صبح
16 رقمی :متفکر:که از (حروف و ارقام):متعجب::متفکر: قاطی هست ؟؟؟؟؟؟


یه کد 16 رقمی بازگردوند که اعداد و حروف قاطی هستش

به قول یکی از دوستان جملاتی میبینیم که خیلی عجیب غریبن


اصلا امکان نداره کد 16 کاراکتری بیاره

تکست باکسی که شما مشاهده میکنی همیشه یه کد 8 کاراکتری برمیگردونه

که متشکل از حروف و اعداد هستش

اگه امکانش هست یه عکس از اون کد برام بزارید ببینم

موفق باشی

mortezasar
یک شنبه 15 بهمن 1391, 10:19 صبح
سلام به همه دوستان که واقعا تاپیک رو پربار کردن :تشویق:
اگر میشه درباره نحوه ایجاد کد فعالسازی واسه قفل توضیح بدین تا اینجا نحوه ساخت قفل رو یاد گرفتم اما میخوام نحوه دادن کد فعالسازی رو به برنامه و ساختن اونو یاد بگیرم
با تکر از همه دوستان :تشویق:

Mosafers
یک شنبه 15 بهمن 1391, 12:03 عصر
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;
}
}
}

sajad.net
یک شنبه 15 بهمن 1391, 12:54 عصر
سلام دوست عزيز
شما كافي است سريال هارد ديسك كامپيوتر طرف را برداري به همراه يك GUID‌تركيب كني بهترين روش براي تعيين كد سخت افزاري است
در ضم مجددا توصيه مي كنم كه هارد ديسك!! چون CPUوRAM و غيره داراي مشكلات ديگري هستند كه اگر خواستي مفصل برايت مي نويسم
پس بهترين كار استفاده از سريال هارد است

ببخشید می شه درباره مشکلاتی که پیش میاد توضیح بدید
ممنون

daneshjo90
دوشنبه 16 بهمن 1391, 15:11 عصر
سلام دوست عزيز
شما كافي است سريال هارد ديسك كامپيوتر طرف را برداري به همراه يك GUID‌تركيب كني بهترين روش براي تعيين كد سخت افزاري است
در ضم مجددا توصيه مي كنم كه هارد ديسك!! چون CPUوRAM و غيره داراي مشكلات ديگري هستند كه اگر خواستي مفصل برايت مي نويسم
پس بهترين كار استفاده از سريال هارد است

با سلام
دوست عزیز بنظرت اگه طرف دوتا هارد یا مثله من سه تا هارد داشت چی میشه ؟
به اینش فکر کردی ؟

موفق باشی

daneshjo90
دوشنبه 16 بهمن 1391, 15:17 عصر
سلام کد ها برای 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();
}

حالا دیگه بقیش باخودتون که چطوری براش الگوریتم تعریف کنید

موفق باشید

daneshjo90
دوشنبه 16 بهمن 1391, 15:22 عصر
اگر میشه درباره نحوه ایجاد کد فعالسازی واسه قفل توضیح بدین تا اینجا نحوه ساخت قفل رو یاد گرفتم اما میخوام نحوه دادن کد فعالسازی رو به برنامه و ساختن اونو یاد بگیرم


با سلام به شما

دوست عزیز مبحثش خیلی پیچیده نیست

فقط شما باید بتونی کد 8 کاراکتری رو با یه الگوریتمی به یه عدد یا حروف دیگه تبدیل کنی بعدش یه برنامه بسازی که وقتی این کد رو دادم برنامه براش کدی که من تبدیل کردمم و کاربر نمیبینه رو برگردونه(همون الگوریتمی که به عدد یا حروف تبدیل شدن)

بعدش خیلی راحته برنامت مقایسه میکنه این با اون برابر هستش ؟
اگه آره برنامه اجرا میشه اگه نه خطا میده

متوجه شدی یا بیشتر توضیح بدم ؟

موفق باشی

rezarko
دوشنبه 16 بهمن 1391, 19:35 عصر
میشه در مورد الگوریتم تبدیل بیشتر توضیح بدید یا یه نمونه بزارید

daneshjo90
سه شنبه 17 بهمن 1391, 00:19 صبح
با سلام
ببینید من ایجا توشیح میدم با کدها بقیش به عهده خودتون که برا خودتون الگوریتم طراحی کنید

من بعد از اینکه کد 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");

فک کنم همه متوجه شده باشید

اگه بازم نقطه مبهمی بود در خدمتم همین جا مطرح کنید جواب میدم

اگه زحمتی براتون نشه یه تشکر رو هم کلیک کنید

موفق باشید همگی

Mosafers
سه شنبه 17 بهمن 1391, 21:22 عصر
ممنونم خیلی خوب بود ولی من تست کردم به خطاهایی خوردم میشه شما که تا اینجا زحمت کشیدید یه سورسم ازش قرار بدید؟

irana8
سه شنبه 17 بهمن 1391, 23:31 عصر
این کد ها مقدار های یکسان برمیگردونن و یونیک نیستند.من 20 تا سیستم برا اداره گرفتم که همشون از نظر سخت افزاری عین هم هستن.رو همشون یه مقدار برمیگردونه.

danialafshari
چهارشنبه 18 بهمن 1391, 02:03 صبح
این کد ها مقدار های یکسان برمیگردونن و یونیک نیستند.من 20 تا سیستم برا اداره گرفتم که همشون از نظر سخت افزاری عین هم هستن.رو همشون یه مقدار برمیگردونه.

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

Mosafers
پنج شنبه 19 بهمن 1391, 12:46 عصر
ممنونم خیلی خوب بود ولی من تست کردم به خطاهایی خوردم میشه شما که تا اینجا زحمت کشیدید یه سورسم ازش قرار بدید؟

یعنی بعد از این همه تاپیک توضیح توی اینترنت و جاهایدیگه یه نمونه ساده برای این کار نیست؟

daneshjo90
پنج شنبه 19 بهمن 1391, 16:51 عصر
یعنی بعد از این همه تاپیک توضیح توی اینترنت و جاهایدیگه یه نمونه ساده برای این کار نیست؟


ممنونم خیلی خوب بود ولی من تست کردم به خطاهایی خوردم میشه شما که تا اینجا زحمت کشیدید یه سورسم ازش قرار بدید؟


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

که همون جواب میشه کدفعال سازی فهمیدید چی شد ؟

اگه نه براتون یه نمونه میزارم

موفق باشید

daneshjo90
پنج شنبه 19 بهمن 1391, 16:55 عصر
این کد ها مقدار های یکسان برمیگردونن و یونیک نیستند.من 20 تا سیستم برا اداره گرفتم که همشون از نظر سخت افزاری عین هم هستن.رو همشون یه مقدار برمیگردونه.

خوب دوست عزیز معلومه وقتی قطعات یکسان باشن همشون یه کد میدن

برا این کار میتونی به برنامت یه تیکه کد اضافه کنی که هر کدی که میگیره بعد با یه عدد دیگه به صورت رندم جمع یا تفریق و ... بکنه که اینطوری فک کنم مشکلتون حل میشه

این برنامه فقط یه نمونه ساده هست که تازه کارا بتونن نحوه ساخت رو آموزش ببینن

افزایش ضریب امنیتش به عهده خوده برنامه نویس هست

موفق باشید

daneshjo90
پنج شنبه 19 بهمن 1391, 16:59 عصر
ممنونم خیلی خوب بود ولی من تست کردم به خطاهایی خوردم میشه شما که تا اینجا زحمت کشیدید یه سورسم ازش قرار بدید؟

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

و سعی کنید در سورس کد ها بجای اینکه مقایسه انجام بده مقدار نهایی الگوریتم رو براتون نمایش بده

اینطوری میتونید کد فعال سازی هم ایجاد کنید

موفق باشید

hamiunderline
چهارشنبه 25 بهمن 1391, 09:28 صبح
خیلی مفید بود مرسی از همه دوستان عزیز..