Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

First Public Release #1

Merged
merged 43 commits into from
Apr 11, 2024
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
43 commits
Select commit Hold shift + click to select a range
44d424b
Initial Commit
PlayDevX Mar 8, 2024
c04e821
Add GameShield Worker
PlayDevX Mar 8, 2024
04137bb
Add Toolkit Base Visuals
PlayDevX Mar 8, 2024
58598bc
Initial Setup Wizzard Logic
PlayDevX Mar 9, 2024
6125f77
Dynamic Modules Management
PlayDevX Mar 9, 2024
3ee5a1d
Modules List Styling
PlayDevX Mar 9, 2024
b397ac2
Update Readme
PlayDevX Mar 9, 2024
38f5e60
Add Readme Footer
PlayDevX Mar 9, 2024
8587ee6
Add Basic Modules Classes
PlayDevX Mar 9, 2024
7fd30c2
Update README.md
DevsDaddy Mar 9, 2024
766d613
Move Secured Types to Module
PlayDevX Mar 9, 2024
d328118
Add New Secured Types
PlayDevX Mar 9, 2024
9b37319
Add New Secured Types
PlayDevX Mar 10, 2024
3266cab
Add Pause Module Implementation
PlayDevX Mar 10, 2024
9b559e6
Add Auto-Pause on App Terminated Feature for all modules
PlayDevX Mar 10, 2024
38f728b
Setup done Log
PlayDevX Mar 10, 2024
d51afec
Finalize Memory Protector Module
PlayDevX Mar 10, 2024
ab2768e
Add Developer Key and Fix EditMode Execution
PlayDevX Mar 10, 2024
cd277fc
Add Coroutine Start/Stop Payloads
PlayDevX Mar 10, 2024
ac43d8c
Add Injection Scanner Module and Editor
PlayDevX Mar 10, 2024
a29a07d
Add SpeedHack Detector Module
PlayDevX Mar 10, 2024
0db658a
Cleanup Injection Scanner
PlayDevX Mar 10, 2024
0d3b689
Add Teleport Detector Module
PlayDevX Mar 10, 2024
9ee2146
Add WallHack Protector Module
PlayDevX Mar 10, 2024
83bcca6
Update README.md
DevsDaddy Mar 11, 2024
b815fb0
Update GameShield Wizzard
PlayDevX Mar 11, 2024
0b2c402
Add General Config to .gitignore
PlayDevX Mar 11, 2024
56cfffa
Ignore Meta Files for Config too
PlayDevX Mar 11, 2024
370e8a3
Add Multi-Targets Support for Teleport Detector
PlayDevX Mar 13, 2024
55e0f6a
Add Config Rewrite and Remove All Modules Methods
PlayDevX Mar 13, 2024
6f43fe4
Add Secured Web Request Module
PlayDevX Mar 14, 2024
5174f8b
Add Time Skip Protector Module
PlayDevX Mar 14, 2024
60139b4
Fix args in GetCryptoProvider method
PlayDevX Mar 14, 2024
a020dce
Update README.md
DevsDaddy Mar 15, 2024
3f9a94d
Example Development
PlayDevX Apr 7, 2024
178dbdb
Toggle All Modules by Default
PlayDevX Apr 9, 2024
4fff6ff
Add AI Navigation for Example Project
PlayDevX Apr 9, 2024
ad3a0f3
Update Demo Scripts
PlayDevX Apr 9, 2024
13c9bfe
Simplify Controllers
PlayDevX Apr 9, 2024
b0960cf
Update Basic Demo View
PlayDevX Apr 10, 2024
f489b21
Update Simple Example
PlayDevX Apr 10, 2024
1b5b9d1
Add Reporting Module and Demo for Reporting
PlayDevX Apr 10, 2024
98c81b0
First Public Release
PlayDevX Apr 11, 2024
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
The table of contents is too big for display.
Diff view
Diff view
  •  
  •  
  •  
Binary file added Packages/r1_gameshield.unitypackage
Binary file not shown.
68 changes: 66 additions & 2 deletions README.md
Original file line number Diff line number Diff line change
@@ -1,2 +1,66 @@
# GameShield
GameShield - An open-source solution to protect your Unity-based games. Anti-cheat, time-control, data ecnryption and memory protection and other security modules for your games.
# Unity Game Shield
<img src="https://github.com/DevsDaddy/GameShield/blob/wiki_visuals/Header.png?raw=true" alt="Unity Game Shield - Security and Anti-Cheat for Unity Games" style="width: 100%" /><br/>
**Unity Game Sheild** is an open-source comprehensive suite of tools for your apps and games, including many **anti-cheat and securty tools**.
This framework is easy to use on any projects and platforms.

For an in-depth look at the functionality - I also suggest <a href="https://github.com/DevsDaddy/GameShield/wiki">visiting the Wiki</a>

❓**Why GameShield?**<br/>
🔸Easy to install (only 4 steps basic installation);<br/>
🔸Easy to configure each module;<br/>
🔸Reporting system;<br/>
🔸Lightweight;<br/>
🔸Event-based and modular;

## Get Started
**GameShield** installs into your project as easily as possible - basic installation and configuration takes **only 4 steps**. Below we will consider both **automatic initialization** and **manual configuration**.

**Basic Installation:**
* Download <a href="https://github.com/DevsDaddy/GameShield/releases">Latest Release from GitHUB</a>;
* Import **.unitypackage** into your project;
* Run **Setup Wizzard** at Unity Top Menu (**GameShield** -> **Setup Wizzard**);
* Check all settings and press **"Complete"**;
* Done!

**Manual Installation:**
* Download <a href="https://github.com/DevsDaddy/GameShield/releases">Latest Release from GitHUB</a>;
* Import **.unitypackage** into your project;
* Place Prefab with **GameShield** main script at scene;
* Write initialization code at your game installer script (<a href="https://github.com/DevsDaddy/GameShield/wiki/GameShield-Core#manual-registering-gameshield">see how to here</a>);
* Done!

**Dependencies:**
- <a href="https://github.com/DevsDaddy/UnityEventFramework">Unity Event Framework</a> (Included);
- <a href="https://github.com/DevsDaddy/UnityCrypto">Unity Crypto Library</a> (Included);

## Features
<table>
<tr>
<td><a href="https://github.com/DevsDaddy/GameShield/wiki/Modules-Overview#memory-protection"><img src="https://github.com/DevsDaddy/GameShield/blob/wiki_visuals/memory.png?raw=true" /></a></td>
<td><a href="https://github.com/DevsDaddy/GameShield/wiki/Modules-Overview#injection-scanner"><img src="https://github.com/DevsDaddy/GameShield/blob/wiki_visuals/injection.png?raw=true" /></a></td>
<td><a href="https://github.com/DevsDaddy/GameShield/wiki/Modules-Overview#secured-saves"><img src="https://github.com/DevsDaddy/GameShield/blob/wiki_visuals/secured.png?raw=true" /></a></td>
<td><a href="https://github.com/DevsDaddy/GameShield/wiki/Modules-Overview#rewarded-captcha"><img src="https://github.com/DevsDaddy/GameShield/blob/wiki_visuals/rewarded.png?raw=true" /></a></td>
<td><a href="https://github.com/DevsDaddy/GameShield/wiki/Modules-Overview#timeskip-protector"><img src="https://github.com/DevsDaddy/GameShield/blob/wiki_visuals/timehack.png?raw=true" /></a></td>
<td><a href="https://github.com/DevsDaddy/GameShield/wiki/Modules-Overview#speedhack-detector"><img src="https://github.com/DevsDaddy/GameShield/blob/wiki_visuals/speedhack.png?raw=true" /></a></td>
</tr>
<tr>
<td><a href="https://github.com/DevsDaddy/GameShield/wiki/Modules-Overview#secured-requests"><img src="https://github.com/DevsDaddy/GameShield/blob/wiki_visuals/requests.png?raw=true" /></a></td>
<td><a href="https://github.com/DevsDaddy/GameShield/wiki/Modules-Overview#cheating-reporting"><img src="https://github.com/DevsDaddy/GameShield/blob/wiki_visuals/reporting.png?raw=true" /></a></td>
<td><a href="https://github.com/DevsDaddy/GameShield/wiki/Modules-Overview#gameshield-modules"><img src="https://github.com/DevsDaddy/GameShield/blob/wiki_visuals/installation.png?raw=true" /></a></td>
<td><a href="https://github.com/DevsDaddy/GameShield/wiki/Modules-Overview#gameshield-modules"><img src="https://github.com/DevsDaddy/GameShield/blob/wiki_visuals/libraries.png?raw=true" /></a></td>
<td><a href="https://github.com/DevsDaddy/GameShield/wiki/Modules-Overview#teleport-detector"><img src="https://github.com/DevsDaddy/GameShield/blob/wiki_visuals/teleport.png?raw=true" /></a></td>
<td><a href="https://github.com/DevsDaddy/GameShield/wiki/Modules-Overview#wallhack-protector"><img src="https://github.com/DevsDaddy/GameShield/blob/wiki_visuals/wallhack.png?raw=true" /></a></td>
</tr>
</table>

## Note
No matter what wall of protection you put around your project - **there will always be someone who can hack into it**.
I recommend two-way protection - on the client and on the server, including full transfer of critical functions to the server.

I am always ready to help you develop a strategy to protect your applications - <a href="mailto:[email protected]">just contact me</a>.

## Join Community
- <a href="https://discord.gg/xuNTKRDebx">Discord Community</a>
- <a href="https://boosty.to/devsdaddy">Buy me a Beer (Boosty)</a>

![GameShield Wiki](https://github.com/DevsDaddy/GameShield/blob/wiki_visuals/footerImage.png?raw=true)
3 changes: 3 additions & 0 deletions .gitignore → Unity Game Shield/.gitignore
Original file line number Diff line number Diff line change
Expand Up @@ -10,6 +10,9 @@
/[Ll]ogs/
/[Uu]ser[Ss]ettings/

# Hide Configuration
/Assets/DevsDaddy/GameShield/Resources/Config/GameShieldConfig.*

# MemoryCaptures can get excessive in size.
# They also could contain extremely sensitive data
/[Mm]emoryCaptures/
Expand Down
13 changes: 13 additions & 0 deletions Unity Game Shield/.idea/.idea.Unity Game Shield/.idea/.gitignore

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

6 changes: 6 additions & 0 deletions Unity Game Shield/.idea/.idea.Unity Game Shield/.idea/vcs.xml

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

8 changes: 8 additions & 0 deletions Unity Game Shield/Assets/DevsDaddy.meta

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

8 changes: 8 additions & 0 deletions Unity Game Shield/Assets/DevsDaddy/GameShield.meta

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

8 changes: 8 additions & 0 deletions Unity Game Shield/Assets/DevsDaddy/GameShield/Core.meta

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

Original file line number Diff line number Diff line change
@@ -0,0 +1,31 @@
using System.Linq;
using UnityEngine;

namespace DevsDaddy.GameShield.Core.Constants
{
public static class GeneralConstants
{
// Current Shield Version
public const string GAME_SHIELD_VERSION = "2024-03R1";

// General Worker Parameters
public const string WORKER_OBJECT_NAME = "GAMESHIELD_WORKER";
public const string CONFIG_PATH = "Config/GameShieldConfig";
public const string EDITOR_WIZZARD_KEY = "IsGSWizzardShown";
public const string EDITOR_WIZZARD_HEADER = "Wizzard/Header";
public const string EDITOR_WIZZARD_IMG_PATH = "Wizzard";

// Injection Scanner
public const string ASSMDB_PATH = "Config/ADB";
public const string INJECTION_SERVICE_FOLDER = "InjectionDetectorData";
public const string INJECTION_DEFAULT_WHITELIST_FILE = "DefaultWhitelist.gsa";
public const string INJECTION_USER_WHITELIST_FILE = "UserWhitelist.gsa";
public const string INJECTION_DATA_FILE = "ADB.gsa";
public const string INJECTION_DATA_SEPARATOR = ":";
public const string ASSEMBLIES_PATH_RELATIVE = "Library/ScriptAssemblies";
public static readonly string ASSETS_PATH = Application.dataPath;
public static readonly string RESOURCES_PATH = ASSETS_PATH + "/Resources/";
public static readonly string ASSEMBLIES_PATH = ASSETS_PATH + "/../" + ASSEMBLIES_PATH_RELATIVE;
public static readonly string INJECTION_DATA_PATH = RESOURCES_PATH + INJECTION_DATA_FILE;
}
}

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

Original file line number Diff line number Diff line change
@@ -0,0 +1,27 @@
namespace DevsDaddy.GameShield.Core.Constants
{
public static class GeneralStrings
{
// Setup Wizzard
public const string SETUP_WIZZARD_TITLE = "GameShield Wizzard";
public const string SETUP_WIZZARD_HINT = "Welcome to the GameShield Wizzard";
public const string SETUP_WIZZARD_THANKS = "Thanks for installing <b>GameShield Toolkit</b>. \nThis installation wizard will help you set up your project in just a few clicks. And if you have additional questions, please refer to the information below:";
public const string VERSION_TITLE = "<b>Current Version:</b>";
public const string AUTO_PAUSE_ON_HEADER = "Auto-Pause on Terminated";
public const string AUTO_PAUSE_ON_DESC = "Automatically pause modules when the user minimizes the application or the focus is lost.";
public const string LOG_PREFIX = "<color=orange><b>GameShield:</b></color>";

public const string DEV_KEY_TITLE = "Developer Key:";
public const string DEV_KEY_DESC = "Developer key used for encryption at different modules. Please, do not share it.";
public const string DEV_EMAIL_TITLE = "Developer Email:";
public const string DEV_EMAIL_DESC = "Used for contacts in Cheating Reporter";
public const string DEV_WEBSITE_TITLE = "Developer Website:";
public const string DEV_WEBSITE_DESC = "Used for contacts in Cheating Reporter";

public const string BACK_URL_TITLE = "Backend URL:";
public const string BACK_URL_DESC = "Enter your backend URL to enable server-side functional";

// Report Email
public const string REPORT_EMAIL = "[email protected]";
}
}

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

Original file line number Diff line number Diff line change
@@ -0,0 +1,40 @@
using System;

namespace DevsDaddy.GameShield.Core.Editor
{
/// <summary>
/// Allowed Assembly Class for Editor
/// </summary>
internal class AllowedAssembly
{
public string name;
public int[] hashes;

public AllowedAssembly(string name, int[] hashes)
{
this.name = name;
this.hashes = hashes;
}

public bool AddHash(int hash)
{
if (Array.IndexOf(hashes, hash) != -1) return false;

int oldLen = hashes.Length;
int newLen = oldLen + 1;

int[] newHashesArray = new int[newLen];
Array.Copy(hashes, newHashesArray, oldLen);

hashes = newHashesArray;
hashes[oldLen] = hash;

return true;
}

public override string ToString()
{
return name + " (hashes: " + hashes.Length + ")";
}
}
}

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

Loading