Chúng tôi muốn game của mình an toàn và công bằng cho mọi người. Và bản thân chúng tôi khi chơi game cũng không thích ai đó vượt mặt mình chỉ vì chơi ăn gian, nên đã cố gắng hết sức để chặn mọi kiểu can thiệp không mong muốn vào trò chơi. Nhân tiện đang làm về vấn đề này, tôi nghĩ cũng sẽ tốt để chia sẻ một vài điểm căn bản trong game hacking cho mọi người biết.
1. Hack là gì?
Hacker bản thân nó không phải là một từ xấu, mà thật ra để chỉ những người hiểu rõ cách làm việc của hệ thống, máy tính và mạng máy tính.
Person who delights in having an intimate understanding of the internal workings of a system, computers and computer networks in particular. (theo Wikipedia)
Tuy nhiên, để đơn giản hoá, trong bài viết này, ta hiểu nghĩa từ “hacker” theo nghĩa tiêu cực của nó mà ta vẫn hay thấy trên truyền thông đại chúng: người xâm nhập vào hệ thống trái phép để thay đổi các thông số, tính năng… không mong muốn bởi hệ thống.
Mục tiêu của các bạn hacker nói chung, và hack game nói riêng, là bằng cách nào đó tạo lợi thế cho riêng mình. Ở phần mềm (game cũng là phần mềm nhé) thì có thể là cracking để vượt qua các hàng rào kiểm tra và sử dụng phần mềm miễn phí. Ở game, có thể là thay đổi một yếu tố nào đó để tạo ra lợi thế, như hack tiền, hack bản đồ, hack chỉ số…
Câu hỏi: Có mấy loại hack?
Có nhiều loại hack khác nhau, nhưng trong bài viết này, tôi giới thiệu vài dạng cơ bản:
- Sử dụng cheat hoặc bug
- Thay đổi file configuration/save
- Thay đổi thông số trên RAM
2. Sử dụng cheat hoặc bug
Cheat, nói đơn giản là một phần code mà nhà phát triển đề ra sẵn trong quá trình làm game để dễ test game về sau này. Ví dụ như trên hệ máy NES ngày xưa, tôi còn nhớ bạn có thể nhấn nút Up (mũi tên hướng lên) và nút A để đóng băng đối thủ và giết nó dễ dàng. Nhờ đó, người test game có thể qua cửa khá nhanh chóng và rút ngắn thời gian test game. Khi ra mắt, dĩ nhiên tôi phải xoá hết những code này đi, nhưng “vì lý do nào đó” mà tôi quên mất. Thế là người chơi lợi dụng nó. Ngoài ra, còn có một số game cũng cố tình để lại debug console để có thể can thiệp vào game nhanh chóng, như DotA 2 bây giờ vẫn có console để chơi offline.
Console để chơi offline với Bot trong DotA 2
Còn bug thì dễ hiểu hơn, là do lúc phát triển, nhà phát triển vô tình làm lỗi, chẳng hạn như trong DotA bản cũ có một bug mà tôi phát hiện ra là nếu chết ngay lúc thắng trận, thì sau đó hồi sinh lại và có thể giết chết được hồ nước. Đó là loại lỗi mà lập trình viên hoặc người thiết kế game vô ý để sót hoặc không tính toán tới trường hợp game thủ làm như thế.
Vì thế, đây cũng là hình thức khó phát hiện và khó sửa bậc nhất dù rằng cheats và bugs là cách hack đơn giản. Cách khắc phục 2 cái này thì chỉ có cách là code cẩn thận và có tester để kiểm tra game thật kỹ càng trước khi ra mắt để tránh bỏ sót lỗi.
3. Thay đổi file configuration/save
File config là loại file lưu lại mọi thông số của người chơi trong game, chẳng hạn như quy định số tiền mới vô game sẽ cho là 1000 chẳng hạn. Nhưng nếu bạn sơ sót lưu file này dưới dạng dễ đọc (XML đọc bằng Notepad chẳng hạn) thì mọi người khi cài game có thể đơn giản mở nó lên, sửa thông số lại thàng 1 triệu, thế là xong! Chuyện tương tự cũng có thể xảy ra với các file save mà người chơi tạo ra trong game.
Với một số tựa game đời cũ, phương án này rất phổ biến, cá nhân tôi đã từng thấy một vài tools dùng để chỉnh save của game Diablo II của Blizzard như dưới đây, bạn có thể sửa máu, tiền, cấp độ và thậm chí có thể thêm vào bất kỳ món vũ khí nào bạn muốn dựa trên nguyên tắc cơ bản nói trên.
Trình chỉnh hero cho Diablo II
4. Thay đổi thông số trên RAM
Về nguyên tắc, mỗi khi trò chơi chạy, nó đều lưu dữ liệu tạm thời lên bộ nhớ RAM để xử lý. Thế nên phần lớn những người chơi hack bằng cách này đều cần một phần mềm đọc giá trị HEX trên RAM để xem các bản ghi, chẳng hạn như ArtMoney trên game PC ngày xưa chẳng hạn. Sau đó, bằng cách chạy nhiều lần để so sánh các bản giá trị khác nhau, họ tìm ra vị trí lưu trữ giá trị trên RAM để thay đổi. Hacker cần phải chạy vài lần như vậy là vì mỗi khi vào chơi, có thể có rất nhiều giá trị thay đổi (toạ độ nhân vật, số tiền, số máu…) mà nếu đổi hết các trường đó thì có khả năng cao là crash game, điều mà hacker không mong muốn.
5. Về game online và xử lý hacking
Với các game online, phần lớn những câu chuyện về thay đổi ở client có thể khắc phục được bằng cách lưu lên server và gia cố bảo mật cho hệ thống. Bên cạnh đó, với phần lớn nhà phát hành game online hiện nay, cũng rất tốt nếu có sử dụng thêm các công cụ chống hack ngoài như nProtect GameGuard, hay Valve Anti-Cheat…
Game MU ngày xưa sử dụng hệ thống chống hacking của nProtect GameGuard
Còn một số cách hack game khác ít phổ biến hơn mà trong bài viết này tôi chưa đề cập tới, như việc hack thời gian trên máy di động để tăng tốc độ game, dịch ngược phần mềm hoặc tấn công hệ thống máy chủ… Và bên cạnh đó, bạn luôn cần lưu ý một điều rằng bảo mật là quá trình liên tục và bạn chỉ có thể làm chậm quá trình hack. Nên không phải bạn ra game được mã hoá từ đầu đến cuối, tham chiếu chéo ở một chục chỗ ở cả client và server, đặt code rối loạn điên đảo mà an tâm. Rồi sẽ có ai đó tấn công được vào hệ thống và bạn sẽ phải liên tục nghiên cứu để phòng chống phương án tấn công mới, đảm bảo an toàn cho game. Vì thế patch liên tục, kể cả cập nhật game và bảo mật, là chuyện diễn ra thường ngày của game online.
Cũng bàn thêm một chút về câu chuyện vận hành, khi bạn đã phát hiện ra hack, bạn sẽ có khá nhiều lựa chọn để “xử lý” người chơi hack game, ở đây tôi liệt kê ra một số cách thường thấy:
- Khoá luôn không cho đăng nhập bằng client đó (kick ra khỏi server với game online)
- Block luôn ID hack
- Xoá toàn bộ thông tin, tài khoản… hoặc không tính thành tích với client hack
- Không cho lưu game lại
- Kiện người hack (đặc biệt nếu họ hack máy chủ hoặc phát tán bản hack gây thiệt hại lớn)
- ...
Nói chung, thế giới hack game có thể có nhiều thái cực, từ những chuyện thậm chí được cho phép để tăng tính hấp dẫn (như nhà sản xuất để lại cheats) cho đến câu chuyện phạm tội nếu bạn hack server lấy thông tin người dùng. Ở vai trò là nhà phát triển, bạn cũng cần nên biết nhiều về bảo mật (hơn cả những gì tôi nói trong bài này) để tự bảo vệ sản phẩm của bạn và làm nó công bằng hơn.
ConversionConversion EmoticonEmoticon