AntiCheatPlug-in-Unity

AntiCheatPlug-in

Mục Lục

I.Cách Setup Plugin ?

  • Sau khi clone Plugin về sẽ bắt đầu import vào Project bằng cách kích đúp vào package(nếu đã có sẵn hãy loại bỏ package cũ khỏi project)
  • Chọn tab Tool > Code Stage > Anti-Cheat ToolKit > Settings để kiểm tra thông tin về package gồm
    • Phiên bản Package đang dùng
    • Các thư viện đang có trong package
    • image

II.Cách sử dụng Plugin và Plugin gồm những gì ?

Obscured types

  • https://www.youtube.com/watch?v=QiznofE8xD4&list=PLbTYvIYxIXSj5p9qn3lcsoUc1R9KnSOIb&index=2
  • Thường đa số các Cheater sẽ dùng tool để xác định các biến trong game như tiền , life point , tài nguyên bằng cách quét các thông số hiển thị trên game và lấy các giá trị đó ra và thay đổi.
  • 1 số Tool Cheat được dùng: Cheat Engine, ArtMoney (PC), Game CIH, Game Guardian (Android).
  • Để hạn chế tình trạng đó thì Package sẽ có bộ thư viện hỗ trợ để ẩn các chỉ số đi
  • image
  • Sau khi thay đổi kiểu giá trị sang dạng Obscured Cheater vẫn có thể nhìn thấy những giá trị được hiển thị lên tuy nhiên giá trị gốc đã được bảo vệ và Cheater sẽ ko thể can thiệp và thay đổi thông số trong game.
  • Mặc dù được che giấu đi nhưng trong Game để tăng tính bảo mật sẽ thực hiện thêm 1 số phép tính nhằm thay đổi và che giấu tuyệt đối giá trị trong game
  • image

Obscured Prefs

  • https://www.youtube.com/watch?v=Hf0MOct9rDQ&list=PLbTYvIYxIXSj5p9qn3lcsoUc1R9KnSOIb&index=4
  • PlayerPrefs là gì
    • PlayerPrefs là 1 lớp lưu trữ các tùy chọn của người chơi giữa các turn, Class này có thể lưu trữ cacsc giá trị như String,Float,Int vào Hệ điều hành của người dùng.
    • Tùy thuộc Hệ điều hành mà class lưu trữ này sẽ được lưu ở tùy từng file phụ thuộc vào nền tảng
      • Windows: HKCU\Software\ExampleCompanyName\ExampleProductName
      • Linux: ~/.config/unity3d/ExampleCompanyName/ExampleProductName
      • Windows Store Apps : %userprofile%\AppData\Local\Packages[ProductPackageId]\LocalState\playerprefs.dat
      • Android : /data/data/pkg-name/shared_prefs/pkg-name.v2.playerprefs.xml
      • macOS: /Library/Preferences/[bundle identifier].plist
    • 1 số Hàm được dùng trong PlayerPref
    • image
  • Tuy Nhiên UNITY lại ko khuyến người dùng cách này để lưu trữu và sử dụng dữ liệu vì nó đc lưu cục bộ và ko được mã hóa và User có thể dễ dàng can thiệp và sử dụng những dữ liệu
  • Để thay thế và lưu trữ 1 cách bảo mật hơn:
  • sử dụng thêm thư viện using CodeStage.AntiCheat.Storage;
  • Thay vì dùng như này: image
  • Có thể dùng như thế này: image

Obscured File && Obscured Prefs

  • https://www.youtube.com/watch?v=JCNEl1xQ0WE&list=PLbTYvIYxIXSj5p9qn3lcsoUc1R9KnSOIb&index=4
  • Anti Cheat Tool Kit được tích hợp cả trong cửa sổ của Unity Editor
  • Để mở cửa sổ của Anti CheatTool Kit có thể bằng cách:
    • Tools > Code Stage > Anti-Cheat Toolkit > Prefs Editor as Tab
    • image
    • "+" được đùng để add thêm mới Pref bằng cách chọn loại biến và kích hoạt mã hóa nó sau đó đặt key và giá trị và bấm OK
    • "Refresh" được dùng để quét lại tất các Prefs đã được update vào list
    • "Key Descending" được dùng để sắp xếp , các giá trị có thể khác: Key Ascending, Type, Obscurance
    • Search field - được dùng để nhập vào lọc ra các bản ghi có chứa name đc tìm
    • "X " dùng để xóa bản ghi đó
    • "S" dùng để lưu những thay đổi của bản ghi đó
    • "E"/"D" dùng để mã hóa và giải mã của bản build đó
    • "..." dùng để copy dữ liệu ra bảng
  • Tool này giúp chúng ta tạo ra các giá trị Prefs được lưu trữ và mã hóa và có thể sử dụng thoải mái mà ko lo cheater tìm đc giá trị
  • Ngoài ra để phát hiện cheat chúng ta còn có thể tích hợp thêm tool scripts này:
    • Cách 1: GameObject > Create Other > Code Stage > Anti-Cheat Toolkit > Injection Detector
    • Cách 2: tạo ra game object rồi add thêm component mới Component > Code Stage > Anti-Cheat Toolkit image
  • Auto Start: Cho phép việc dò cheater sau khi Scene Load. Hoặc có thể sử dụng thư viện và gọi hàm bắt đầu dò
  • image
  • AutoDispose : Cho phép tự động loại bỏ chính mình sau khi dò ra được Cheater.
  • Keep Alive: Cho phép dò ở Scene Load mới(load sang scene khác hiểu đơn giản là chuyển scene).

SpeedHackDetector

  • https://www.youtube.com/watch?v=I5EUjVbLaNY&list=PLbTYvIYxIXSj5p9qn3lcsoUc1R9KnSOIb&index=5
  • Nôm na là cách Cheat mà tất cả chúng ta khi chơi game đều có thể làm được là cheat tốc độ của nhân vật ví dụ: tốc độ đánh , tốc độ di chuyển , tốc độ.
  • Và Plugin này ra đời cũng để phát hiện và chặn User có thể can thiệp vào luồng dữ liệu(tốc độ) trong game.
  • image
    • Interval: là khoảng thời gian tính bằng giây(nên để 1 giây để tiết kiệm hiệu năng)
    • Threshold: là hệ số tốc độ tối đa và tối thiểu trong Game cho phép với Min là 0.2Max là 5
    • Max False Positives: Là độ sai số tối đa được cho phép trong Game(lỗi đồng hồ hoặc BUG T_T). Ví dụ khi xảy ra vấn đề thì tính năng này giúp bỏ qua kết quả sai đó và không coi đó là 1 hành động Hack. Ví dụ thời gian sẽ scale trong khoảng từ 1 -5 giây thì có thể bộ hack sẽ quét được và coi như đó là 1 trường hợp hack còn khi tích hợp và chỉnh độ sai số thì bộ quét sẽ bỏ qua và check tiếp các case khác.
    • Cool Down: Cho phép đặt lại bộ đếm dưới luồng code để phòng trường hợp(xảy ra 1 số bug hoạt động sai đếm liên tục dẫn đến bộ đếm sai giá trị và Tool sẽ quét và phát hiện hack tốc độ sai) thì lập tức set giá trị về 0 và tắt tính năng cooldown đi
    • image

III.Tổng Kết

  • Nếu bạn gặp vấn đề trong bảo mật thì mình tin đây có thể là 1 giải pháp giúp bạn phát hiện và ngăn chặn các Cheater can thiệp vào luồng dữ liệu làm thay đổi các thông số gốc trong Game của bạn.