2011-12-22 43 views
6

thể trùng lặp:
How are Software License Keys generated?Làm thế nào để bảo vệ ứng dụng của tôi chống lại vi phạm bản quyền

Tôi là một người mới bắt đầu trong Phát triển phần mềm và tôi muốn biết làm thế nào để thực hiện một hệ thống bảo vệ trên đảo Java của tôi ứng dụng để bảo vệ chống lại vi phạm bản quyền. Tôi biết rằng không có giải pháp hoàn hảo. Nhưng tôi chỉ muốn biết cách bảo vệ nó. Và đừng nói với tôi để biến nó thành nguồn mở, điều đó là không thể trong trường hợp của tôi :).

Cảm ơn bạn đã dành thời gian và câu trả lời.

+1

Mã java của bạn được biên dịch, vì vậy mã nguồn của nó được bảo vệ, nếu bạn muốn bảo vệ các phiên bản đã sao chép của nó, có một câu hỏi tương tự ở đây http://stackoverflow.com/questions/3647255/how-do-i-copy- bảo vệ-my-java-ứng dụng của tôi –

+0

@CarlosQuijano Nghĩ rằng mã java được biên dịch nhưng vẫn có thể dịch ngược với phần mềm miễn phí availabel qua internet và thậm chí là người mới bắt đầu có thể xem bạn đã đặt mật khẩu nào cho kết nối DB của mình hoặc mã thực sự của bạn là gì v.v. –

Trả lời

8

Vì bất kỳ giải pháp thực thi giấy phép nào cũng có thể bị bẻ khóa một chút, tôi khuyên bạn không nên thực hiện bảo vệ sao chép. Quản lý giấy phép chỉ là bất tiện cho người dùng của bạn.

Nếu bạn quyết tâm triển khai bảo vệ chống sao chép, bạn có thể sử dụng thư viện nguồn mở như TrueLicense.

Ngoài ra, bạn nên obfuscate mã bytecode của mình để biến nó thành khó khăn hơn để thiết kế lại ứng dụng của bạn.

+0

cảm ơn rất nhiều câu trả lời của bạn. – Zak001

+0

Đó chỉ là "khó khăn hơn đáng kể" theo nghĩa tương đối. Một người nào đó với các kỹ năng liên quan có thể vẫn có thể vô hiệu hóa một móc quản lý giấy phép obfuscated trong một vài giờ, nếu không nhanh hơn. –

+0

@StephanC: Tất nhiên, nhưng nó sẽ là một vài phút nếu không :) –

1

Tôi đã cân nhắc điều này vài năm trước. Cuối cùng tôi quyết định không cấp giấy phép; Tôi đã cho đi miễn phí nhưng tôi nghĩ ý tưởng tốt nhất của tôi là:

Gửi cho họ tệp giấy phép chứa khóa. Đặt tên tệp với tên đầy đủ và địa chỉ e-mail hoặc một cái gì đó không kém phần cá nhân và đảm bảo đổi tên nó sẽ làm mất hiệu lực khóa. Điều này nên đơn giản để đạt được. Có rất nhiều kỹ thuật bạn có thể sử dụng sẽ không yêu cầu lưu trữ khóa trong ứng dụng của bạn.

Giống như bất kỳ hệ thống nào, điều này không phải là không thể tránh khỏi nhưng như đã được giải thích cho tôi nhiều năm trước, bảo mật là để giữ cho người trung thực thành thật.

+0

yeah, tôi biết rằng không có giải pháp hoàn hảo. – Zak001

+2

Vì bạn đã chia sẻ ý tưởng của mình với tôi, tôi sẽ cho bạn biết về tôi: 1) Tôi sẽ tạo một băm cho mỗi phiên bản. 2) trước khi cài đặt ứng dụng sẽ tính toán băm của chính nó và gửi nó đến một máy chủ mà sẽ kiểm tra nếu (băm, phiên bản) là chính xác. Nếu không, cài đặt sẽ ngừng và máy chủ sẽ gửi cho tôi một email kèm theo một số chi tiết (địa chỉ IP, địa chỉ MAC và ngày tháng). 3) Bây giờ nếu băm là ok, việc xác minh giấy phép sẽ được khởi chạy. Nếu giấy phép là ok, quá trình cài đặt sẽ bắt đầu. Tất cả những thứ này sẽ được giải mã. Tôi biết, không đủ. – Zak001

+1

@ Zak001 - có thể mất vài giờ để giải quyết. Nhưng một khi giải pháp đã được thực hiện, một trình cài đặt bị tấn công chỉ đơn giản là bỏ qua bước kiểm tra với máy chủ và sử dụng khóa được tìm nạp trước đó để thực hiện giải mã. (Ngay cả việc tạo khóa/băm mới cho mỗi lần tải xuống sẽ không ngăn chặn được ...) –

Các vấn đề liên quan