A threat model for a licensed desktop application
Before choosing tools, list who wants what, what they hold and what you lose if they succeed. Most real-world risk comes from key sharing, not from reverse-engineering experts.
Cộng đồng phòng thủ
Nơi những người làm phần mềm chia sẻ cách giữ ứng dụng an toàn trước cracker và kẻ đảo ngược
Before choosing tools, list who wants what, what they hold and what you lose if they succeed. Most real-world risk comes from key sharing, not from reverse-engineering experts.
Trước khi chọn công cụ, hãy liệt kê ai muốn gì, họ có gì trong tay và bạn mất gì nếu họ thành công. Phần lớn rủi ro thực tế đến từ chia sẻ key, không phải từ chuyên gia đảo ngược.
When a cracked copy appears, the first question is which license it came from. A hidden mark tied to the buyer and the machine answers it without guessing.
Khi một bản crack xuất hiện, câu hỏi đầu tiên là nó đến từ license nào. Một dấu ẩn gắn với người mua và máy giúp trả lời mà không cần đoán.
Cracked builds leave traces on the server: bad signatures, replays, one key on too many machines, unknown builds. Watch them as a scoring system, not as separate alarms.
Bản crack để lại dấu vết trên server: chữ ký sai, yêu cầu phát lại, một key trên quá nhiều máy, build lạ. Theo dõi chúng như một hệ thống điểm, không như từng báo động riêng lẻ.
Packers and code virtualization raise the time needed for analysis, paid for in performance, size and antivirus false positives. Wrap the parts that matter instead of wrapping everything.
Packer và ảo hoá mã làm tăng thời gian phân tích, đổi lại bằng hiệu năng, kích thước và cảnh báo nhầm từ antivirus. Bọc đúng chỗ quan trọng thay vì bọc tất cả.
Integrity and anti-debug checks make analysis costlier, but they run on the attacker's machine and can always be switched off. Use them as signals sent to the server, not as the last wall.
Kiểm tra toàn vẹn và chống debug làm việc phân tích tốn công hơn, nhưng chạy trên máy kẻ tấn công nên luôn có thể bị tắt. Dùng chúng như tín hiệu gửi về server, không như bức tường cuối cùng.
Working without a network is convenient, but every offline day is a day a revoked license keeps running. Signed tokens, short lifetimes and rewind detection keep both promises.
Chạy không cần mạng là tiện, nhưng mỗi ngày offline là một ngày license bị thu hồi vẫn chạy. Token có ký, hạn ngắn và chống lùi giờ giữ được cả hai.
Component fingerprints change easily and are easy to spoof. A key created inside a security chip cannot be copied off the machine. Together they recognise real machines without punishing honest users.
Vân tay ghép từ linh kiện dễ đổi và dễ giả. Một khoá tạo trong chip bảo mật không thể chép ra khỏi máy. Kết hợp cả hai cho phép nhận ra máy thật mà không làm khó người dùng chân chính.
An if-statement in a binary can be patched to always be true. What cannot be patched is data or computation that only the server hands out, and only to a valid session.
Một câu lệnh if trong file chạy có thể bị sửa thành luôn đúng. Thứ không thể sửa là dữ liệu hoặc phép tính chỉ server mới cấp, và chỉ cấp cho phiên hợp lệ.
Pinning stops intercepting proxies even when the machine trusts a forged certificate. Done carelessly, it can cut every shipped build off the moment you change certificates.
Ghim khoá chặn proxy đọc lén ngay cả khi máy đã tin một chứng chỉ giả. Nhưng ghim sai cách có thể làm mọi bản đã phát hành mất kết nối khi bạn đổi chứng chỉ.
A valid request recorded once stays valid if the server does not remember seeing it. One-time nonces, a narrow time window and short sessions close this attack together.
Một yêu cầu hợp lệ bị ghi lại vẫn hợp lệ nếu server không nhớ đã thấy nó. Nonce một lần, cửa sổ thời gian hẹp và phiên ngắn cùng nhau đóng lại kiểu tấn công này.