PDA

View Full Version : سوال: ایجاد قفل نرم افزاری در برنامه C#‎



program123
سه شنبه 15 تیر 1389, 13:25 عصر
سلام
لطفا برای ساختن یک قفل نرم افزاری برنامه C#‎‎ که از کپی غیر مجاز برنامه مان جلوگیری کند راهنمایی کنید و کدام روش بهتره؟

mehrsa_fr
سه شنبه 15 تیر 1389, 14:05 عصر
شما میتونید با بدست اوردن سریال بعضی از سخت افزارها یک قفل بزارید ولی قفل های نرم افزاری همیشه جواب نمیدن بهترین راه استفاده از قفل سخت افزاری است

mehrsa_fr
سه شنبه 15 تیر 1389, 14:07 عصر
http://barnamenevis.org/forum/showthread.php?t=200523

hamidreza20
سه شنبه 15 تیر 1389, 14:11 عصر
سلام دوست عزیز

برای این منظور از نرم افزارهایی استفاده می شود که شما می توانید به لینک زیر سری بزنید و یا در اینترنت جستجو کنید

http://www.iritn.com/index.php?action=show&type=news&id=7928
http://www.p30world.com/archives/002739.php

التماس دعا

program123
چهارشنبه 16 تیر 1389, 12:48 عصر
از کد زیر برای گرفتن سریال هارد استفاده کردم ولی فقط روی ویندوز 7 سریال را میدهد و برای بقیه null برمیگرداند.

private void button1_Click(object sender, EventArgs e)
{
GetHDDSerialNumber();
}
public double GetHDDFreeSpace(string drive)
{
//check to see if the user provided a drive letter

//if not default it to "C"

if (drive == "" || drive == null)
{
drive = "C";
}
//create our ManagementObject, passing it the drive letter to the

//DevideID using WQL

ManagementObject disk = new ManagementObject("Win32_LogicalDisk.DeviceID=\"" + drive + ":\"");
//bind our management object

disk.Get();
//return the free space amount

return Convert.ToDouble(disk["FreeSpace"]);
}
private void GetHDDSerialNumber()
{
ManagementObjectSearcher searcher;
string query1 = "SELECT * FROM Win32_DiskDrive";
string query2 = "SELECT * FROM Win32_PhysicalMedia";
searcher = new ManagementObjectSearcher(query1);
foreach (ManagementObject wmi_HD in searcher.Get())
if (wmi_HD["Model"] != null)
MessageBox.Show(wmi_HD["Model"].ToString());
searcher = new ManagementObjectSearcher(query2);
foreach (ManagementObject wmi_HD in searcher.Get())
if (wmi_HD["SerialNumber"] != null)
MessageBox.Show(wmi_HD["SerialNumber"].ToString());

program123
پنج شنبه 17 تیر 1389, 12:35 عصر
هر چی سرچ کردم همین کد بود لطفا راهنمایی کنید:اشتباه:

OHidden
پنج شنبه 17 تیر 1389, 16:53 عصر
سلام دوستان:قلب:
با این کد می تونید در هر ویندوزی سریال هارد رو بدست بیارید


using system.management
ManagementObjectSearcher s;
s = new ManagementObjectSearcher("select Signature from win32_diskdrive where InterFaceType='IDE");
foreach (ManagementObject obj in s.Get())
{
label1.Text = obj["signature"].ToString();
}

آموزش پیاده سازی قفل سخت افزاری با استفاده از Flash Memory

http://www.barnamenevis.org/forum/showthread.php?t=224582

omidrayaneh.68
جمعه 18 تیر 1389, 00:07 صبح
سلام دوستان یک فایل dll دارم که میتونه این کار را بکنه در صورت درست بودن اون یک فایل با پسوند دلخواه شما درست میشه کنار exe فایل و از دفعه های بعد برنامه ران میشه و اکتیو شده



using System.Runtime.Serialization.Formatters.Binary;

using System.Collections;

using _UseFull;

public partial class frm_Activation : Form

{
//***************************

FileStream fs;
BinaryFormatter bf = new BinaryFormatter();
string serial = "";
//***************************

public frm_Activation()
{
InitializeComponent();
}
private void frm_Activation_Load(object sender, EventArgs e)
{
try

{
serial = C_Usefull.hardSignature();
lblSerial.Text = serial;
}
catch (Exception ex)
{
FMessageBox.Show(ex.Message, "¦لں", FMessageBoxButtons.OK, FMessageBoxIcons.Error);
}
}
private void glassButton2_Click(object sender, EventArgs e)
{
try

{
string activationCode = tbActivationCode.Text;
if (activationCode == C_Usefull.GetActivationCode(serial))
{
Hashtable hash = new Hashtable();
hash["serial"] = serial;
hash["activationCode"] = activationCode.Insert(5, activationCode);
string filePath = Application.StartupPath + @"\Active.abc";
fs = new FileStream(filePath, FileMode.Create, FileAccess.Write);
bf.Serialize(fs, hash);
fs.Close();
FMessageBox.Show("همںé«ںھی ©ëںêى ں êيهçی¢ ںë¤ںê ¬§." + "\n\n" + "ںھ ¥«ë ں뢦ں ¬êں ꢬک©یê" + "\n\n" + "ë©ê ںهھں© ê¬ںي© ںêéںک", "پیںê", FMessageBoxButtons.OK, FMessageBoxIcons.Information);
}
else

{
FMessageBox.Show("ک§ همںé«ںھی ¬êں ں¬¢ ںى ں«¢." + "\n\n" + " ©ںی ¢ىیى ک§ همںé«ںھی ں ©ëںêى ëيی« ¢êں« ¥ں­é ه©êںیی§." + "\n\n" + "ꢬک©یê.", "پیںê", FMessageBoxButtons.OK, FMessageBoxIcons.Warning);
}
}
catch (Exception ex)
{
FMessageBox.Show(ex.Message, "خطا", FMessageBoxButtons.OK, FMessageBoxIcons.Error);
}
}

program123
یک شنبه 20 تیر 1389, 08:20 صبح
موقع add کردن این dll به برنامه خطا و پیغام بسته شدن برنامه ایجاد میشه

program123
یک شنبه 20 تیر 1389, 08:43 صبح
[quote=OHidden;1035476]سلام دوستان:قلب:
با این کد می تونید در هر ویندوزی سریال هارد رو بدست بیارید


using system.management
ManagementObjectSearcher s;
s = new ManagementObjectSearcher("select Signature from win32_diskdrive where InterFaceType='IDE");
foreach (ManagementObject obj in s.Get())
{
label1.Text = obj["signature"].ToString();
}


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

raha_20
یک شنبه 20 تیر 1389, 13:10 عصر
دوست عزیز
شما میتونید شماره سریال یکی از سخت افزارهای کامپوتری که میخواهید روی ان فقط اجرا بشه را در بیارین و مثلا او رو درهنگام لود شدن نرم افزارتون چک کنید که اگه کد سخت افزار داره مطابقت میکنه اجازه run شدن بده در غیر اینصورت اجازه نده . و حتی میتونید یه نرم افزار بنویسید واسه اینکار

modern_amin
چهارشنبه 07 دی 1390, 12:02 عصر
دوستان این راهها جواب کار شما رو نمیییده ، مشتری ممکن هاردش بسوزه و یا عوضش کنه ، بهتره کله اطلاعاتش و بگیرید
مثلا من برای کار خودم هم سریال هارد ، هم سریال بایوس و هم سریال سی پی یو رو در آوردم
ولی بازم از درست بودنه کارم شک دارم