Dấu vết XGame trong code của hai bot Võ Lâm Truyền Kỳ 2.0 khác

Những gì liên quan tới XGame tìm thấy trong file phát hành của C**S và JXSm*rter, kèm lệnh để tự kiểm chứng.

Ngày kiểm tra: 16/10/2026. Cách kiểm: chỉ đọc file của các bản phát hành (tìm chữ, so byte). Không chạy, không dịch ngược phần mềm của họ.

Tên hai sản phẩm được che bớt ký tự: C**S và JXSm*rter. Tên file trong phần tự kiểm chứng cũng che như vậy; ai có file trong tay sẽ tự nhận ra.

## Tóm tắt

  1. C**S v1.1.1 (build 13/10): code ghi thẳng tên XGame, có tên file DLL của XGame, tên mô-đun của XGame, và một chuỗi 32 byte "chữ ký" trùng nguyên văn với XGame. Bản C**S v1.0.10 (build 15/09) không có dấu vết nào trong số này.
  2. JXSm*rter v0.1.1 (build 16/10): code ghi "mẫu XGame", "của XGame"; tên lớp giao diện, câu chữ và tên khoá cấu hình trùng với XGame.

## 1. C**S

Những gì liên quan tới XGame trong code bản v1.1.1, so với bản v1.0.10:

Có trong codeLiên quan XGame thế nàov1.0.10v1.1.1
Dòng log "chữ-ký xGame"Ghi thẳng tên XGameKhôngCó
Chuỗi 32 byte "chữ ký" tìm hàm gameTrùng nguyên văn chuỗi chữ ký của XGameKhôngCó
xgame_data.dllTên file DLL của XGameKhôngCó
hudfitTên mô-đun màn hình rộng (FullHD) của XGameKhôngCó
XgameFollowCombat, "Xgame follow"Chế độ theo sau mang tên XGameKhôngCó
XGameMoveItemHàm thay đồ mang tên XGame, dùng cùng cách thay đồ riêng của XGameKhôngCó

## 2. JXSm*rter

Những gì liên quan tới XGame trong code bản v0.1.1:

Có trong codeLiên quan XGame thế nào
Chú thích "mẫu XGame"Ghi thẳng tên XGame
Chú thích "như ProxyCheckResult của XGame"ProxyCheckResult là tên một kiểu dữ liệu trong XGame
Tên lớp giao diện (CSS)20 trên 22 tên trùng y XGame, kể cả các thông số riêng (hiệu ứng mở hộp, bề ngang 708px)
Câu chữ giao diệnHơn 130 câu trùng nguyên văn XGame, ví dụ "FPS 5 — treo máy, vẫn bấm được NPC", "Không liên lạc được máy chủ — đang chạy bằng hạn ngoại tuyến"
Tên khoá cấu hình46 tên trùng XGame (baoDanhTongKim, truongCa, phongLangDo, lootSec…)
Phiên bản khớpCó cả thứ XGame thêm ngày 19/09 lẫn thứ XGame gỡ ngày 04/10. Khớp nhất với bản XGame v1.1.9 (25/09)

## 3. Dòng thời gian

NgàySự kiện
15/09XGame v1.1.3-beta.1 ra cách thay đồ riêng. C**S v1.0.10 build, chưa có dấu vết XGame
20/09XGame v1.1.4 ra mô-đun hudfit
24–25/09XGame v1.1.8 – v1.1.9, là bản có giao diện khớp nhất với JXSm*rter
13/10C**S v1.1.1 build, có đủ các dấu vết ở mục 1
16/10JXSm*rter v0.1.1 build

## 4. Tự kiểm chứng

Không cần và không nên chạy các phần mềm đó Mọi bước dưới đây chỉ đọc file. Cần có: bản C**S v1.0.10 và v1.1.1, bản JXSm*rter v0.1.1, máy Windows.

Cách mở PowerShell: bấm Start, gõ PowerShell, Enter. Trong các lệnh, thay phần <…> bằng đường dẫn thư mục thật trên máy bạn, và thay dấu * trong tên file bằng chữ thật.

## Bước 1: tìm tên XGame trong DLL của C**S

Lệnh tìm 5 dấu vết ở mục 1 trong DLL của một bản C**S. Kết quả mong đợi: chạy với thư mục v1.1.1 ra 5 dòng True. Chạy với thư mục v1.0.10 ra 5 dòng False.

$dir = "<thư mục C**S>\runtime"
$hub  = [IO.File]::ReadAllText("$dir\c**sJxHub.dll", [Text.Encoding]::GetEncoding(28591))
$auto = [IO.File]::ReadAllText("$dir\c**Auto.dll",   [Text.Encoding]::GetEncoding(28591))
$hub.Contains("chu-ky xGame")
$hub.Contains("xgame_data.dll")
$hub.Contains("hudfit")
$auto.Contains("XgameFollowCombat")
$auto.Contains("XGameMoveItem")

## Bước 2: tìm chuỗi 32 byte "chữ ký" của XGame trong C**S

Lệnh tìm đúng 32 byte chữ ký của XGame trong DLL của C**S. Kết quả mong đợi: True với v1.1.1, False với v1.0.10.

$file  = "<thư mục C**S>\runtime\c**sJxHub.dll"
$sig   = "538B5C2408558B6C241056578BF98B775C015F18016F1C85F67415EB038D4900"
$bytes = [IO.File]::ReadAllBytes($file)
[BitConverter]::ToString($bytes).Replace("-","").Contains($sig)

Có thể làm bằng phần mềm xem hex (ví dụ HxD): mở file, chọn Search → Find, kiểu "Hex-values", dán chuỗi dưới đây.

53 8B 5C 24 08 55 8B 6C 24 10 56 57 8B F9 8B 77 5C 01 5F 18 01 6F 1C 85 F6 74 15 EB 03 8D 49 00

## Bước 3: tìm chữ "của XGame" trong JXSm*rter

Lệnh tìm các câu JXSm*rter ghi về XGame trong file chạy của họ. Kết quả mong đợi: 3 dòng True.

$exe = "<thư mục JXSm*rter>\jxsm*rter.exe"
$t = [IO.File]::ReadAllText($exe, [Text.Encoding]::UTF8)
$t.Contains("mẫu XGame")
$t.Contains("của XGame")
$t.Contains("ProxyCheckResult")

Nếu có file xgame-auto.exe của XGame, chạy lại lệnh cuối với file đó cũng ra True, cho thấy ProxyCheckResult là tên có trong XGame.

## Bước 4 (nâng cao): giao diện của JXSm*rter

Giao diện của JXSm*rter nằm trong file chạy dưới dạng nén, nên không tìm chữ trực tiếp được. Người rành kỹ thuật có thể bung các tệp giao diện ra rồi so tên lớp CSS (m-dialog--fluid, m-row--2-1…) và các câu tiếng Việt với giao diện XGame. Bước này cần công cụ riêng nên không ghi chi tiết ở đây.

## 5. Phạm vi

Báo cáo chỉ ghi những gì tìm thấy trong file phát hành, không kết luận các dấu vết này vào code của họ bằng cách nào.