
Dự án này làm gì
CS2 External ESP là một dự án lớp phủ ở userland trên Windows, được trình bày như một nghiên cứu giáo dục về việc đọc bộ nhớ, phép chiếu từ thế giới sang màn hình và các cửa sổ trong suốt theo lớp. Dự án chạy dưới dạng một tệp thực thi riêng thay vì chèn mã vào tiến trình trò chơi, đồng thời sử dụng một thư mục cấu hình cục bộ chứa các tệp JSON dễ đọc.
Kho mã mô tả khả năng hỗ trợ Windows 10 và Windows 11, tệp thực thi độc lập, trình hiển thị lớp phủ bên ngoài, cơ chế phân giải offset dựa trên chữ ký, ghi nhật ký chẩn đoán cùng nhiều mô-đun giao diện và hiển thị. Vì dự án tương tác với một trò chơi thương mại được bảo vệ, chỉ sử dụng dự án cho việc xem xét mã, thử nghiệm ngoại tuyến hoặc trong môi trường riêng tư mà mọi người tham gia và quản trị viên đều đã đồng ý rõ ràng.
Quan trọng: Không chạy phần mềm này trong chế độ ghép trận được bảo vệ bởi VAC, Faceit, ESEA hoặc các dịch vụ công cộng được bảo vệ khác. Công cụ bên ngoài vẫn có thể bị phát hiện thông qua hành vi, và việc sử dụng chúng trực tuyến có thể dẫn đến hình phạt đối với tài khoản hoặc phiên chơi.
Kiến trúc hoạt động như thế nào
README chia ứng dụng thành các thành phần phối hợp với nhau. Hiểu các thành phần này hữu ích hơn việc xem tệp thực thi như một hộp đen.
Bộ phân giải
Khi khởi động, bộ phân giải tìm tiến trình trò chơi và kiểm tra các mô-đun đã được tải. Các mẫu chữ ký được dùng để tìm những địa chỉ như danh sách thực thể và ma trận khung nhìn. Những giá trị này có thể trở nên không hợp lệ sau một bản cập nhật trò chơi, vì vậy dự án lưu dữ liệu chữ ký bên ngoài tệp thực thi chính và ghi nhận lỗi trong debug.log.
Bộ lấy mẫu
Bộ lấy mẫu định kỳ đọc một ảnh chụp dữ liệu liên quan và lưu vào cấu trúc dùng bộ đệm kép. README cho biết khoảng thời gian mặc định là 8 mili giây. Bộ đệm kép ngăn trình kết xuất kết hợp các giá trị từ những chu kỳ lấy mẫu khác nhau, giúp tránh các khung hình không nhất quán.
Bộ trình bày
Bộ trình bày quản lý một cửa sổ không viền, cho phép nhấp xuyên qua, luôn ở trên cùng và được căn chỉnh với vùng ứng dụng trò chơi. Cửa sổ này kết xuất vào một bitmap ngoài màn hình rồi hiển thị kết quả thông qua cửa sổ theo lớp. Phần triển khai được mô tả sử dụng GDI+ và UpdateLayeredWindow thay vì vẽ bên trong pipeline kết xuất của trò chơi.
Phép chiếu từ thế giới sang màn hình
Các vị trí trong thế giới được chuyển thành tọa độ màn hình bằng ma trận khung nhìn hiện tại. Những điểm nằm phía sau mặt phẳng gần sẽ bị loại bỏ, còn các tọa độ hợp lệ được chuyển thành pixel. Hộp bị lệch hoặc điểm đánh dấu trôi thường cho thấy dữ liệu phép chiếu đã cũ hoặc không chính xác.
Cấu hình và chẩn đoán
Các tệp cấu hình được lưu dưới dạng JSON thuần trong ./config/. Lớp phủ cũng cung cấp nhật ký gỡ lỗi, xử lý phím nóng, các hồ sơ được đặt tên và thao tác tải lại chữ ký. Những tính năng này khiến dự án phù hợp để nghiên cứu các công cụ Windows điều khiển bằng cấu hình và cơ chế báo cáo lỗi.
Yêu cầu hệ thống
- Windows 10 21H2 hoặc Windows 11 23H2.
- Bộ xử lý lõi kép x86_64 tối thiểu; README khuyến nghị CPU lõi tứ.
- Ít nhất 4 GB RAM, khuyến nghị 8 GB trở lên.
- GPU có khả năng kết xuất CS2. Đường kết xuất lớp phủ được mô tả sử dụng GDI thay vì kết xuất tăng tốc GPU.
- Bản dựng CS2 hiện tại và chế độ hiển thị cửa sổ không viền để căn chỉnh lớp phủ ổn định nhất.
- Không cần cài đặt .NET hoặc runtime riêng vì tệp thực thi được mô tả là độc lập.
Cài đặt và thiết lập an toàn
- Xem xét kho mã trước. Đọc hướng dẫn sử dụng, các vấn đề đã biết và ghi chú về chữ ký trước khi xử lý bất kỳ gói phát hành nào.
- Ưu tiên kiểm tra mã nguồn. Nếu không tin tưởng tệp thực thi dựng sẵn, hãy tự kiểm tra hoặc tự dựng dự án. README có tham chiếu đến một tập lệnh dựng trong
build/. - Sử dụng môi trường thử nghiệm biệt lập. Chỉ giới hạn thử nghiệm trong máy chủ ngoại tuyến hoặc máy chủ riêng được cho phép rõ ràng. Không sử dụng phần mềm với chế độ ghép trận chính thức hoặc các dịch vụ chống gian lận bên thứ ba.
- Giải nén vào một thư mục riêng. Giữ tệp thực thi,
config/, các tệp chữ ký và tệp nhật ký cùng nhau để các đường dẫn tương đối và hồ sơ luôn dễ dự đoán. - Chỉ khởi động trò chơi cho kịch bản thử nghiệm đã được phê duyệt. README khuyến nghị chờ đến khi menu chính hiển thị trước khi khởi chạy tiến trình bên ngoài.
- Khởi chạy tệp thực thi và kiểm tra nhật ký. Xác nhận tiến trình đã kết nối và việc phân giải chữ ký thành công trước khi cho rằng lớp phủ trống là vấn đề kết xuất.
Không vô hiệu hóa các cơ chế bảo mật hoặc thêm ngoại lệ chỉ để buộc một tệp nhị phân chưa rõ nguồn gốc chạy được. README lưu ý rằng việc đọc tiến trình và sử dụng cửa sổ theo lớp có thể kích hoạt cảnh báo chống vi-rút dựa trên heuristic; cách an toàn hơn là xác minh mã nguồn và nguồn gốc bản dựng thay vì mù quáng tin tưởng tệp thực thi đã tải xuống.
Sử dụng ngoại tuyến cơ bản
Để trình diễn có kiểm soát, hãy bắt đầu với các chức năng hiển thị và chẩn đoán ít xâm lấn nhất. Sử dụng chế độ cửa sổ không viền, khởi chạy trò chơi đến menu chính rồi khởi động lớp phủ. Nhấn INSERT để mở menu lớp phủ được mô tả, nếu bộ trình bày đang được lấy tiêu điểm.
Sử dụng F1 để kiểm tra công tắc chính của lớp phủ hiển thị và F2 để chỉ kiểm tra mô-đun khung xương trong môi trường ngoại tuyến đã được phê duyệt. README cho biết END là phím khẩn cấp, dùng để kết thúc tiến trình một cách chính xác. Hãy sử dụng phím này whenever lớp phủ hoạt động bất thường.
Đối với các thử nghiệm cấu hình, giữ các hồ sơ JSON trong cùng thư mục với tệp thực thi và bảo đảm mỗi hồ sơ là JSON hợp lệ với một đối tượng ở cấp cao nhất. F4 chuyển qua các hồ sơ theo thứ tự alphabet, trong khi F5 tải lại chữ ký từ ổ đĩa và F6 ghi thông tin offset vào debug.log.
Tìm hiểu các mô-đun hiện có
README nhóm các mô-đun thành năm lĩnh vực. Phần tóm tắt sau nhằm phục vụ việc kiểm kê tính năng và nghiên cứu mã nguồn, không dành cho việc sử dụng chống lại người chơi khác.
- ESP trực quan: khung, bộ xương, thanh máu, tên, thông tin vũ khí, nhãn khoảng cách và chỉ báo ngoài màn hình.
- Hỗ trợ ngắm: chọn mục tiêu, kiểm tra khả năng nhìn thấy, làm mượt, chọn xương và logic liên quan đến độ giật. Các tính năng này nên được tắt bên ngoài môi trường nghiên cứu có kiểm soát.
- Công cụ liên quan đến người chơi và kinh tế: hiệu ứng chớp sáng, hiển thị tâm ngắm khi ngắm qua ống ngắm, theo dõi vận tốc, tính thời gian bom và trực quan hóa quỹ đạo lựu đạn.
- Công cụ lớp phủ và giao diện: trình hiển thị theo lớp, menu phím tắt trong lớp phủ, chuyển đổi hồ sơ JSON và ghi nhật ký gỡ lỗi.
- Công cụ trinh sát: thông tin radar, chỉ báo âm thanh và liệt kê người theo dõi. Những tính năng này đặc biệt không phù hợp với thi đấu hoặc chơi công khai.
Mẹo cấu hình
Giữ hồ sơ đơn giản
Sử dụng các hồ sơ JSON riêng cho những thử nghiệm được phê duyệt khác nhau, chẳng hạn hồ sơ kết xuất hình ảnh và hồ sơ chỉ dùng cho chẩn đoán. Giữ tên tệp nhất quán với mẫu *.json được tài liệu hóa và kiểm tra tệp trước khi chuyển đổi giữa chúng.
Duy trì khoảng thời gian lấy mẫu mặc định
Mặc định được tài liệu hóa là 8 mili giây. Tăng khoảng thời gian có thể giảm mức sử dụng CPU trên các hệ thống chậm hơn, trong khi giảm khoảng thời gian có thể cải thiện khả năng phản hồi với chi phí bổ sung. Chỉ thay đổi một giá trị mỗi lần và ghi lại kết quả trong ghi chú kiểm thử.
Sử dụng chế độ cửa sổ không viền
README xác định chế độ toàn màn hình độc quyền là nguyên nhân phổ biến gây ra sự cố với lớp phủ theo lớp. Chế độ không viền cũng giúp dễ so sánh tọa độ vùng máy khách với cửa sổ trình hiển thị.
Luôn giữ nhật ký
Không xóa debug.log giữa các lần kiểm thử. Trạng thái bộ phân giải, lỗi chữ ký, tình trạng luồng và bản kết xuất offset có thể phân biệt sự cố gắn kết với sự cố phép chiếu hoặc hiển thị.
Khắc phục sự cố
Lớp phủ xuất hiện nhưng không có dữ liệu
Kiểm tra debug.log để tìm lỗi không khớp chữ ký. Một bản cập nhật trò chơi có thể thay đổi bố cục mô-đun và làm mất hiệu lực tệp chữ ký hiện tại. Chỉ sử dụng thao tác tải lại được tài liệu hóa sau khi xác minh dữ liệu chữ ký thay thế đến từ nguồn đáng tin cậy và tương thích.
Khung bị lệch khi camera di chuyển
README cho rằng hành vi này do dữ liệu ma trận góc nhìn đã cũ. Trước tiên, hãy xác nhận đúng chế độ hiển thị và kiểm tra đầu ra của bộ phân giải. Chỉ sau đó mới cân nhắc thay đổi khoảng thời gian lấy mẫu.
Lớp phủ nhấp nháy sau khi chuyển ứng dụng
Trình hiển thị được tài liệu hóa là có theo dõi thay đổi cửa sổ tiền cảnh và các sự kiện thay đổi kích thước. Mở lại menu bằng INSERT hai lần nếu cần, sau đó xác minh cửa sổ lớp phủ vẫn khớp với hình chữ nhật vùng máy khách của trò chơi.
Chuyển đổi hồ sơ bỏ qua một tệp
Kiểm tra xem tên tệp có kết thúc bằng .json, tệp có chứa JSON hợp lệ và giá trị cấp cao nhất có phải là một đối tượng hay không. Dấu phẩy thừa là nguyên nhân phổ biến gây lỗi phân tích cú pháp.
Hiệu suất giảm
README xác định việc kết xuất bộ xương và đối tượng ngoài màn hình là các mô-đun tương đối tốn tài nguyên. Trước tiên, hãy tắt các thành phần hình ảnh tùy chọn, sau đó tăng khoảng thời gian lấy mẫu. Giữ các thay đổi ở trạng thái có thể hoàn tác để mỗi lần kiểm thử có kết quả rõ ràng.
Ghi chú phát triển và bảo trì
Bộ phân giải chữ ký là phần nhạy cảm nhất về bảo trì của dự án. Khi trò chơi thay đổi, trình đọc có thể không còn định vị được dữ liệu cần thiết. Thiết kế của kho mã giúp hiển thị lỗi này thông qua các tệp chữ ký bên ngoài và thông báo nhật ký, thay vì âm thầm kết xuất thông tin không chính xác.
Lộ trình đề cập đến đường dẫn hiển thị D3D11 nhanh hơn, tải lại cấu hình cho nhiều máy khách, ghi đè theo từng bản đồ, nền radar phong phú hơn và tải chữ ký từ cộng đồng. Các mục này được liệt kê là đã lên kế hoạch, đang thực hiện, đang điều tra hoặc chưa bắt đầu; không nên xem chúng là tính năng khả dụng trừ khi kho mã xác nhận đã triển khai.
Danh sách kiểm tra sử dụng có trách nhiệm
- Chỉ sử dụng trong luyện tập ngoại tuyến hoặc trên máy chủ riêng có sự cho phép rõ ràng của quản trị viên.
- Không sử dụng dự án trên hệ thống tìm trận chính thức hoặc các nền tảng chống gian lận của bên thứ ba.
- Không phân phối bản dựng dưới dạng dịch vụ hoặc đóng gói lại dự án để đưa lên chợ ứng dụng.
- Không cho rằng một tiến trình bên ngoài là không thể bị phát hiện.
- Ưu tiên xem xét mã nguồn và bản dựng có thể tái lập thay cho các tệp nhị phân chưa được xác minh.
- Khi báo cáo lỗi, hãy kèm đầu ra nhật ký liên quan và mô tả môi trường kiểm thử đã được phê duyệt.
Kết luận
CS2 External ESP là một ví dụ cụ thể về quy trình lớp phủ Windows: phân giải dữ liệu, lấy mẫu thành ảnh chụp nhất quán, chiếu tọa độ thế giới lên màn hình và kết xuất thông qua cửa sổ theo lớp. Các tệp cấu hình, phím tắt và nhật ký gỡ lỗi của dự án cũng cho thấy cách một tiện ích gốc có thể duy trì khả năng kiểm tra và bảo trì.
Cách có trách nhiệm nhất để nghiên cứu dự án là xem đây như một bài tập kỹ thuật phần mềm ngoại tuyến. Hãy tập trung vào việc cô lập tiến trình, biến đổi tọa độ, xác thực cấu hình và chẩn đoán, đồng thời giữ mọi thử nghiệm tránh xa các dịch vụ thi đấu được bảo vệ và những người chơi khác.
