Bối cảnh và vấn đề nghiên cứu
Sự phát triển của công nghiệp trò chơi điện tử trực tuyến và các giải đấu thể thao điện tử (e-sports) đã biến hệ thống bảng xếp hạng thành thước đo kỹ năng và vị thế của người chơi trong cộng đồng. Áp lực thăng tiến thứ hạng đã dẫn tới tình trạng tìm kiếm và sử dụng các công cụ gian lận nhằm đạt được lợi thế thi đấu mà không cần rèn luyện kỹ năng tự nhiên. Dưới góc độ an toàn thông tin, các hành vi can thiệp trái phép vào tiến trình game làm suy giảm tính toàn vẹn, tính bảo mật và tính sẵn sàng của hệ thống trò chơi, gây thiệt hại nghiêm trọng đến trải nghiệm của người dùng và tính công bằng của môi trường thi đấu. Do đó, việc nghiên cứu cơ chế can thiệp bộ nhớ và chèn mã độc vào trò chơi là nhiệm vụ kỹ thuật cần thiết, nhằm giúp các nhà phát triển và quản trị hệ thống nhận diện điểm yếu, từ đó xây dựng các biện pháp phòng vệ và giảm thiểu gian lận.
Mục tiêu nghiên cứu của đề tài được xác định cụ thể thông qua 3 nhiệm vụ kỹ thuật chính:
- Nghiên cứu lý thuyết về quét bộ nhớ, tìm kiếm địa chỉ offset trỏ tới các cấu trúc dữ liệu quan trọng (máu, đạn, tọa độ, thông tin thực thể); phân tích cơ chế đọc/ghi bộ nhớ bằng giao diện lập trình ứng dụng (Windows API) và kỹ thuật chèn mã (code injection/DLL injection).
- Phân tích, thiết kế và hiện thực hóa 02 công cụ kiểm thử can thiệp trên tựa game bắn súng góc nhìn thứ nhất Counter-Strike: Global Offensive (CS:GO): một công cụ hoạt động như một tiến trình độc lập bên ngoài (external process) và một công cụ can thiệp thông qua nạp thư viện liên kết động nội bộ (internal DLL injection).
- Xây dựng danh mục kịch bản kiểm thử, tiến hành các bài đo thực nghiệm chức năng trên CS:GO và đánh giá mức độ ổn định, khả năng tác động của các công cụ đối với tiến trình trò chơi.
Đối tượng nghiên cứu chính của đồ án là kỹ thuật chỉnh sửa bộ nhớ (Memory Editing - ME) và kỹ thuật chèn mã (Injection Code - IC, cụ thể là DLL Injection) áp dụng trên trò chơi Counter-Strike: Global Offensive. Phạm vi nghiên cứu giới hạn ở việc khảo sát, thực nghiệm trên phiên bản máy tính chạy trên hệ điều hành Windows trong môi trường cục bộ (offline/custom game), tập trung can thiệp các thông số và hàm chức năng hiển thị, vật lý và điều khiển nhân vật. Đồ án được hoàn thành vào tháng 12 năm 2023 tại Khoa An toàn thông tin, Học viện Công nghệ Bưu chính Viễn thông dưới sự hướng dẫn của TS. Cao Minh Thắng.
Cơ sở lý thuyết và phương pháp
Đồ án tổng hợp và đối chiếu 6 phương pháp tấn công/can thiệp phổ biến vào trò chơi điện tử hiện nay:
- Khai thác lỗi trò chơi (Exploiting Game Bugs - EGB): Tận dụng các sai sót trong mã nguồn, cơ sở dữ liệu hoặc xử lý đồ họa (ví dụ: lỗi "BIG jump bug" của đội BIG tại giải PGL Major Krakow 2017 hay lỗi "Boostmeister" của đội Fnatic tại DreamHack).
- Bot tự động hóa (Automation Bots - AB): Sử dụng phần mềm mô phỏng hành động lặp lại như tự động nhắm bắn trong game bắn súng hoặc tự động làm nhiệm vụ trong game nhập vai (như game Võ Lâm).
- Tấn công người đứng giữa (Man in the Middle - MITM): Bắt, chặn và sửa đổi các gói tin mạng truyền giữa máy trạm (client) và máy chủ (server) nhằm thay đổi máu, đạn hoặc đánh cắp thông tin đăng nhập.
- Tấn công lừa đảo (Phishing Attack - PA): Giả mạo giao diện, dịch vụ quản trị hoặc trang web đăng nhập để chiếm đoạt tài khoản game của người chơi.
- Chỉnh sửa bộ nhớ (Memory Editing - ME): Sửa đổi trực tiếp các giá trị lưu trữ trong bộ nhớ truy xuất ngẫu nhiên (RAM) của máy tính khi tiến trình game đang hoạt động.
- Chèn mã (Injection Code - IC): Nạp thêm các đoạn mã hoặc thư viện liên kết động vào không gian địa chỉ của tiến trình game nhằm thay đổi luồng thực thi hoặc tạo luồng xử lý mới.
| Kỹ thuật tấn công |
Ưu điểm |
Nhược điểm |
| Exploiting Game Bugs (EGB) |
Mang lại lợi thế tức thì bằng cách tận dụng lỗi có sẵn trong logic game |
Phụ thuộc vào lỗi tồn tại; dễ bị nhà phát triển phát hiện và vá qua các bản cập nhật |
| Automation Bots (AB) |
Tăng hiệu suất, duy trì thao tác liên tục mà không tốn công sức |
Kém hiệu quả đối với các tựa game đối kháng phức tạp; dễ bị phát hiện hành vi |
| Man in the Middle (MITM) |
Cho phép đánh cắp hoặc thay đổi gói tin dữ liệu trên đường truyền |
Gặp rào cản lớn khi hệ thống game áp dụng các giao thức mã hóa mạng như SSL/TLS |
| Memory Editing (ME) |
Thay đổi giá trị dữ liệu ngay lập tức; hoạt động trên cả game trực tuyến và ngoại tuyến |
Nếu xác định sai lệch vùng nhớ, chương trình có thể gặp lỗi crash và bị đóng đột ngột |
| Injection Code (IC) |
Tùy biến sâu, sửa đổi hoặc thêm mới luồng xử lý nội bộ của trò chơi |
Yêu cầu cú pháp chính xác tuyệt đối; chèn mã không phù hợp có thể phá vỡ luồng thực thi |
| Phishing Attack (PA) |
Kỹ thuật triển khai đơn giản, tiếp cận được số lượng lớn người dùng |
Phụ thuộc vào sự bất cẩn của nạn nhân; dễ bị phòng ngừa bởi các bộ lọc bảo mật |
Về công cụ và môi trường công nghệ, tác giả sử dụng phần mềm Cheat Engine (CE) làm trình quét ô nhớ và phân tích dịch ngược cấu trúc dữ liệu; ngôn ngữ lập trình C/C++; thư viện giao diện Dear ImGui của Omar Cornut tích hợp qua DirectX 9 hook; cùng các hàm API của hệ điều hành Windows để thao tác với tiến trình: OpenProcess, ReadProcessMemory, WriteProcessMemory, VirtualAllocEx, CreateRemoteThread, WaitForSingleObject, LoadLibraryA, CreateToolhelp32Snapshot, Module32Next.
Phương pháp nghiên cứu kết hợp giữa phương pháp kế thừa, thu thập tài liệu khoa học; phương pháp phân tích, tổng hợp so sánh các giải pháp can thiệp; phương pháp phân tích thiết kế hệ thống phần mềm (sơ đồ Use Case, kịch bản tuần tự); và phương pháp kiểm thử thực nghiệm chức năng trên trò chơi đích.
Thiết kế và triển khai công cụ kiểm thử
Căn cứ vào mục tiêu nghiên cứu, tác giả xây dựng 02 công cụ can thiệp với cấu trúc kỹ thuật khác nhau:
+-------------------------------------------------------------------------------+
| KIẾN TRÚC CÔNG CỤ THỨ NHẤT: TIẾN TRÌNH NGOÀI (EXTERNAL MEMORY EDITING) |
| |
| [ Công cụ kiểm thử (External Process) ] |
| | |
| +--- (1) CreateToolhelp32Snapshot() -> Lấy PID & Base Address |
| +--- (2) OpenProcess(PROCESS_ALL_ACCESS) -> Mở Handle tiến trình |
| +--- (3) ReadProcessMemory() -> Đọc vị trí nhân vật, trạng thái sống |
| +--- (4) WriteProcessMemory() -> Ghi đè bộ nhớ, kích hoạt Glow ESP |
| | |
| v |
| [ Không gian bộ nhớ CS:GO (Target Process: csgo.exe) ] |
+-------------------------------------------------------------------------------+
+-------------------------------------------------------------------------------+
| KIẾN TRÚC CÔNG CỤ THỨ HAI: CHÈN THƯ VIỆN ĐỘNG NỘI BỘ (INTERNAL DLL INJECTION) |
| |
| [ Bộ nạp Injector ] |
| | |
| +---> (1) OpenProcess() can thiệp tiến trình csgo.exe |
| +---> (2) VirtualAllocEx() cấp phát bộ nhớ ảo trong csgo.exe |
| +---> (3) WriteProcessMemory() sao chép đường dẫn/mã Cheat CSGO.dll |
| +---> (4) CreateRemoteThread() gọi LoadLibraryA() / Reflective Inject |
| |
| [ Không gian bộ nhớ CS:GO ] |
| | |
| +---> Nạp Cheat CSGO.dll (DLL_PROCESS_ATTACH) |
| +---> Khởi tạo Hook hàm hkEndScene (DirectX 9 / ImGui Menu) |
| +---> CreateThread() chạy song song các luồng xử lý: |
| * MainThread: Quản lý tổng thể |
| * ActiveBhop: Luồng tự động nhảy |
| * ActiveGlowMaper: Luồng vẽ phát sáng đối thủ |
| * ActiveRCS: Luồng kiểm soát độ giật súng |
| * TriggerThread: Luồng nhận diện con trỏ và tự động khai hỏa |
+-------------------------------------------------------------------------------+
Quy trình chèn mã DLL vào tiến trình trò chơi được tổ chức theo 4 bước tuần tự:
- Can thiệp vào tiến trình (Process Interaction): Ứng dụng nạp sử dụng hàm
OpenProcess() cùng các cờ quyền truy cập thích hợp để thu được định danh handle của tiến trình csgo.exe.
- Cấp phát vùng nhớ (Memory Allocation): Gọi hàm
VirtualAllocEx() để phân bổ một không gian bộ nhớ ảo mới ngay bên trong không gian địa chỉ của csgo.exe, bảo đảm đủ dung lượng lưu trữ chuỗi đường dẫn tệp DLL hoặc toàn bộ nhị phân DLL.
- Sao chép mã DLL (Copy Payload): Sử dụng hàm
WriteProcessMemory() để sao chép đường dẫn thư viện DLL từ tiến trình điều khiển vào vùng nhớ vừa được cấp phát. Địa chỉ nạp được xác định thông qua hàm GetModuleHandle() và GetProcAddress(). Bên cạnh phương thức chuẩn qua LoadLibraryA(), tác giả nghiên cứu phương thức ReflectiveDLLInjection nhằm nạp nhị phân trực tiếp từ bộ nhớ mà không cần ghi nhận vào bảng quản lý mô-đun của hệ điều hành.
- Thực thi mã nạp (Code Execution): Sử dụng hàm
CreateRemoteThread() để yêu cầu tiến trình csgo.exe tạo một luồng riêng biệt khởi chạy DLL đã nạp, đồng thời dùng WaitForSingleObject() để giám sát trạng thái hoàn tất quá trình khởi tạo.
Tại tệp DLL sau khi nạp thành công, sự kiện DLL_PROCESS_ATTACH được kích hoạt, gọi hàm DisableThreadLibraryCalls() và tạo 5 tiểu trình độc lập (CreateThread): MainThread, ActiveBhop, ActiveGlowMaper, ActiveRCS, và TriggerThread. Giao diện điều khiển trong game được vẽ thông qua việc chặn hàm hiển thị hkEndScene của DirectX 9, lồng mã nguồn thư viện ImGui để người dùng cấu hình trực tiếp bằng phím tắt VK_INSERT.
Về logic đọc ghi bộ nhớ, công cụ tính toán địa chỉ động từ địa chỉ nền (modBaseAddr) thu được qua CreateToolhelp32Snapshot, kết hợp với các giá trị dời (dwEntityList, m_iTeamNum, m_lifeState, m_iGlowIndex). Đối với chức năng nhìn xuyên tường (Glow ESP), công cụ duyệt danh sách thực thể từ 1 đến 64; nếu thực thể hợp lệ, còn sống và khác đội (entity->m_iTeamNum != localTeam), hệ thống ghi trực tiếp thông số màu RGBA vào cấu trúc glowManager để viền sáng nhân vật xuất hiện trên màn hình hiển thị.
Nội dung chính theo từng chương
Chương 1: Tổng quan về các kỹ thuật tấn công game
Chương 1 thiết lập cơ sở khái niệm về ngành công nghiệp game, động cơ cạnh tranh trên bảng xếp hạng và các hệ quả tiêu cực khi gian lận bùng phát. Tác giả phân tích cụ thể 6 kỹ thuật tấn công phổ biến (EGB, AB, MITM, ME, IC, PA), phân loại theo môi trường tác động và phương thức can thiệp.
Dựa trên việc so sánh ưu và nhược điểm tại Bảng 1-1, tác giả xác định kỹ thuật chỉnh sửa bộ nhớ (ME) và chèn mã (IC) là hai phương án tấn công mang lại tác động tức thì, có tính khả thi kỹ thuật cao nhất trên cả game trực tuyến và ngoại tuyến. Chương 1 khép lại bằng việc xác định 5 yêu cầu chức năng (Bảng 1-2) làm tiền đề thiết kế cho công cụ kiểm thử:
| STT |
Tên chức năng |
Mô tả chi tiết chức năng |
| 1 |
Súng bắn không giật |
Hạn chế góc nâng của tâm ngắm khi xả đạn liên tục, giữ độ tụ đạn tại một điểm |
| 2 |
Nhảy liên tục |
Cho phép nhân vật tự động thực hiện động tác nhảy liên tiếp khi giữ phím cách |
| 3 |
Nhìn xuyên tường |
Tô sáng viền nhân vật đối thủ, cho phép quan sát xuyên qua các vật cản bản đồ |
| 4 |
Hiển thị đối thủ trên bản đồ |
Cập nhật vị trí thời gian thực của người chơi đối phương lên ra-đa/bản đồ con |
| 5 |
Tự động bắn |
Tự động kích hoạt cơ chế khai hỏa ngay khi tâm ngắm chạm vào mô hình đối thủ |
Chương 2: Phân tích, thiết kế và phát triển công cụ kiểm thử game
Chương 2 mô tả quá trình thiết kế chi tiết 5 chức năng đã được xác định. Mỗi chức năng được chuẩn hóa thành một trường hợp sử dụng (Use Case) độc lập với mã định danh từ CN1 đến CN5 (hoặc UC1 đến UC5), bao gồm kịch bản mô tả chi tiết và biểu đồ tuần tự:
| Mã UC |
Chức năng |
Hàm thực thi chính |
Logic can thiệp bộ nhớ |
| UC1 |
Súng bắn không giật |
ActivateRCS() |
Can thiệp thông số góc nhìn (view punch/angles) để triệt tiêu độ giật |
| UC2 |
Nhảy liên tục |
ActivateBhop() |
Kiểm tra cờ trạng thái tiếp đất của nhân vật; tự động gửi lệnh nhảy |
| UC3 |
Nhìn xuyên tường |
ActivateGlow() |
Duyệt mảng thực thể, ghi cấu trúc màu RGBA vào glowManager |
| UC4 |
Hiển thị đối thủ trên bản đồ |
ActivateMap() |
Ghi đè biến trạng thái nhận diện đối thủ (bSpotted) thành giá trị true |
| UC5 |
Tự động bắn |
ActivateTriggerBot() |
Đọc ID thực thể nằm dưới con trỏ ngắm (crosshairID), kích hoạt bắn |
Chương này cũng phân định chi tiết hai mô hình hoạt động: mô hình tương tác bộ nhớ ngoài (External) sử dụng các hàm API đọc/ghi tiến trình gián tiếp, và mô hình chèn thư viện động (Internal DLL) tạo luồng chạy trực tiếp trong không gian bộ nhớ đích.
Bên cạnh phần thiết kế công cụ tấn công, tác giả dành riêng một phân mục quan trọng đề xuất các giải pháp kỹ thuật phòng chống gian lận:
- Bảo vệ dữ liệu trong bộ nhớ: Áp dụng mã hóa dữ liệu cục bộ trong RAM khiến các giá trị biến trở nên ngẫu nhiên; ẩn danh các vùng nhớ nhạy cảm; ngẫu nhiên hóa vị trí ô nhớ khi khởi động; triển khai hệ thống Anti-Cheat quét định kỳ chữ ký và phát hiện hook bộ nhớ.
- Bảo vệ gói tin đường truyền: Áp dụng giao thức HTTPS kết hợp mã hóa tầng giao vận SSL/TLS; tích hợp thuật toán mã hóa đối xứng AES kết hợp trao đổi khóa bất đối xứng nhằm chống giả mạo hoặc chỉnh sửa nội dung gói tin.
- Xác định giá trị tăng bất thường: Tích hợp mô-đun phân tích hành vi trên máy chủ nhằm phát hiện những biến động chỉ số tài nguyên, điểm số, tọa độ di chuyển bất thường; ứng dụng học máy (Machine Learning) để nhận diện hành vi bất thường so với tập mẫu chuẩn.
Chương 3: Thử nghiệm và đánh giá kết quả
Chương 3 trình bày các bài kiểm thử thực nghiệm nhằm đánh giá sự hoạt động của hai công cụ trên tựa game CS:GO. Tác giả xây dựng danh mục kịch bản thử nghiệm chia thành hai đợt đo độc lập:
- Đợt 1 (Bảng 3-2 đến Bảng 3-6): Kiểm thử bộ 5 chức năng đối với công cụ tương tác trực tiếp từ tiến trình ngoài (External).
- Đợt 2 (Bảng 3-7 đến Bảng 3-11): Kiểm thử bộ 5 chức năng đối với công cụ sau khi chèn mã DLL nội bộ (Internal).
Tại Bảng 3-12 (Bảng đánh giá kết quả tổng hợp), tác giả ghi nhận toàn bộ các kịch bản kiểm thử đều đạt kết quả mong muốn:
- Chức năng súng bắn không giật triệt tiêu độ rung của vũ khí, đạn chụm chính xác vào một điểm.
- Chức năng nhảy liên tục duy trì trạng thái di chuyển liên tiếp khi giữ phím Space.
- Chức năng nhìn xuyên tường hiển thị đầy đủ viền phát sáng của kẻ địch qua chướng ngại vật.
- Vị trí đối thủ được chấm đỏ đồng bộ trên bản đồ mini.
- Cơ chế tự động kích hoạt phát bắn hoạt động chính xác khi tâm súng vừa giao cắt với tọa độ mô hình đối phương.
Kết quả và đóng góp
Đồ án ghi nhận những kết quả kỹ thuật cụ thể:
- Hiện thực hóa thành công 02 công cụ can thiệp kiểm thử độc lập: một công cụ điều khiển ngoại vi qua Windows API và một công cụ nạp thư viện động DLL nội bộ tích hợp giao diện Dear ImGui qua DirectX 9 hook.
- Chứng minh tính khả thi của kỹ thuật chỉnh sửa bộ nhớ (ME) và chèn mã (IC) trên trò chơi CS:GO thông qua 10 bài kiểm thử thực nghiệm đạt độ chính xác theo đúng yêu cầu thiết kế.
- Tổng hợp hệ thống lý thuyết về 6 phương pháp tấn công game, đồng thời đề xuất khung phòng thủ kỹ thuật ba lớp: mã hóa RAM, mã hóa gói tin tầng mạng và phân tích hành vi bất thường ứng dụng học máy.
Đóng góp của tác giả thể hiện ở việc tiếp cận vấn đề can thiệp game dưới góc độ an toàn thông tin và kỹ nghệ đảo ngược, cung cấp bức tranh đối chiếu thực nghiệm giữa hai phương thức can thiệp nội bộ (internal) và ngoại vi (external), đóng góp tư liệu kiểm thử cho các nhà phát triển game trong việc vá lỗi bộ nhớ và cấu trúc thực thể.
Hạn chế và hướng nghiên cứu tiếp
Văn bản đồ án nêu rõ các giới hạn kỹ thuật trong phạm vi triển khai:
- Thử nghiệm chỉ được tiến hành trong môi trường trò chơi độc lập/ngoại tuyến (offline/custom game) của CS:GO, chưa thử nghiệm trên môi trường máy chủ trực tuyến có kích hoạt các hệ thống bảo mật chuyên dụng.
- Công cụ chưa kiểm nghiệm khả năng ẩn danh trước các giải pháp bảo mật trò chơi hiện đại ở cấp nhân (Kernel-level Anti-Cheat như BattlEye, Easy Anti-Cheat hay Valve Anti-Cheat nâng cao). Thư viện DLL được nạp bằng các hàm Windows API cơ bản nên dễ dàng bị phát hiện bởi các cơ chế quét tiến trình và quét chữ ký bộ nhớ chuẩn.
- Các giải pháp phòng thủ (mã hóa RAM, học máy phát hiện bất thường) mới dừng lại ở mức đề xuất nguyên lý thiết kế và phân tích lý thuyết, chưa được đóng gói thành mô-đun phần mềm phòng thủ thực nghiệm đi kèm trò chơi.
Hướng nghiên cứu tiếp theo bao gồm việc tìm hiểu các kỹ thuật che giấu tiến trình và thư viện ở mức nâng cao, nghiên cứu cơ chế kiểm soát bộ nhớ ở tầng nhân hệ điều hành (Kernel driver), và hiện thực hóa mô-đun phát hiện gian lận tự động áp dụng mô hình học máy trên dữ liệu nhật ký máy chủ.
Giá trị tham khảo
Đồ án là tài liệu tham khảo kỹ thuật phù hợp cho sinh viên và học viên chuyên ngành An toàn thông tin, Kỹ thuật phần mềm hoặc Mạng máy tính đang thực hiện các đề tài liên quan đến kỹ nghệ đảo ngược (Reverse Engineering), kiểm thử thâm nhập ứng dụng (Application Penetration Testing) và bảo mật hệ thống trên hệ điều hành Windows.
Đối với các nhà phát triển trò chơi và kỹ sư an ninh phần mềm, các phân tích về cấu trúc truy xuất bộ nhớ, offset thực thể và kỹ thuật hook DirectX trong đồ án cung cấp dữ liệu tham khảo để rà soát mã nguồn, loại bỏ việc lưu trữ biến thô trong RAM và thiết kế cơ chế xác thực dữ liệu tại máy chủ.
Câu hỏi thường gặp
1. Đồ án xây dựng bao nhiêu công cụ kiểm thử và điểm khác biệt cơ bản giữa chúng là gì?
Tác giả xây dựng 02 công cụ kiểm thử: Công cụ thứ nhất hoạt động như một tiến trình độc lập bên ngoài trò chơi, sử dụng Windows API (ReadProcessMemory, WriteProcessMemory) để đọc/ghi bộ nhớ game gián tiếp. Công cụ thứ hai thực hiện chèn tệp thư viện động (Cheat CSGO.dll) vào trực tiếp không gian bộ nhớ của csgo.exe, tạo các luồng xử lý độc lập bên trong tiến trình trò chơi và chèn menu điều khiển ImGui vào chu kỳ vẽ khung hình DirectX 9.
2. Quy trình chèn mã DLL (DLL Injection) vào tiến trình trò chơi gồm những bước nào?
Quy trình gồm 4 bước kỹ thuật: (1) Mở quyền can thiệp vào tiến trình trò chơi bằng hàm OpenProcess(); (2) Cấp phát một vùng nhớ ảo bên trong tiến trình trò chơi bằng hàm VirtualAllocEx(); (3) Sao chép đường dẫn hoặc nội dung tệp DLL vào vùng nhớ vừa cấp phát bằng hàm WriteProcessMemory(); (4) Khởi tạo luồng thực thi trong tiến trình đích bằng hàm CreateRemoteThread() để nạp và kích hoạt DLL.
3. Công cụ kiểm thử trong đồ án triển khai những chức năng can thiệp cụ thể nào?
Công cụ hiện thực hóa 5 chức năng: (1) Súng bắn không giật (ActivateRCS); (2) Nhảy liên tục (ActivateBhop); (3) Nhìn xuyên tường qua cơ chế viền sáng (ActivateGlow); (4) Hiển thị đối thủ trên bản đồ con (ActivateMap); (5) Tự động kích hoạt phát bắn khi tâm ngắm chạm mục tiêu (ActivateTriggerBot).
4. Tác giả đề xuất những biện pháp kỹ thuật nào để nhà phát triển trò chơi phòng chống gian lận?
Tác giả đề xuất ba nhóm giải pháp: (1) Bảo vệ dữ liệu trong bộ nhớ bằng cách mã hóa dữ liệu RAM, ẩn danh ô nhớ, xáo trộn địa chỉ khi khởi động và tích hợp anti-cheat quét can thiệp bộ nhớ; (2) Bảo vệ gói tin mạng bằng mã hóa HTTPS, SSL/TLS và chuẩn AES; (3) Tích hợp hệ thống phân tích hành vi tự động kết hợp mô hình học máy (Machine Learning) để nhận diện các giá trị hoặc thao tác tăng đột biến.
5. Vì sao tác giả lựa chọn kỹ thuật chỉnh sửa bộ nhớ (ME) và chèn mã (IC) để nghiên cứu thay vì các kỹ thuật khác?
Qua việc so sánh tại Bảng 1-1, tác giả nhận thấy các kỹ thuật như MITM gặp khó khăn lớn do giao thức mã hóa mạng (SSL/TLS), EGB phụ thuộc vào các lỗi cụ thể dễ bị vá, còn PA phụ thuộc vào hành vi người dùng. Trong khi đó, ME và IC có khả năng can thiệp trực tiếp, tạo tác động ngay lập tức vào luồng thực thi và dữ liệu của trò chơi, đồng thời triển khai được trên cả môi trường trực tuyến lẫn ngoại tuyến.
Kết luận
Đồ án tốt nghiệp "Chỉnh sửa bộ nhớ và chèn mã" của sinh viên Nguyễn Minh Đức đã nghiên cứu có hệ thống các phương thức can thiệp trò chơi điện tử dưới góc độ an toàn thông tin. Tác giả đã thiết kế và thử nghiệm thành công hai công cụ can thiệp dạng tiến trình ngoài và chèn thư viện động nội bộ trên tựa game CS:GO, kiểm chứng đầy đủ 5 chức năng hỗ trợ thi đấu qua 10 kịch bản thực nghiệm. Các giải pháp phòng chống gian lận được đề xuất trong công trình cung cấp cơ sở kỹ thuật có giá trị cho việc xây dựng cơ chế tự bảo vệ của các trò chơi trực tuyến.