Trình tạo khoá (key-gen) là một chương trình máy tính được dùng để tạo ra một khóa cấp phép sản phẩm, chẳng hạn như một số sêri cần thiết cho việc kích hoạt để sử dụng một phần mềm ứng dụng nào đó. Các Keygen có thể được phân phối hợp pháp bởi nhà sản xuất phần mềm để cấp phép phần mềm hàng loạt trong môi trường thương mại cho toàn bộ trang hoặc doanh nghiệp, hoặc chúng có thể được phân phối bất hợp pháp trong các trường hợp vi phạm bản quyền hoặc vi phạm bản quyền phần mềm.
Trình tạo khóa bất hợp pháp thường được phân phối bởi những người bẻ khoá phần mềm trong warez scene và demoscene. Những keygen này thường chơi "nhạc Keygen", nhạc này thường gồm thể loại dubstep hoặc chiptunes[1] chạy trong nền và có giao diện người dùng nghệ thuật.
Giấy phép phần mềm là một công cụ pháp lý điều chỉnh việc sử dụng và phân phối của phần mềm máy tính.[2] Thông thường, các giấy phép như vậy được thực thi bằng cách triển khai trong phần mềm theo cơ chế kích hoạt sản phẩm hoặc quản lý bản quyền kỹ thuật số (DRM),[3] những cơ chế này tìm cách ngăn chặn việc sử dụng trái phép phần mềm bằng cách phát hành một chuỗi mã phải được nhập vào ứng dụng khi được nhắc hoặc lưu trữ trong cấu hình của nó.[cần nguồn tốt hơn]
Nhiều chương trình cố gắng xác minh hoặc xác thực các khóa cấp phép qua Internet bằng cách thiết lập một phiên với ứng dụng cấp phép của nhà xuất bản phần mềm. Keygen nâng cao thường bỏ qua (bypass) cơ chế này và bao gồm tính năng bổ sung cho khóa xác minh, chẳng hạn bằng cách tạo dữ liệu xác thực mà nếu không sẽ được máy chủ kích hoạt trả về. Nếu phần mềm yêu cầu kích hoạt trên điện thoại thì keygen có thể tạo mã kích hoạt chính xác để hoàn tất kích hoạt. Một phương pháp khác thường được sử dụng là mô phỏng máy chủ kích hoạt, keygen sẽ vá bộ nhớ chương trình để phần mềm "coi như" keygen là máy chủ kích hoạt thực tế.
Multi-keygen là một keygen cung cấp khả năng tạo khóa cho nhiều ứng dụng phần mềm. Multi-keygen đôi khi được phát hành trên các keygen đơn lẻ nếu một loạt sản phẩm yêu cầu thuật toán giống nhau để tạo khóa sản phẩm. Trong trường hợp này, phải thay đổi chỉ một giá trị được mã hóa trong khóa để thay đổi mục tiêu cần nhắm là một sản phẩm khác.
Keygen trái phép thường vi phạm các điều khoản cấp phép phần mềm được viết bởi các lập trình viên tham gia vào kỹ nghệ đảo ngược và bẻ khóa phần mềm, các keygen này thường được gọi là trình bẻ khoá, để lách luật chống sao chép của phần mềm hoặc quản lý bản quyền kỹ thuật số cho đa phương tiện.
Keygen thường có sẵn để tải xuống trên các trang web warez hoặc thông qua mạng peer-to-peer (P2P).
Không phải tất cả keygen đều chứa mã độc, nhưng nhiều keygen trái phép, thường có sẵn thông qua mạng P2P hoặc bằng nhiều cách khác, có chứa mã độc.[4] Các trình tạo khóa này có hoặc không thể tạo khóa hợp lệ, nhưng mã độc được nhúng trong phần mềm bị ẩn đi cùng một lúc có thể là phiên bản của CryptoLocker (mã độc tống tiền).[5][6]
Phần mềm diệt virus có thể phát hiện ra phần mềm độc hại được nhúng trong keygen; các phần mềm diệt virus như vậy cũng thường xác định các keygen trái phép không chứa tải trọng như là một phần mềm không mong muốn tiềm ẩn, và thường gắn nhãn chúng bằng một cái tên như Win32/Keygen hoặc Win32/Gendows.[4]
Một chương trình được thiết kế để hỗ trợ hack được xác định là HackTool.Win32.HackAV hoặc là not-a-virus:Keygen từ Kaspersky Labs hay là HackTool:Win32/Keygen từ Trung tâm Chống Phần mềm độc hại của Microsoft. Theo Trung tâm Chống Phần mềm độc hại của Microsoft, phát hiện đầu tiên được biết đến của nó là từ ngày 16 tháng 7 năm 2009.[7] Các mối đe dọa bảo mật sau đây thường được tìm thấy trên PC có liên quan đến các công cụ này:
Trình thay đổi khoá hay còn gọi là keychan là một biến thể của keygen. Keychan là một phần mềm nhỏ thay đổi khóa cấp phép hoặc số sê-ri của một phần mềm độc quyền cụ thể được cài đặt trên máy tính.