2012-02-29 30 views
12

Ứng dụng tôi đang làm việc sẽ tự động bị crack bởi antiLVL (mặc dù tôi không sử dụng LVL trong ứng dụng của mình).Tôi nên viết mã như thế nào để chống lại "vi phạm bản quyền một lần nhấp"?

Để bảo vệ ứng dụng của tôi khỏi "vi phạm bản quyền một lần nhấp", tôi đang triển khai tampering detection techniques explained at Google IO.

Tôi đã thử kiểm tra chữ ký cả với getPackageInfo() và phản chiếu (invoke()), nhưng AntiLVL có thể tự động xóa ứng dụng trong cả hai trường hợp.

Làm cách nào để viết mã sẽ không bị tự động bẻ khóa bởi phiên bản antiLVL hiện tại (1.4.0)? Ý tôi là, ngoài việc sử dụng JNI.

PS: Tôi không nói về việc ngăn chặn vi phạm bản quyền nói chung. Tôi chỉ muốn cướp biển để đào vào mã bằng tay chứ không phải là sử dụng một cracker tự động.

Trả lời

1

Vấn đề là, bất kỳ API nào chỉ phục vụ để kiểm tra tính hợp lệ của ứng dụng của bạn đều có thể bị hủy và được thay thế bằng phiên bản luôn trả về kết quả bạn mong đợi. Tôi đã không xem xét Anti-LVL chi tiết, nhưng tôi sẽ tưởng tượng nó đang làm điều này, đó là lý do tại sao nỗ lực của bạn để xác minh mã của bạn bằng cách sử dụng các API tích hợp của Dalvik cho mục đích này là không.

Để làm cho nó hoạt động, bạn sẽ phải tự mình làm việc, chỉ sử dụng các API có nhiều mục đích và không thể dễ dàng bị lật đổ. Một cách để thực hiện nó là tính tổng kiểm tra tệp .apk của bạn hoặc chỉ tệp classes.dex bên trong tệp và xác minh nó đối với một số tài nguyên bên ngoài (máy chủ trực tuyến có danh sách các phiên bản chính xác đã biết, tệp được tải xuống Thẻ SD trên thực thi đầu tiên, v.v., tài nguyên trong tệp .apk không được bao gồm trong classes.dex). Điều này ngăn cản sửa đổi mã, mà tôi tin là làm thế nào anti-LVL hoạt động. Tôi đã không cố gắng này bản thân mình, nhưng nghi ngờ nó sẽ làm việc.

+0

Cảm ơn bạn đã trả lời. AntiLVL là một phần mềm đẹp. Sạch sẽ, mạnh mẽ, được suy nghĩ và tùy chỉnh. Nó là "dễ dàng" để phá vỡ nó trong đó bạn "chỉ" cần phải viết mã mà sẽ không bị bắt bởi các quy tắc grep-và-thay thế (được cung cấp trong một tập tin xml riêng biệt). Tuy nhiên, tôi không có đủ thời gian để học cách tạo ra mùi không bình thường. Trong mã của tôi, AntiLVL đã có thể mở và kiểm tra tất cả các lần kiểm tra của tôi. – tos

+0

Tôi không biết đủ thông tin để hiểu phần "thay thế" các quy tắc (sẽ hữu ích khi biết điều gì xảy ra sau hậu trường). Tôi đã suy nghĩ về quan điểm của bạn về các API đa mục đích. Tôi nghĩ về việc đặt một bãi mìn trong phần mềm: chương trình bẻ khóa sẽ loại bỏ một phần quan trọng của chương trình, điều này sẽ làm hỏng nó hoặc làm cho nó vô dụng. Cho đến bây giờ tôi không tìm thấy gì cả. – tos

0

The Presentation Notes từ hành vi trốn tránh Pirates và Dừng Ma cà rồng

Một số keypoint cơ bản

Xin lưu ý, #:r.page.X ở cuối liên kết tôi đã cung cấp sẽ không luôn mang đến cho bạn số trang trang cụ thể vì bất kỳ lý do gì. Nếu không, hãy lưu ý và duyệt thủ công.

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