Cách tạo license cho phần mềm
Mình tham khảo được cách tạo license cho phần mềm ở đây, xin post lại để mọi người tham khảo (nếu cần). Bạn nào có cách thì post thêm lên nhé. Có lẽ đây cũng là chủ đề đáng được quan tâm.
http://diendan.congdongcviet.com/threads/t65117::cach-viet-code-tao-license-cho-phan-mem.cpp?p=627965#post627965
Ý tưởng như sau:
-
Khi một máy nào đó cài phần mềm của bạn, thì máy đó cần gửi cho bạn một mã Request Activate Code
-
Dựa vào Request Active Code đã cung cấp thì bạn sẽ tạo một license cho
máy đó để import vào phần mềm thì mới sử dụng phần mềm được.
Các bước làm như sau:
-
đầu tiên bạn lấy series của ổ cứng của máy đang cài phần mềm bằng string output1 = ExecuteCommandSync(“vol”);
-
sau đó bạn mã hóa chuỗi output1 bằng phương pháp MD5: string output2 =ConvertStringToSecureCode(output1);
-
như vậy chuỗi output2 là Request Activate Code.
bây giờ tạo license cho Request Active Code vừa thu được ở trên:
-
bạn lấy output2 nối thêm với một chuỗi bí mật do bạn đặt ra: output2 =output2 +“chuỗi bí mật”;
-
sau đó đem cuỗi output2 mã hóa bằng MD5: string licensecode = ConvertStringToSecureCode(output2);
xong rồi, bạn đem licensecode này import vào phần mềm của máy đang chạy
là xong. Các hàm code mình để bên dưới cho các bạn tham khảo.
public static string ConvertStringToSecureCode(string Input1)
{
MD5 Secu1 = MD5.Create();
byte[] data1 = Secu1.ComputeHash(Encoding.Default.GetBytes(Input1));
StringBuilder sbd = new StringBuilder();
for (int i = 0; i <= data1.Length - 1; i++)
{
sbd.Append(data1[i].ToString("x2"));
}
return sbd.ToString();
}
public static string GetRequestLicenseCode()
{
string Hd1 = HardDiskSeriesNumber();
string Code1 =ConvertStringToSecureCode(temp1);
string Code2 = Code1.Substring(24).ToUpper();
string s5 = FormatLicenseCode(Code2);
return s5;
}
private static string HardDiskSeriesNumber()
{
string output = ExecuteCommandSync("vol");
string aa = output.Split('.')[output.Split('.').Length - 1];
string bb = aa.Split(' ')[aa.Split(' ').Length - 1];
return bb.ToString().ToUpper();
}
public static string ExecuteCommandSync(object command)
{
try
{
// create the ProcessStartInfo using "cmd" as the program to be run,
// and "/c " as the parameters.
// Incidentally, /c tells cmd that we want it to execute the command that follows,
// and then exit.
System.Diagnostics.ProcessStartInfo procStartInfo = new System.Diagnostics.ProcessStartInfo("cmd", "/c " + command);
// The following commands are needed to redirect the standard output.
// This means that it will be redirected to the Process.StandardOutput StreamReader.
procStartInfo.RedirectStandardOutput = true;
procStartInfo.UseShellExecute = false;
// Do not create the black window.
procStartInfo.CreateNoWindow = true;
// Now we create a process, assign its ProcessStartInfo and start it
System.Diagnostics.Process proc = new System.Diagnostics.Process();
proc.StartInfo = procStartInfo;
proc.Start();
// Get the output into a string
string result = proc.StandardOutput.ReadToEnd();
// Display the command output.
return result;
}
catch (Exception)
{
// Log the exception
return null;
}
}
Kết câu này
Muốn không crack được chỉ có phần mềm như game online :v
Chủ yếu là phòng người ngay thôi. Chứ gặp người cố tình crk thì chịu thôi. Nhưng dù
sao vẫn phải bàn luận vấn đề này chứ? Thêm nữa nếu càng tốn thời gian để crk thì người ta sẽ càng ít crk những phần mềm nhỏ
Ý mình là bàn các cách tạo license chứ ko phải tìm cách để hoàn toàn ko bị crk (đến Microsoft còn bị crk cơ mà)
Post này đã được di chuyển vào Duplicate Posts để nâng chất lượng thảo luận
I moved a post to an existing topic: Duplicate posts will be moved here
Tạo lience có thiếu gì cách bạn ^^
Như tạo random 1 chuỗi mà có từ cố định chẳng hạn
như từ cố định là CODER
sau đó tạo random chèn các ký tự vô giữa CODER sao cho đủ 32 kí tự :>
Còn ko thì A=1, B=2…Z=26
Tổng, tích, hiệu,… các chữ trong key sao cho =512 hoặc 1024 chẳng hạn :v
Hoặc là Nhập tên người dùng. Loại bỏ hết nguyên âm, còn phụ âm và random số vô giữa các phụ âm sao cho các số vừa thêm vào tổng tích hiệu chia mod gì gì đó = 1 số nào đó
Có thể dùng mã hóa để làm key. Như nhập vào email. Mã hóa email thành chuỗi bất kì sau đó lấy n kí tự từ chuỗi mã hóa đó ^^
/----------------------------------------------------------------
Những phần mềm hay và dở, chứ không có nhỏ và to.
Hay mà nhỏ, nhẹ khó crack đến mấy cũng phải mò crack đc. ^^
Mình tạo USB Key. Khi phần mềm kết nối và giao tiếp được với UsB Key thì lưu trình mới được định hình.Hehe
bạn có thể chỉ cho mình cái usb key này không ? mình cũng tò mò về nó quá , giờ nhiều người dùng cái này
Kiến thức cơ bản bạn cần phải có trước tiên là sẽ phải viết được chương trình cho một con chip để nó giao tiếp được qua USB theo kiểu HID.