From 0d59561bee4cf7db10d53a8aa58952ae65e856b5 Mon Sep 17 00:00:00 2001 From: Wither OrNot Date: Thu, 13 Feb 2025 09:49:35 -0500 Subject: Initial commit Co-authored-by: neko <109633131+nekoppai@users.noreply.github.com> Co-authored-by: Lyssa <75037904+thecatontheceiling@users.noreply.github.com> Co-authored-by: abbodi1406 <33669284+abbodi1406@users.noreply.github.com> --- LibTSforge/Modifiers/UniqueIdDelete.cs | 55 ++++++++++++++++++++++++++++++++++ 1 file changed, 55 insertions(+) create mode 100644 LibTSforge/Modifiers/UniqueIdDelete.cs (limited to 'LibTSforge/Modifiers/UniqueIdDelete.cs') diff --git a/LibTSforge/Modifiers/UniqueIdDelete.cs b/LibTSforge/Modifiers/UniqueIdDelete.cs new file mode 100644 index 0000000..b83d328 --- /dev/null +++ b/LibTSforge/Modifiers/UniqueIdDelete.cs @@ -0,0 +1,55 @@ +namespace LibTSforge.Modifiers +{ + using System; + using LibTSforge.PhysicalStore; + using LibTSforge.SPP; + + public static class UniqueIdDelete + { + public static void DeleteUniqueId(PSVersion version, bool production, Guid actId) + { + Guid appId; + + if (actId == Guid.Empty) + { + appId = SLApi.WINDOWS_APP_ID; + actId = SLApi.GetDefaultActivationID(appId, true); + + if (actId == Guid.Empty) + { + throw new Exception("No applicable activation IDs found."); + } + } + else + { + appId = SLApi.GetAppId(actId); + } + + string instId = SLApi.GetInstallationID(actId); + Guid pkeyId = SLApi.GetInstalledPkeyID(actId); + + Utils.KillSPP(); + + Logger.WriteLine("Writing TrustedStore data..."); + + using (IPhysicalStore store = Utils.GetStore(version, production)) + { + string key = string.Format("SPPSVC\\{0}\\{1}", appId, actId); + PSBlock keyBlock = store.GetBlock(key, pkeyId.ToString()); + + if (keyBlock == null) + { + throw new Exception("No product key found."); + } + + VariableBag pkb = new VariableBag(keyBlock.Data); + + pkb.DeleteBlock("SppPkeyUniqueIdToken"); + + store.SetBlock(key, pkeyId.ToString(), pkb.Serialize()); + } + + Logger.WriteLine("Successfully removed Unique ID for product key ID " + pkeyId); + } + } +} -- cgit v1.2.3