Code Monkey home page Code Monkey logo

unrealengine-protection's Introduction

{SCUE4}: Anti-Cheat Plugin for Unreal Engine 4

Known Limitations:

  • Build for UE4 Windows games only (32bit & 64bit); (but it won't break packaging for other platforms).
  • Only default ASCII characters are supported for text/string encryption.

Requirements:

  • Both Key Generator and the External Scanner requires VS2015 runtime dependencies to run.
  • External Scanner also requires .NET 4 runtime dependencies.

How To Use:

  • Close UE4, unzip the files provided within the 'Plugins' directory into your UE4 game project's folder. Executable libraries and code will be added to your project's Plugins folder; Then right click your .uproject file and choose 'Generate Visual Studio project files'. Then open the .uproject file; around ~1.6GB of C++ code will be generated, so be patient. You may have to convert your project to C++ project first, simply adding an empty C++ Class to your game.

  • Open your game project in Unreal Editor, click Edit and go to 'Project Settings..'-> 'Maps & Modes'; In 'Game Instance Class' field, set 'SafeGameInstance' class as default. If you have another custom Game Instance, use it instead, but after installing the Secure-Client plugin you have to re-parent your Game Instance to be a child of SafeGameInstance. This will activate the anti-cheat system for your game. If you want the anti-cheat tool-set disabled, just replace the default Game Instance again.

  • To observe Game-Guard's behaviour while developing in Unreal Editor, and to activate the anti-debugger that is disabled by default, you have to:

  • Create or re-parent a GameInstance Blueprint from the 'SafeGameInstance' class and set it as default in Project Settings.
  • Uncheck the 'Hide Game-Guard' and 'Allow Debugging' check-boxes from the Details panel.
  • You most likely don't want to block debugging while developing your game, uncheck it only when packaging in Shipping Mode and ready to publish.

FAQs:

° What is the performance impact in game when using SC Safe Types in Blueprint graphs?

  • The Safe Types provided to encrypt Blueprint properties have a very insignificant impact in your game code;
  • Each call to a Get/Set node has a function footprint ranging from 0.00ms to 0.01 milliseconds. In comparison: a single Tick Event call can sometimes eat up to 4.00ms.

° What about Garbage Collection, how these types deal with GC?

  • The code generates no GC, UE4 will fire GC only when you destroy the Blueprint/Actor that was calling the Get/Set functions/nodes.

° Which Types are Safe Type supported?

  • You can encrypt the usual types used for Blueprint properties, such as:
  • Boolean
  • Byte
  • Integer
  • Float
  • Name
  • String
  • Text
  • Vector
  • Vector 2D
  • Vector 4D
  • Linear Color
  • Rotator
  • Transform

° Does Safe Types support SaveGame tag, to be recorded by the Auto-Save Plugin?

  • Yes. Just enable SaveGame tag in advanced tab as usual and you easily get encrypted Save-Game data stored in your .sav files.

° Is networking, replication, supported for Safe Types?

  • The idea is Yes, must be, but I'm still working on multiplayer code to make sure everything is bug-free when running in authoritative servers thus I'm not 100% sure on this one.

° Why I mark any Safe Type as 'editable', but values in Details panel are disabled and I can't change them?

  • Because Safe Types are hidden and Unreal Engine's Editor doesn't know how to translate their encryption algorithm. Then what Details panel displays there is just a 'fake copy'
  • of the real value which is possible to change or read only through the Get/Set node functions. If you could change values from Details panel, hackers could use the same route to
  • trace the fake value and use it to change the real, encrypted one, without bothering with any encryption secrets.
  • So to say, the only way you can change encrypted values is really through the Get/Set nodes which you can use in Blueprint graphs and/or its Construction Script to set default values.

° What if the Game-Guard external app gets cracked to never return any positives?

  • Then your game itself through the SafeGameInstance class will take over and run an internal Game-Guard system; the class is built to force a crash in the game if a malicious app is running.
  • This internal built-in code is compiled inside the game, packaged for Windows, and only runs slower than the external scanner, to not generate game-thread overhead. You don't have to config anything for this, it's automatic; Just setup the required GameInstance class.

[More Info]:

https://forums.unrealengine.com/t/plugin-anti-cheat-system/213948


Copyright(C) Bruno Xavier B. Leite.

LICENSE

THIS SYSTEM IS NOW PUBLISHED ON UNREAL ENGINE's MARKETPLACE AND THE SAME THERMS FROM THEM APPLIES.

Please check Epic Games' therms here: https://publish.unrealengine.com/faq

Unreal Marketplace page: https://www.unrealengine.com/marketplace/scue4-anti-cheat-solution

unrealengine-protection's People

Stargazers

 avatar

Watchers

 avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.