Chào mọi người.
Dạo gần đây mình đang tìm hiểu về việc phát triển chương trình bản quyền cho ứng dụng mà mình phát triển, vì hiện tại ởViệt Nam việc bẻ khóa bản quyền chương trình đã thành thông lệ rồi, và việc nhiều chương trình lớn đều được người Việt Nam bẻ khóa và chia sẽ đến mọi người.Theo như những gì mình đọc được, thì nói đến
Microsoft việc bẻ khóa và sữ dụng miền phí của người dùng internet ở Việt Nam làm cho lãnh đạo Microsoft phải trực tiếp sang Việt Nam để tìm hiểu vấn đề và nguyên nhân, nhưng vẫn chưa thể tìm ra được điều gì về những ứng dụng của Microsoft vẫn bị bẻ khóa và chia sẽ miễn phí.Qua bài viết này mình giới thiếu đến người dùng nhiều tồn tại và rủi ro khi các bạn sữ dụng những chương trình được phát tán miến phí trên
Internet để phòng tránh rủi ro khi sữ dụng nhưng chương trình Active bản quyền đó nhé.Vào chủ đề mình đang học tập đó là việc sữ dụng
LexActivator Active để thêm bản quyền cho chương trình của bản thân mình như mong muốn của một số anh chị em coder hiện tạiThêm giấy phép vào ứng dụng của bạn
Sau khi thêm sản phẩm cho ứng dụng của bạn vào cổng thông tin quản trị, bạn sẽ cần thực hiện những việc sau:- Lưu ý ID sản phẩm (từ menu hành động trong bảng).
- Tải xuống Product.dat cho sản phẩm (từ menu hành động trong bảng).
- Tải xuống dự án ví dụ từ Github
Product.dat chứa dữ liệu sản phẩm được LexActivator sử dụng. ID sản phẩm là mã định danh của sản phẩm sẽ được sử dụng trong mã.Thêm thư viện vào ứng dụng của bạn
Trình bao bọcLexActivator cho VB.NET có thể dễ dàng cài đặt thông qua nugetInstall-Package Cryptlex.LexActivatorLexActivator phụ thuộc vào VS2015runtime trên Windows . Trên các máy đích mà bạn sẽ triển khai ứng dụng, bạn có thể cài đặt VS2015runtime, nếu không có, bằng cách sử dụng liên kết: https://www.microsoft.com/en-in/download/details.aspx?id=48145Thiết lập tệp product.dat và ID sản phẩm
Điều đầu tiên bạn cần làm là nhúng tệp
Product.dat vào ứng dụng của mình bằng SetProductData() hàm hoặc đặt đường dẫn tuyệt đối của tệp bằng SetProductFile() hàm.Điều tiếp theo bạn cần làm là đặt id sản phẩm của ứng dụng trong mã của bạn bằng
SetProductId() hàm. Nó đặt id của sản phẩm bạn sẽ thêm giấy phép vào.LexActivator.SetProductData("PASTE_CONTENT_OF_PRODUCT.DAT_FILE");
LexActivator.SetProductId("PASTE_PRODUCT_ID", LexActivator.PermissionFlags.LA_USER);
Nếu ứng dụng của bạn yêu cầu quyền quản trị
(root) để chạy (ví dụ: dịch vụ, daemon, v.v.), thay vì truyền LexActivator.PermissionFlags.LA_USER cờ, bạn cần truyền LexActivator.PermissionFlags.LA_SYSTEM.Nếu ứng dụng của bạn yêu cầu một lần kích hoạt duy nhất được chia sẻ giữa tất cả người dùng hệ điều hành (
kích hoạt toàn hệ thống), hãy chuyển LexActivator.PermissionFlags.LA_ALL_USERS trước khi kích hoạt. Cờ này chỉ tương thích với hệ điều hành Windows.Kích hoạt giấy phép
Để kích hoạt giấy phép trong ứng dụng của bạn bằng khóa cấp phép, bạn sẽ sử dụngActivateLicense() hàm API LexActivator. Hàm này sẽ gọi /v3/activations điểm cuối Cryptlex Web API, xác minh phản hồi được mã hóa và ký kỹ thuật số để xác thực giấy phép.Private Sub activateLicenseBtn_Click(ByVal sender As Object, ByVal e As EventArgs)
Try
Dim status As Integer
LexActivator.SetLicenseKey(productKeyBox.Text)
LexActivator.SetActivationMetadata("key1", "value1")
status = LexActivator.ActivateLicense()
If status = LexStatusCodes.LA_OK OrElse status = LexStatusCodes.LA_EXPIRED OrElse status = LexStatusCodes.LA_SUSPENDED Then
Me.statusLabel.Text = "Activation Successful :" & status.ToString()
Me.activateBtn.Text = "Deactivate"
Me.activateTrialBtn.Enabled = False
Else
Me.statusLabel.Text = "Error activating the license: " & status.ToString()
End If
Catch ex As LexActivatorException
Me.statusLabel.Text = "Error code: " & ex.Code.ToString() & " Error message: " + ex.Message
End Try
End Sub
Mã trên phải được thực thi tại thời điểm kích hoạt giấy phép.
Xác minh kích hoạt giấy phép
Mỗi lần ứng dụng của bạn khởi động, bạn cần xác minh xem giấy phép của bạn đã được kích hoạt hay chưa. Việc xác minh này phải diễn ra cục bộ bằng cách xác minh chữ ký số mật mã của kích hoạt. Lý tưởng nhất là nó cũng nên liên hệ không đồng bộ với máy chủCryptlexM để xác thực và đồng bộ hóa kích hoạt giấy phép theo định kỳ. Đối với điều này, bạn cần sử dụng IsLicenseGenuine() hàm API LexActivator.Public Sub New()
InitializeComponent()
Try
LexActivator.SetProductData("PASTE_CONTENT_OF_PRODUCT.DAT_FILE")
LexActivator.SetProductId("PASTE_PRODUCT_ID", LexActivator.PermissionFlags.LA_USER)
Dim status As Integer = LexActivator.IsLicenseGenuine()
If status = LexStatusCodes.LA_OK OrElse status = LexStatusCodes.LA_EXPIRED OrElse status = LexStatusCodes.LA_SUSPENDED OrElse status = LexStatusCodes.LA_GRACE_PERIOD_OVER Then
Me.statusLabel.Text = "License genuinely activated! Activation Status: " & status.ToString()
Else
Me.statusLabel.Text = "License is not activated: " & status.ToString()
End If
Catch ex As LexActivatorException
Me.statusLabel.Text = "Error code: " & ex.Code.ToString() & " Error message: " + ex.Message
End Try
End Sub
Mã trên phải được thực thi mỗi khi người dùng khởi động ứng dụng. Sau khi xác minh cục bộ, nó sẽ lên lịch kiểm tra máy chủ định kỳ trong một luồng riêng biệt.
Qua những gới ý trên, mọi người cũng hiểu chút nào về việc phát triển bản quyền cho chương trình của bản thân mình rồi chứ, nếu không hiểu ở bước nào có thể để lại bình luận để mình giúp nhé.
Chúc mọi người thành công.

2 Comments
không đơn giản như em nghĩ vậy đâu, để kiểm soát được key active chương trình cần phải có hệ thống kiểm soát người dùng key và nhiều thứ khác để bảo vệ chương trình tốt nhất em nhé.
ReplyDeletee đọc mà không hiểu gì luôn a. e nghĩ nếu đã làm bản quyền thì mình tự viết luôn phần active bản quyền đó luôn sẽ hay hơn a ạh, sữ dụng chương trình thứ 2 thế này không đảm, như e biết thì kết nối csdl trong chương trình đã tạo key, và phân chia người dùng ở phiên bản dùng thử và active key nữa là đc a ạh
ReplyDeleteCảm ơn bạn đã để lại góp ý cho tác giả