[PR #86] [MERGED] Anti cheat checksum #93

Closed
opened 2025-10-27 18:45:17 +01:00 by OMGeeky · 0 comments
Owner

📋 Pull Request Information

Original PR: https://github.com/AndorsTrailRelease/andors-trail/pull/86
Author: @OMGeeky
Created: 2/25/2025
Status: Merged
Merged: 6/17/2025
Merged by: @NutAndor

Base: AT_Source_Next_ReleaseHead: anti-cheat-checksum


📝 Commits (2)

  • 3003003 add checksum to savegame to track if the savegame has been modified
  • 31f25a9 fix whitespace formatting

📊 Changes

19 files changed (+558 additions, -134 deletions)

View changed files

📝 AndorsTrail/app/src/main/java/com/gpl/rpg/AndorsTrail/AndorsTrailApplication.java (+1 -1)
📝 AndorsTrail/app/src/main/java/com/gpl/rpg/AndorsTrail/context/WorldContext.java (+10 -0)
AndorsTrail/app/src/main/java/com/gpl/rpg/AndorsTrail/model/ChecksumBuilder.java (+115 -0)
📝 AndorsTrail/app/src/main/java/com/gpl/rpg/AndorsTrail/model/GameStatistics.java (+45 -0)
📝 AndorsTrail/app/src/main/java/com/gpl/rpg/AndorsTrail/model/InterfaceData.java (+8 -0)
📝 AndorsTrail/app/src/main/java/com/gpl/rpg/AndorsTrail/model/ModelContainer.java (+7 -0)
📝 AndorsTrail/app/src/main/java/com/gpl/rpg/AndorsTrail/model/WorldData.java (+9 -0)
📝 AndorsTrail/app/src/main/java/com/gpl/rpg/AndorsTrail/model/ability/ActorCondition.java (+8 -0)
📝 AndorsTrail/app/src/main/java/com/gpl/rpg/AndorsTrail/model/actor/Monster.java (+40 -0)
📝 AndorsTrail/app/src/main/java/com/gpl/rpg/AndorsTrail/model/actor/Player.java (+58 -0)
📝 AndorsTrail/app/src/main/java/com/gpl/rpg/AndorsTrail/model/item/Inventory.java (+18 -0)
📝 AndorsTrail/app/src/main/java/com/gpl/rpg/AndorsTrail/model/item/ItemContainer.java (+11 -0)
📝 AndorsTrail/app/src/main/java/com/gpl/rpg/AndorsTrail/model/item/Loot.java (+9 -0)
📝 AndorsTrail/app/src/main/java/com/gpl/rpg/AndorsTrail/model/map/MapCollection.java (+13 -0)
📝 AndorsTrail/app/src/main/java/com/gpl/rpg/AndorsTrail/model/map/MonsterSpawnArea.java (+9 -0)
📝 AndorsTrail/app/src/main/java/com/gpl/rpg/AndorsTrail/model/map/PredefinedMap.java (+27 -0)
📝 AndorsTrail/app/src/main/java/com/gpl/rpg/AndorsTrail/savegames/Savegames.java (+156 -133)
📝 AndorsTrail/app/src/main/java/com/gpl/rpg/AndorsTrail/util/Coord.java (+7 -0)
📝 AndorsTrail/app/src/main/java/com/gpl/rpg/AndorsTrail/util/Range.java (+7 -0)

📄 Description

icon and name have been explicitly excluded from the checksum, so players can change that if they want.

Please try to cheat in a savegame from this version and after loading and saving again the savegame should be marked as altered.

To verify if it worked you could for example alter the Savegames.java to show a (C) in addition to the (D) for betas (see patch below for example) or just check in the savegame via hex editor (i can help with all of that).

Index: AndorsTrail/app/src/main/java/com/gpl/rpg/AndorsTrail/savegames/Savegames.java
IDEA additional info:
Subsystem: com.intellij.openapi.diff.impl.patch.CharsetEP
<+>UTF-8
===================================================================
diff --git a/AndorsTrail/app/src/main/java/com/gpl/rpg/AndorsTrail/savegames/Savegames.java b/AndorsTrail/app/src/main/java/com/gpl/rpg/AndorsTrail/savegames/Savegames.java
--- a/AndorsTrail/app/src/main/java/com/gpl/rpg/AndorsTrail/savegames/Savegames.java	(revision 31f25a963f3c463c045feae8a50c15943990829d)
+++ b/AndorsTrail/app/src/main/java/com/gpl/rpg/AndorsTrail/savegames/Savegames.java	(date 1740493591258)
@@ -355,7 +355,8 @@
 		public final long savedVersion;
 
 		public String describe() {
-			return (fileversion == AndorsTrailApplication.DEVELOPMENT_INCOMPATIBLE_SAVEGAME_VERSION ? "(D) " : "") + playerName + ", " + displayInfo;
+			return (fileversion == AndorsTrailApplication.DEVELOPMENT_INCOMPATIBLE_SAVEGAME_VERSION ? "(D) " : "") +
+					(isAlteredSavegame ? "(C) " : "") + playerName + ", " + displayInfo;
 		}
 
 


🔄 This issue represents a GitHub Pull Request. It cannot be merged through Gitea due to API limitations.

## 📋 Pull Request Information **Original PR:** https://github.com/AndorsTrailRelease/andors-trail/pull/86 **Author:** [@OMGeeky](https://github.com/OMGeeky) **Created:** 2/25/2025 **Status:** ✅ Merged **Merged:** 6/17/2025 **Merged by:** [@NutAndor](https://github.com/NutAndor) **Base:** `AT_Source_Next_Release` ← **Head:** `anti-cheat-checksum` --- ### 📝 Commits (2) - [`3003003`](https://github.com/AndorsTrailRelease/andors-trail/commit/30030031b2fb2f9fdf4f0e96bfe9aaac5a61c8ca) add checksum to savegame to track if the savegame has been modified - [`31f25a9`](https://github.com/AndorsTrailRelease/andors-trail/commit/31f25a963f3c463c045feae8a50c15943990829d) fix whitespace formatting ### 📊 Changes **19 files changed** (+558 additions, -134 deletions) <details> <summary>View changed files</summary> 📝 `AndorsTrail/app/src/main/java/com/gpl/rpg/AndorsTrail/AndorsTrailApplication.java` (+1 -1) 📝 `AndorsTrail/app/src/main/java/com/gpl/rpg/AndorsTrail/context/WorldContext.java` (+10 -0) ➕ `AndorsTrail/app/src/main/java/com/gpl/rpg/AndorsTrail/model/ChecksumBuilder.java` (+115 -0) 📝 `AndorsTrail/app/src/main/java/com/gpl/rpg/AndorsTrail/model/GameStatistics.java` (+45 -0) 📝 `AndorsTrail/app/src/main/java/com/gpl/rpg/AndorsTrail/model/InterfaceData.java` (+8 -0) 📝 `AndorsTrail/app/src/main/java/com/gpl/rpg/AndorsTrail/model/ModelContainer.java` (+7 -0) 📝 `AndorsTrail/app/src/main/java/com/gpl/rpg/AndorsTrail/model/WorldData.java` (+9 -0) 📝 `AndorsTrail/app/src/main/java/com/gpl/rpg/AndorsTrail/model/ability/ActorCondition.java` (+8 -0) 📝 `AndorsTrail/app/src/main/java/com/gpl/rpg/AndorsTrail/model/actor/Monster.java` (+40 -0) 📝 `AndorsTrail/app/src/main/java/com/gpl/rpg/AndorsTrail/model/actor/Player.java` (+58 -0) 📝 `AndorsTrail/app/src/main/java/com/gpl/rpg/AndorsTrail/model/item/Inventory.java` (+18 -0) 📝 `AndorsTrail/app/src/main/java/com/gpl/rpg/AndorsTrail/model/item/ItemContainer.java` (+11 -0) 📝 `AndorsTrail/app/src/main/java/com/gpl/rpg/AndorsTrail/model/item/Loot.java` (+9 -0) 📝 `AndorsTrail/app/src/main/java/com/gpl/rpg/AndorsTrail/model/map/MapCollection.java` (+13 -0) 📝 `AndorsTrail/app/src/main/java/com/gpl/rpg/AndorsTrail/model/map/MonsterSpawnArea.java` (+9 -0) 📝 `AndorsTrail/app/src/main/java/com/gpl/rpg/AndorsTrail/model/map/PredefinedMap.java` (+27 -0) 📝 `AndorsTrail/app/src/main/java/com/gpl/rpg/AndorsTrail/savegames/Savegames.java` (+156 -133) 📝 `AndorsTrail/app/src/main/java/com/gpl/rpg/AndorsTrail/util/Coord.java` (+7 -0) 📝 `AndorsTrail/app/src/main/java/com/gpl/rpg/AndorsTrail/util/Range.java` (+7 -0) </details> ### 📄 Description icon and name have been explicitly excluded from the checksum, so players can change that if they want. Please try to cheat in a savegame from this version and after loading and saving again the savegame should be marked as altered. To verify if it worked you could for example alter the Savegames.java to show a (C) in addition to the (D) for betas _(see patch below for example)_ or just check in the savegame via hex editor (i can help with all of that). ```diff Index: AndorsTrail/app/src/main/java/com/gpl/rpg/AndorsTrail/savegames/Savegames.java IDEA additional info: Subsystem: com.intellij.openapi.diff.impl.patch.CharsetEP <+>UTF-8 =================================================================== diff --git a/AndorsTrail/app/src/main/java/com/gpl/rpg/AndorsTrail/savegames/Savegames.java b/AndorsTrail/app/src/main/java/com/gpl/rpg/AndorsTrail/savegames/Savegames.java --- a/AndorsTrail/app/src/main/java/com/gpl/rpg/AndorsTrail/savegames/Savegames.java (revision 31f25a963f3c463c045feae8a50c15943990829d) +++ b/AndorsTrail/app/src/main/java/com/gpl/rpg/AndorsTrail/savegames/Savegames.java (date 1740493591258) @@ -355,7 +355,8 @@ public final long savedVersion; public String describe() { - return (fileversion == AndorsTrailApplication.DEVELOPMENT_INCOMPATIBLE_SAVEGAME_VERSION ? "(D) " : "") + playerName + ", " + displayInfo; + return (fileversion == AndorsTrailApplication.DEVELOPMENT_INCOMPATIBLE_SAVEGAME_VERSION ? "(D) " : "") + + (isAlteredSavegame ? "(C) " : "") + playerName + ", " + displayInfo; } ``` --- <sub>🔄 This issue represents a GitHub Pull Request. It cannot be merged through Gitea due to API limitations.</sub>
OMGeeky added the
pull-request
label 2025-10-27 18:45:17 +01:00
Sign in to join this conversation.
1 Participants
Notifications
Due Date
No due date set.
Dependencies

No dependencies set.

Reference: AndorsTrailRelease/archived-andors-trail#93
No description provided.