-
[Demo P1] Tạo khóa bản quyền cho phần mềm
maidinhdan > 28-07-18, 10:10 PM
(28-07-18, 11:57 AM)niembui Đã viết: Chào các anh/chị
Mình quan tâm " tạo khóa bản quyền cho file access. Anh chị nào có thể nhận dịch vụ tạo dùm mình code này thì làm ơn cho mình hay nha. email buingocniem@gmail.com. Mình có nhu cầu thực, thù lao thỏa thuận. Xin cảm ơn.
QUY TRÌNH TẠO BẢN QUYỀN (LICENSE PRODUCT) BẢO MẬT ỨNG DỤNG
Hướng dẫn các bạn cách tạo License cho ứng dụng. Sau khi, tạo ứng dụng xong, nếu các bạn muốn phân phối ứng dụng của mình theo License product.
Ở bài viết này, mình hướng dẫn các bạn thuật toán cơ bản để bảo mật ứng dụng.
1. Đầu tiên, mình lấy serial number của HDD. Vì serial number HDD là duy nhất, nên ứng dụng mình cài vào máy tính nào thì chỉ sử dụng được một máy, cài đặt vào ổ cứng khác thì ứng dụng sẽ không hoạt động.
2. Tạo khóa token (chuỗi bảo mật).
3. Sử dụng thuật toán Hex, serial number HDD với token của mình. Bạn có thể sử dụng thuật toán MD5, SHA1 hay 1 thuật toán mã hóa bất kỳ
* Các hàm cần chuẩn bị, gồm:
+ Hàm đọc ổ cứng HDD ( hoặc đọc Mainboard,CPU...cái này tùy vào sở thích mỗi người)
+ Hàm mã hóa ký tự;
+ Hàm giải mã ký tự;
+ Hàm mã hóa sang kiểu Hex
+ Hàm giải mã từ kiểu Hex
+ Hàm Mã hóa key đăng ký
+ Hàm giải mã key đăng ký
+ Hàm kiểm tra cái Key đăng ký hợp lệ không ( để dùng mỗi lần User mở máy lên ta sẽ kiểm tra, nếu hợp lệ thì cho chạy chương trình, không thì Out ngay.
* Modules
Mã PHP:Public Function Mahoa(Data As String, Optional Depth As Integer) As String
Dim TempChar As String, TempAsc As Integer, NewData As String, vChar As Integer
For vChar = 1 To Len(Data)
TempChar = mID$(Data, vChar, 1)
TempAsc = Asc(TempChar)
If Depth = 0 Then Depth = 40
If Depth > 254 Then Depth = 254
TempAsc = TempAsc + Depth
If TempAsc > 255 Then TempAsc = TempAsc - 255
TempChar = Chr(TempAsc)
NewData = NewData & TempChar
Next vChar
Mahoa = NewData
End Function
Mã PHP:Public Function GiaiMa(Data As String, Optional Depth As Integer) As String
Dim TempChar As String, TempAsc As Integer, NewData As String, vChar As Integer
For vChar = 1 To Len(Data)
TempChar = mID$(Data, vChar, 1)
TempAsc = Asc(TempChar)
If Depth = 0 Then Depth = 40
If Depth > 254 Then Depth = 254
TempAsc = TempAsc - Depth
If TempAsc < 0 Then TempAsc = TempAsc + 255
TempChar = Chr(TempAsc)
NewData = NewData & TempChar
Next vChar
GiaiMa = NewData
End Function
Mã PHP:Function DocHDD()
Set Discos = GetObject("WINMGMTS:").InstancesOf("Win32_PhysicalMedia")
For Each Disco In Discos
abc = Disco.SerialNumber
If Len(Trim(abc)) > 0 Then Exit For
Next
DocHDD = Trim(abc)
End Function
Mã PHP:Public Function MahoaToHex(tString As String) As String
Dim i As Integer, S As String
S = ""
For i = 1 To Len(tString)
S = S & Right$("00" & Hex(Asc(mID$(tString, i, 1))), 2)
Next i
MahoaToHex = S
End Function
Function GiaiMaFromHex(strHex As String) As String
Dim lngCount As Long
For lngCount = 1 To Len(strHex) Step 2
GiaiMaFromHex = GiaiMaFromHex & Chr("&h" & mID(strHex, lngCount, 2))
Next
End Function
Mã PHP:'---------------------------------------------------------------------------------------
' Procedure/ Ten thu tuc : Ma Hoa Key Dang ky
' Author/ Nguoi khoi tao : maidinhdan@gmail.com
' Tao tren may tinh User : DANAspireV5
' Date/ Ngay tao : 12/31/2016-13:40
' Purpose/Mo ta :
'---------------------------------------------------------------------------------------
'
Function MaHoaKeyDangky(KeyDangky As String) As String
Dim b1 As String, b2 As String, b3 As String, b4 As String, b5 As String, b6 As String, b7 As String, b8 As String
Dim l As Byte
b1 = KeyDangky
b2 = MahoaToHex(b1)
b3 = Mahoa(b2, 45)
l = Len(b3) / 2
k = Left(b3, Len(b3) - Round(l, 0))
q = mID(b3, Len(b3) - Round(l, 0) + 1)
b4 = q & k
b5 = Mahoa(b4, 120)
b6 = Mahoa(b5, 100)
b7 = Mahoa(b6, 80)
b8 = MahoaToHex(b7)
MaHoaKeyDangky = b8
End Function
Mã PHP:'---------------------------------------------------------------------------------------
' Procedure/ Ten thu tuc : Giai Ma Key Dang ky
' Author/ Nguoi khoi tao : maidinhdan@gmail.com
' Tao tren may tinh User : DANAspireV5
' Date/ Ngay tao : 12/31/2016-13:40
' Purpose/Mo ta :
'---------------------------------------------------------------------------------------
'
Function GiaiMaKeyDangky(KeyDangkyDaMaHoa As String) As String
Dim b1 As String, b2 As String, b3 As String, b4 As String, b5 As String, b6 As String, b7 As String, b8 As String
Dim l As Byte
b1 = KeyDangkyDaMaHoa
b2 = GiaiMaFromHex(b1)
b3 = GiaiMa(b2, 80)
b4 = GiaiMa(b3, 100)
b5 = GiaiMa(b4, 120)
l = Len(b5) / 2
k = Left(b5, Len(b5) - Round(l, 0))
q = mID(b5, Len(b5) - Round(l, 0) + 1)
b6 = q & k
b7 = GiaiMa(b6, 45)
b8 = GiaiMaFromHex(b7)
GiaiMaKeyDangky = b8
End Function
Mã PHP:Function KiemtraKey(KeyKichHoatTable As String) As Boolean
On Error GoTo Loi
'Nhap code vao
If GiaiMaKeyDangky(Nz(KeyKichHoatTable)) = DocHDD Then KiemtraKey = True
'
On Error GoTo 0
Exit Function
Loi:
KiemtraKey = False
End Function
* Sau khi có các hàm cần thiết ta thiết kế 2 form:
1. Form dành cho người dùng đăng ký; khi họ bật lên nó sẽ hiển thị khóa đăng ký, họ phải gửi cho bạn khóa này
2. Form cho bản thân ta, tức là, khi người dùng gửi bạn khóa đăng ký bạn sẽ dùng form này để tìm khóa kích hoạt sử dụng chương trình để gửi cho họ
* Demo minh họa theo link bên dưới:
* Bạn nào có nhu cầu nghiên cứu code xin để lại email để gửi bản mdb không khóa.
Thân mến -
RE: Tạo khóa bản quyền
huuduy.duy > 29-07-18, 01:16 AM
Cho em xin file mdb vào mail huuduy.duy@gmail.com
Cảm ơn anh -
RE: [Demo] Tạo khóa bản quyền cho phần mềm
ledangvan > 29-07-18, 10:46 PM
Cho anh xin File mdb vào Ledangvan06@gmail.com với
Anh Cảm ơn nhiều -
RE: [Demo] Tạo khóa bản quyền cho phần mềm
xuankien07 > 30-07-18, 04:22 PM
Cho mình xin file mdb, mail xuankien07@gmail.com. Cảm ơn nhiều! -
RE: [Demo] Tạo khóa bản quyền cho phần mềm
cpucloi > 30-07-18, 04:32 PM
Pác Mãi Dính Đạn cho em xin cái pass nhé. Thank pác -
RE: [Demo] Tạo khóa bản quyền cho phần mềm
Xuân Thanh > 30-07-18, 04:39 PM
Tất cả mọi thủ tục, Bạn mai dinh dan đã nói hết rồi các bạn chỉ cần vận dụng thôi
1/ Thủ tục Đọc HĐH và Mã hóa để trong dự án được phân phối cho người dùng
2/ Thủ tục Giải Mã cất ỏ nhà. Khi nào người sử dụng gửi thông tin đến thì giải mã và gửi Key đâng ký cho người dùng để nạp vào hệ thống
3/ Để có thông tin người dùng gửi đên, tạo một form trong dự án người dùng có 1 textbox để nhận thông tin và một command yêu cầu đăng ký sử dụng để gọi thủ tục MaHoaKeyDangKy. Thông tin người dùng nhân được hiển thị ở textbox. Đó chính là thông tin được gửi đến bạn để bạn giải mã thành Key bản quyền
4/ Ở nhà bạn tạo một dự án chỉ có 1 form gồm 1 textbox và một com để gọi thủ tục GiaiMaKeyDangKy
@maidinhdan
Giới thiệu thêm thủ tục GiaiMa để cho kết quả là một chuỗi gồm 4 hoặc 5 nhóm ký tự, mỗi nhóm gồm 4 hoặc 5 ký tự (Key đăng ký bản quyền có vẻ.... chuyên nghiệp hơn).
Ví dụ Key có dạng : AHGF-RTDB-MKEF-GCSU-QLAK hoặc AD12Y-4EDG8-H84DF-KLAC5-4X2JK -
RE: [Demo] Tạo khóa bản quyền cho phần mềm
mrsiro > 30-07-18, 08:06 PM
mình xin file mdb nha bạn, xin cám ơn rất nhiều
sirolichking15@gmail.com -
RE: [Demo Phần 1] Tạo khóa bản quyền cho phần mềm
tui123 > 31-07-18, 05:47 PM
Cho mình xin file mdb và Pass VBA vào mail: tdanh2002@gmail.com
Cảm ơn bạn -
RE: [Demo Phần 1] Tạo khóa bản quyền cho phần mềm
NguyenDungAnh > 31-07-18, 06:23 PM
dunganh9301@gmail.com
Em chân thành cám ơn bác dân! -
RE: [Demo Phần 1] Tạo khóa bản quyền cho phần mềm
maidinhdan > 01-08-18, 10:06 PM
đã gửi tới:
Trích dẫn:Đỗ Hữu Duy <huuduy.duy@gmail.com>,
Dangvan Le <Ledangvan06@gmail.com>,
CPUCLoi <cpucloi@gmail.com>,
so siro <sirolichking15@gmail.com>,
Trung Huu <tdanh2002@gmail.com>,
nguyen anh <dunganh9301@gmail.com>