mirror of
https://silica.codes/BedrockReverse/McTools.git
synced 2025-06-22 18:55:10 +12:00
Upload src
This commit is contained in:
parent
df72a81caf
commit
11bc128354
43 changed files with 76263 additions and 9 deletions
6
McDecryptor/App.config
Normal file
6
McDecryptor/App.config
Normal file
|
@ -0,0 +1,6 @@
|
|||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<configuration>
|
||||
<startup>
|
||||
|
||||
<supportedRuntime version="v4.0" sku=".NETFramework,Version=v4.8"/></startup>
|
||||
</configuration>
|
199
McDecryptor/Config.cs
Normal file
199
McDecryptor/Config.cs
Normal file
|
@ -0,0 +1,199 @@
|
|||
using McDecryptor.Properties;
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.IO;
|
||||
using System.Linq;
|
||||
using System.Reflection;
|
||||
using System.Text;
|
||||
using System.Threading.Tasks;
|
||||
|
||||
namespace McDecryptor
|
||||
{
|
||||
internal class Config
|
||||
{
|
||||
public static string LocalAppdata = Environment.GetEnvironmentVariable("LOCALAPPDATA");
|
||||
public static string RoamingAppdata = Environment.GetEnvironmentVariable("APPDATA");
|
||||
|
||||
public static string ApplicationDirectory;
|
||||
private static List<string> searchFolders = new List<string>();
|
||||
private static List<string> searchModules = new List<string>();
|
||||
|
||||
|
||||
public static string MinecraftFolder;
|
||||
|
||||
public static string LocalState;
|
||||
public static string LocalCache;
|
||||
|
||||
public static string KeysDbPath;
|
||||
public static string PremiumCache;
|
||||
public static string ServerPackCache;
|
||||
public static string RealmsPremiumCache;
|
||||
|
||||
|
||||
public static string OptionsTxt;
|
||||
public static string OutFolder;
|
||||
|
||||
public static bool CrackPacks;
|
||||
public static bool ZipPacks;
|
||||
public static string[] SearchFolders
|
||||
{
|
||||
get
|
||||
{
|
||||
return searchFolders.ToArray();
|
||||
}
|
||||
}
|
||||
|
||||
public static string[] SearchModules
|
||||
{
|
||||
get
|
||||
{
|
||||
return searchModules.ToArray();
|
||||
}
|
||||
}
|
||||
|
||||
private static void rebaseSearchFolders()
|
||||
{
|
||||
searchFolders.Clear();
|
||||
searchFolders.Add(ApplicationDirectory);
|
||||
searchFolders.Add(PremiumCache);
|
||||
searchFolders.Add(ServerPackCache);
|
||||
searchFolders.Add(RealmsPremiumCache);
|
||||
|
||||
searchModules.Clear();
|
||||
searchModules.Add("resource_packs");
|
||||
searchModules.Add("skin_packs");
|
||||
searchModules.Add("world_templates");
|
||||
searchModules.Add("persona");
|
||||
searchModules.Add("behaviour_packs");
|
||||
searchModules.Add("resource");
|
||||
}
|
||||
private static void rebaseLocalData()
|
||||
{
|
||||
OutFolder = Path.Combine(LocalState, "games", "com.mojang");
|
||||
PremiumCache = Path.Combine(LocalState, "premium_cache");
|
||||
ServerPackCache = Path.Combine(LocalCache, "packcache");
|
||||
RealmsPremiumCache = Path.Combine(LocalCache, "premiumcache");
|
||||
rebaseSearchFolders();
|
||||
}
|
||||
private static void rebaseAll()
|
||||
{
|
||||
LocalState = Path.Combine(MinecraftFolder, "LocalState");
|
||||
LocalCache = Path.Combine(MinecraftFolder, "LocalCache", "minecraftpe");
|
||||
rebaseLocalData();
|
||||
}
|
||||
private static string resolve(string str)
|
||||
{
|
||||
str = str.Trim();
|
||||
str = str.Replace("$LOCALAPPDATA", LocalAppdata);
|
||||
str = str.Replace("$APPDATA", RoamingAppdata);
|
||||
|
||||
str = str.Replace("$MCDIR", MinecraftFolder);
|
||||
str = str.Replace("$EXECDIR", ApplicationDirectory);
|
||||
|
||||
str = str.Replace("$LOCALSTATE", LocalState);
|
||||
str = str.Replace("$LOCALCACHE", LocalCache);
|
||||
|
||||
str = str.Replace("$PREMIUMCACHE", PremiumCache);
|
||||
str = str.Replace("$SERVERPACKCACHE", ServerPackCache);
|
||||
str = str.Replace("$REALMSPREMIUMCACHE", RealmsPremiumCache);
|
||||
|
||||
str = str.Replace("$OUTFOLDER", OutFolder);
|
||||
return str;
|
||||
}
|
||||
|
||||
public static void Init()
|
||||
{
|
||||
CrackPacks = true;
|
||||
ZipPacks = false;
|
||||
|
||||
ApplicationDirectory = Path.GetDirectoryName(Assembly.GetEntryAssembly().Location);
|
||||
KeysDbPath = Path.Combine(ApplicationDirectory, "keys.db");
|
||||
MinecraftFolder = Path.Combine(LocalAppdata, "Packages", "Microsoft.MinecraftUWP_8wekyb3d8bbwe");
|
||||
rebaseAll();
|
||||
}
|
||||
|
||||
public static void ReadConfig(string configFile)
|
||||
{
|
||||
if (File.Exists(configFile))
|
||||
{
|
||||
string[] configLines = File.ReadAllLines(configFile);
|
||||
foreach(string line in configLines)
|
||||
{
|
||||
if (line.Trim().StartsWith("#"))
|
||||
continue;
|
||||
|
||||
if (!line.Contains(":"))
|
||||
continue;
|
||||
|
||||
string[] keyvalpair = line.Trim().Split(':');
|
||||
|
||||
if (keyvalpair.Length < 2)
|
||||
continue;
|
||||
|
||||
switch(keyvalpair[0])
|
||||
{
|
||||
case "MinecraftFolder":
|
||||
MinecraftFolder = resolve(keyvalpair[1]);
|
||||
rebaseAll();
|
||||
break;
|
||||
|
||||
case "LocalState":
|
||||
LocalState = resolve(keyvalpair[1]);
|
||||
rebaseLocalData();
|
||||
break;
|
||||
case "LocalCache":
|
||||
LocalCache = resolve(keyvalpair[1]);
|
||||
rebaseLocalData();
|
||||
break;
|
||||
|
||||
case "PremiumCache":
|
||||
PremiumCache = resolve(keyvalpair[1]);
|
||||
rebaseSearchFolders();
|
||||
break;
|
||||
case "ServerPackCache":
|
||||
ServerPackCache = resolve(keyvalpair[1]);
|
||||
rebaseSearchFolders();
|
||||
break;
|
||||
case "RealmsPremiumCache":
|
||||
RealmsPremiumCache = resolve(keyvalpair[1]);
|
||||
rebaseSearchFolders();
|
||||
break;
|
||||
|
||||
case "OutputFolder":
|
||||
OutFolder = resolve(keyvalpair[1]);
|
||||
break;
|
||||
|
||||
case "KeysDb":
|
||||
KeysDbPath = resolve(keyvalpair[1]);
|
||||
break;
|
||||
|
||||
case "OptionsTxt":
|
||||
OptionsTxt = resolve(keyvalpair[1]);
|
||||
break;
|
||||
|
||||
case "AdditionalSearchDir":
|
||||
searchFolders.Add(resolve(keyvalpair[1]));
|
||||
break;
|
||||
case "AdditionalModuleDir":
|
||||
searchModules.Add(resolve(keyvalpair[1]));
|
||||
break;
|
||||
|
||||
case "CrackThePacks":
|
||||
CrackPacks = (resolve(keyvalpair[1]).ToLower() == "yes");
|
||||
break;
|
||||
case "ZipThePacks":
|
||||
ZipPacks = (resolve(keyvalpair[1]).ToLower() == "yes");
|
||||
break;
|
||||
|
||||
}
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
File.WriteAllBytes(configFile, Resources.DefaultConfigFile);
|
||||
ReadConfig(configFile);
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
}
|
81
McDecryptor/McDecryptor.csproj
Normal file
81
McDecryptor/McDecryptor.csproj
Normal file
|
@ -0,0 +1,81 @@
|
|||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<Project ToolsVersion="15.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
|
||||
<Import Project="$(MSBuildExtensionsPath)\$(MSBuildToolsVersion)\Microsoft.Common.props" Condition="Exists('$(MSBuildExtensionsPath)\$(MSBuildToolsVersion)\Microsoft.Common.props')" />
|
||||
<PropertyGroup>
|
||||
<Configuration Condition=" '$(Configuration)' == '' ">Debug</Configuration>
|
||||
<Platform Condition=" '$(Platform)' == '' ">AnyCPU</Platform>
|
||||
<ProjectGuid>{3E522B6D-5247-4F69-9DAE-DD0385DAE88E}</ProjectGuid>
|
||||
<OutputType>Exe</OutputType>
|
||||
<RootNamespace>McDecryptor</RootNamespace>
|
||||
<AssemblyName>McDecryptor</AssemblyName>
|
||||
<TargetFrameworkVersion>v4.8</TargetFrameworkVersion>
|
||||
<FileAlignment>512</FileAlignment>
|
||||
<Deterministic>true</Deterministic>
|
||||
<TargetFrameworkProfile />
|
||||
</PropertyGroup>
|
||||
<PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Debug|AnyCPU' ">
|
||||
<PlatformTarget>AnyCPU</PlatformTarget>
|
||||
<DebugSymbols>true</DebugSymbols>
|
||||
<DebugType>full</DebugType>
|
||||
<Optimize>false</Optimize>
|
||||
<OutputPath>bin\Debug\</OutputPath>
|
||||
<DefineConstants>DEBUG;TRACE</DefineConstants>
|
||||
<ErrorReport>prompt</ErrorReport>
|
||||
<WarningLevel>4</WarningLevel>
|
||||
<Prefer32Bit>false</Prefer32Bit>
|
||||
</PropertyGroup>
|
||||
<PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Release|AnyCPU' ">
|
||||
<PlatformTarget>AnyCPU</PlatformTarget>
|
||||
<DebugType>none</DebugType>
|
||||
<Optimize>true</Optimize>
|
||||
<OutputPath>bin\Release\</OutputPath>
|
||||
<DefineConstants>TRACE</DefineConstants>
|
||||
<ErrorReport>prompt</ErrorReport>
|
||||
<WarningLevel>4</WarningLevel>
|
||||
<Prefer32Bit>false</Prefer32Bit>
|
||||
</PropertyGroup>
|
||||
<PropertyGroup>
|
||||
<ApplicationIcon>illager.ico</ApplicationIcon>
|
||||
</PropertyGroup>
|
||||
<ItemGroup>
|
||||
<Reference Include="System" />
|
||||
<Reference Include="System.Core" />
|
||||
<Reference Include="System.IO.Compression.FileSystem" />
|
||||
<Reference Include="System.Xml.Linq" />
|
||||
<Reference Include="System.Data.DataSetExtensions" />
|
||||
<Reference Include="Microsoft.CSharp" />
|
||||
<Reference Include="System.Data" />
|
||||
<Reference Include="System.Net.Http" />
|
||||
<Reference Include="System.Xml" />
|
||||
</ItemGroup>
|
||||
<ItemGroup>
|
||||
<Compile Include="Config.cs" />
|
||||
<Compile Include="Program.cs" />
|
||||
<Compile Include="Properties\AssemblyInfo.cs" />
|
||||
<Compile Include="Properties\Resources.Designer.cs">
|
||||
<AutoGen>True</AutoGen>
|
||||
<DesignTime>True</DesignTime>
|
||||
<DependentUpon>Resources.resx</DependentUpon>
|
||||
</Compile>
|
||||
</ItemGroup>
|
||||
<ItemGroup>
|
||||
<None Include="App.config" />
|
||||
<None Include="default.cfg" />
|
||||
</ItemGroup>
|
||||
<ItemGroup>
|
||||
<ProjectReference Include="..\McCrypt\LibMcCrypt.csproj">
|
||||
<Project>{4bef6f52-6545-4bb9-8053-50335a1c6789}</Project>
|
||||
<Name>LibMcCrypt</Name>
|
||||
</ProjectReference>
|
||||
</ItemGroup>
|
||||
<ItemGroup>
|
||||
<EmbeddedResource Include="Properties\Resources.resx">
|
||||
<Generator>ResXFileCodeGenerator</Generator>
|
||||
<LastGenOutput>Resources.Designer.cs</LastGenOutput>
|
||||
</EmbeddedResource>
|
||||
</ItemGroup>
|
||||
<ItemGroup>
|
||||
<Content Include="illager.ico" />
|
||||
</ItemGroup>
|
||||
<Import Project="$(MSBuildToolsPath)\Microsoft.CSharp.targets" />
|
||||
</Project>
|
245
McDecryptor/Program.cs
Normal file
245
McDecryptor/Program.cs
Normal file
|
@ -0,0 +1,245 @@
|
|||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.IO;
|
||||
using System.IO.Compression;
|
||||
using System.Threading;
|
||||
using McCrypt;
|
||||
|
||||
namespace McDecryptor
|
||||
{
|
||||
class Program
|
||||
{
|
||||
public struct ContentListing
|
||||
{
|
||||
public string Path;
|
||||
public string Type;
|
||||
public string Name;
|
||||
public int Id;
|
||||
}
|
||||
public static string EscapeFilename(string filename)
|
||||
{
|
||||
return filename.Replace("/", "_").Replace("\\", "_").Replace(":", "_").Replace("?", "_").Replace("*", "_").Replace("<", "_").Replace(">", "_").Replace("|", "_").Replace("\"", "_");
|
||||
}
|
||||
|
||||
static void CopyFile(string src, string dst)
|
||||
{
|
||||
using (FileStream fs = File.OpenRead(src))
|
||||
{
|
||||
using(FileStream wfd = File.OpenWrite(dst))
|
||||
{
|
||||
fs.CopyTo(wfd);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
static void CopyDirectory(string sourcePath, string targetPath)
|
||||
{
|
||||
List<Thread> threads = new List<Thread>();
|
||||
|
||||
//Now Create all of the directories
|
||||
foreach (string dirPath in Directory.GetDirectories(sourcePath, "*", SearchOption.AllDirectories))
|
||||
{
|
||||
Thread thrd = new Thread(() =>
|
||||
{
|
||||
Directory.CreateDirectory(dirPath.Replace(sourcePath, targetPath));
|
||||
});
|
||||
thrd.Priority = ThreadPriority.Highest;
|
||||
thrd.Start();
|
||||
threads.Add(thrd);
|
||||
}
|
||||
|
||||
foreach (Thread t in threads.ToArray())
|
||||
t.Join();
|
||||
threads.Clear();
|
||||
|
||||
//Copy all the files & Replaces any files with the same name
|
||||
foreach (string newPath in Directory.GetFiles(sourcePath, "*", SearchOption.AllDirectories))
|
||||
{
|
||||
|
||||
Thread thrd = new Thread(() =>
|
||||
{
|
||||
CopyFile(newPath, newPath.Replace(sourcePath, targetPath));
|
||||
});
|
||||
thrd.Priority = ThreadPriority.Highest;
|
||||
thrd.Start();
|
||||
threads.Add(thrd);
|
||||
|
||||
}
|
||||
|
||||
foreach (Thread t in threads.ToArray())
|
||||
t.Join();
|
||||
|
||||
threads.Clear();
|
||||
}
|
||||
|
||||
static void Main(string[] args)
|
||||
{
|
||||
Console.WriteLine("-- McDecryptor --");
|
||||
|
||||
Console.WriteLine("Reading Configuration File...");
|
||||
Config.Init();
|
||||
Directory.SetCurrentDirectory(Config.ApplicationDirectory);
|
||||
Config.ReadConfig("McDecryptor.cfg");
|
||||
|
||||
Keys.KeyDbFile = Config.KeysDbPath;
|
||||
if (File.Exists(Config.KeysDbPath))
|
||||
{
|
||||
Console.WriteLine("Parsing Key Database File...");
|
||||
Keys.ReadKeysDb(Config.KeysDbPath);
|
||||
}
|
||||
|
||||
|
||||
if (File.Exists(Config.OptionsTxt))
|
||||
{
|
||||
Keys.ReadOptionsTxt(Config.OptionsTxt);
|
||||
}
|
||||
|
||||
Console.WriteLine("Minecraft Folder: " + Config.MinecraftFolder);
|
||||
|
||||
|
||||
if (Directory.Exists(Config.MinecraftFolder))
|
||||
{
|
||||
string[] entFiles = Directory.GetFiles(Config.LocalState, "*.ent", SearchOption.TopDirectoryOnly);
|
||||
|
||||
foreach (string entFile in entFiles)
|
||||
{
|
||||
Console.WriteLine("Reading Entitlement File: " + Path.GetFileName(entFile));
|
||||
Keys.ReadEntitlementFile(entFile);
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
string[] entFilesWorkDir = Directory.GetFiles(Config.ApplicationDirectory, "*.ent", SearchOption.TopDirectoryOnly);
|
||||
|
||||
foreach (string entFile in entFilesWorkDir)
|
||||
{
|
||||
Console.WriteLine("Reading Entitlement File: " + Path.GetFileName(entFile));
|
||||
Keys.ReadEntitlementFile(entFile);
|
||||
}
|
||||
|
||||
|
||||
List<ContentListing> premiumContents = new List<ContentListing>();
|
||||
Console.WriteLine("\n\n");
|
||||
Console.WriteLine("Select what to decrypt: ");
|
||||
int total = 1;
|
||||
|
||||
|
||||
foreach (string searchFolder in Config.SearchFolders)
|
||||
{
|
||||
foreach(string searchModule in Config.SearchModules)
|
||||
{
|
||||
string moduleFolder = Path.Combine(searchFolder, searchModule);
|
||||
|
||||
if (Directory.Exists(moduleFolder))
|
||||
{
|
||||
foreach (string moduleItem in Directory.GetDirectories(moduleFolder, "*", SearchOption.TopDirectoryOnly))
|
||||
{
|
||||
ContentListing cList = new ContentListing();
|
||||
cList.Name = Manifest.ReadName(Path.Combine(moduleItem, "manifest.json"));
|
||||
cList.Type = searchModule;
|
||||
cList.Id = total;
|
||||
cList.Path = moduleItem;
|
||||
|
||||
premiumContents.Add(cList);
|
||||
|
||||
Console.WriteLine(cList.Id.ToString() + ") (" + cList.Type + ") " + cList.Name);
|
||||
|
||||
total++;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
Console.WriteLine("Select multiple (seperated by ',') or write \"ALL\"");
|
||||
|
||||
List<int> toDecrypt = new List<int>();
|
||||
while (true)
|
||||
{
|
||||
Console.Write("Which do you want to decrypt? ");
|
||||
try
|
||||
{
|
||||
string readText = Console.ReadLine();
|
||||
if (readText.ToUpper() == "ALL")
|
||||
{
|
||||
for(int i = 0; i < total-1; i++)
|
||||
toDecrypt.Add(i);
|
||||
break;
|
||||
}
|
||||
string[] entries = readText.Split(',');
|
||||
|
||||
foreach(string entry in entries) {
|
||||
int tdc = Convert.ToInt32(entry.Trim())-1;
|
||||
if (tdc < 0 || tdc >= total)
|
||||
continue;
|
||||
toDecrypt.Add(tdc);
|
||||
}
|
||||
|
||||
break;
|
||||
}
|
||||
catch (Exception) { }
|
||||
}
|
||||
|
||||
|
||||
|
||||
foreach (int decryptMe in toDecrypt.ToArray())
|
||||
{
|
||||
ContentListing cListing = premiumContents.ToArray()[decryptMe];
|
||||
string outFolder = Path.Combine(Config.OutFolder, cListing.Type, EscapeFilename(cListing.Name));
|
||||
|
||||
int counter = 1;
|
||||
string ogOutFolder = outFolder;
|
||||
while (Directory.Exists(outFolder))
|
||||
{
|
||||
outFolder = ogOutFolder + "_" + counter.ToString();
|
||||
counter++;
|
||||
}
|
||||
|
||||
new Thread(() =>
|
||||
{
|
||||
Console.WriteLine("Decrypting: " + cListing.Name);
|
||||
Directory.CreateDirectory(outFolder);
|
||||
CopyDirectory(cListing.Path, outFolder);
|
||||
try
|
||||
{
|
||||
string levelDatFile = Path.Combine(outFolder, "level.dat");
|
||||
string skinsJsonFile = Path.Combine(outFolder, "skins.json");
|
||||
string oldSchoolZipe = Path.Combine(outFolder, "content.zipe");
|
||||
|
||||
Marketplace.DecryptContents(outFolder);
|
||||
|
||||
if (Config.CrackPacks)
|
||||
{
|
||||
if (File.Exists(oldSchoolZipe))
|
||||
Marketplace.CrackZipe(oldSchoolZipe);
|
||||
|
||||
if (File.Exists(levelDatFile))
|
||||
Marketplace.CrackLevelDat(levelDatFile);
|
||||
|
||||
if (File.Exists(skinsJsonFile))
|
||||
Marketplace.CrackSkinsJson(skinsJsonFile);
|
||||
}
|
||||
|
||||
if (Config.ZipPacks)
|
||||
{
|
||||
string ext = "";
|
||||
if (File.Exists(levelDatFile))
|
||||
ext += ".mctemplate";
|
||||
else
|
||||
ext += ".mcpack";
|
||||
|
||||
ZipFile.CreateFromDirectory(outFolder, outFolder + ext, CompressionLevel.NoCompression, false);
|
||||
Directory.Delete(outFolder, true);
|
||||
}
|
||||
}
|
||||
catch (Exception)
|
||||
{
|
||||
Console.Error.WriteLine("Failed to decrypt: " + cListing.Name);
|
||||
Directory.Delete(outFolder, true);
|
||||
}
|
||||
|
||||
}).Start();
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
}
|
36
McDecryptor/Properties/AssemblyInfo.cs
Normal file
36
McDecryptor/Properties/AssemblyInfo.cs
Normal file
|
@ -0,0 +1,36 @@
|
|||
using System.Reflection;
|
||||
using System.Runtime.CompilerServices;
|
||||
using System.Runtime.InteropServices;
|
||||
|
||||
// General Information about an assembly is controlled through the following
|
||||
// set of attributes. Change these attribute values to modify the information
|
||||
// associated with an assembly.
|
||||
[assembly: AssemblyTitle("McDecryptor")]
|
||||
[assembly: AssemblyDescription("Minecraft Marketplace Decryptor")]
|
||||
[assembly: AssemblyConfiguration("")]
|
||||
[assembly: AssemblyCompany("The Pillager Bay")]
|
||||
[assembly: AssemblyProduct("McDecryptor")]
|
||||
[assembly: AssemblyCopyright("Copyright © 2022")]
|
||||
[assembly: AssemblyTrademark("The Pillager Bay")]
|
||||
[assembly: AssemblyCulture("")]
|
||||
|
||||
// Setting ComVisible to false makes the types in this assembly not visible
|
||||
// to COM components. If you need to access a type in this assembly from
|
||||
// COM, set the ComVisible attribute to true on that type.
|
||||
[assembly: ComVisible(false)]
|
||||
|
||||
// The following GUID is for the ID of the typelib if this project is exposed to COM
|
||||
[assembly: Guid("3e522b6d-5247-4f69-9dae-dd0385dae88e")]
|
||||
|
||||
// Version information for an assembly consists of the following four values:
|
||||
//
|
||||
// Major Version
|
||||
// Minor Version
|
||||
// Build Number
|
||||
// Revision
|
||||
//
|
||||
// You can specify all the values or you can default the Build and Revision Numbers
|
||||
// by using the '*' as shown below:
|
||||
// [assembly: AssemblyVersion("1.0.*")]
|
||||
[assembly: AssemblyVersion("1.0.0.0")]
|
||||
[assembly: AssemblyFileVersion("1.0.0.0")]
|
73
McDecryptor/Properties/Resources.Designer.cs
generated
Normal file
73
McDecryptor/Properties/Resources.Designer.cs
generated
Normal file
|
@ -0,0 +1,73 @@
|
|||
//------------------------------------------------------------------------------
|
||||
// <auto-generated>
|
||||
// This code was generated by a tool.
|
||||
// Runtime Version:4.0.30319.42000
|
||||
//
|
||||
// Changes to this file may cause incorrect behavior and will be lost if
|
||||
// the code is regenerated.
|
||||
// </auto-generated>
|
||||
//------------------------------------------------------------------------------
|
||||
|
||||
namespace McDecryptor.Properties {
|
||||
using System;
|
||||
|
||||
|
||||
/// <summary>
|
||||
/// A strongly-typed resource class, for looking up localized strings, etc.
|
||||
/// </summary>
|
||||
// This class was auto-generated by the StronglyTypedResourceBuilder
|
||||
// class via a tool like ResGen or Visual Studio.
|
||||
// To add or remove a member, edit your .ResX file then rerun ResGen
|
||||
// with the /str option, or rebuild your VS project.
|
||||
[global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Resources.Tools.StronglyTypedResourceBuilder", "17.0.0.0")]
|
||||
[global::System.Diagnostics.DebuggerNonUserCodeAttribute()]
|
||||
[global::System.Runtime.CompilerServices.CompilerGeneratedAttribute()]
|
||||
internal class Resources {
|
||||
|
||||
private static global::System.Resources.ResourceManager resourceMan;
|
||||
|
||||
private static global::System.Globalization.CultureInfo resourceCulture;
|
||||
|
||||
[global::System.Diagnostics.CodeAnalysis.SuppressMessageAttribute("Microsoft.Performance", "CA1811:AvoidUncalledPrivateCode")]
|
||||
internal Resources() {
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Returns the cached ResourceManager instance used by this class.
|
||||
/// </summary>
|
||||
[global::System.ComponentModel.EditorBrowsableAttribute(global::System.ComponentModel.EditorBrowsableState.Advanced)]
|
||||
internal static global::System.Resources.ResourceManager ResourceManager {
|
||||
get {
|
||||
if (object.ReferenceEquals(resourceMan, null)) {
|
||||
global::System.Resources.ResourceManager temp = new global::System.Resources.ResourceManager("McDecryptor.Properties.Resources", typeof(Resources).Assembly);
|
||||
resourceMan = temp;
|
||||
}
|
||||
return resourceMan;
|
||||
}
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Overrides the current thread's CurrentUICulture property for all
|
||||
/// resource lookups using this strongly typed resource class.
|
||||
/// </summary>
|
||||
[global::System.ComponentModel.EditorBrowsableAttribute(global::System.ComponentModel.EditorBrowsableState.Advanced)]
|
||||
internal static global::System.Globalization.CultureInfo Culture {
|
||||
get {
|
||||
return resourceCulture;
|
||||
}
|
||||
set {
|
||||
resourceCulture = value;
|
||||
}
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Looks up a localized resource of type System.Byte[].
|
||||
/// </summary>
|
||||
internal static byte[] DefaultConfigFile {
|
||||
get {
|
||||
object obj = ResourceManager.GetObject("DefaultConfigFile", resourceCulture);
|
||||
return ((byte[])(obj));
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
124
McDecryptor/Properties/Resources.resx
Normal file
124
McDecryptor/Properties/Resources.resx
Normal file
|
@ -0,0 +1,124 @@
|
|||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<root>
|
||||
<!--
|
||||
Microsoft ResX Schema
|
||||
|
||||
Version 2.0
|
||||
|
||||
The primary goals of this format is to allow a simple XML format
|
||||
that is mostly human readable. The generation and parsing of the
|
||||
various data types are done through the TypeConverter classes
|
||||
associated with the data types.
|
||||
|
||||
Example:
|
||||
|
||||
... ado.net/XML headers & schema ...
|
||||
<resheader name="resmimetype">text/microsoft-resx</resheader>
|
||||
<resheader name="version">2.0</resheader>
|
||||
<resheader name="reader">System.Resources.ResXResourceReader, System.Windows.Forms, ...</resheader>
|
||||
<resheader name="writer">System.Resources.ResXResourceWriter, System.Windows.Forms, ...</resheader>
|
||||
<data name="Name1"><value>this is my long string</value><comment>this is a comment</comment></data>
|
||||
<data name="Color1" type="System.Drawing.Color, System.Drawing">Blue</data>
|
||||
<data name="Bitmap1" mimetype="application/x-microsoft.net.object.binary.base64">
|
||||
<value>[base64 mime encoded serialized .NET Framework object]</value>
|
||||
</data>
|
||||
<data name="Icon1" type="System.Drawing.Icon, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
|
||||
<value>[base64 mime encoded string representing a byte array form of the .NET Framework object]</value>
|
||||
<comment>This is a comment</comment>
|
||||
</data>
|
||||
|
||||
There are any number of "resheader" rows that contain simple
|
||||
name/value pairs.
|
||||
|
||||
Each data row contains a name, and value. The row also contains a
|
||||
type or mimetype. Type corresponds to a .NET class that support
|
||||
text/value conversion through the TypeConverter architecture.
|
||||
Classes that don't support this are serialized and stored with the
|
||||
mimetype set.
|
||||
|
||||
The mimetype is used for serialized objects, and tells the
|
||||
ResXResourceReader how to depersist the object. This is currently not
|
||||
extensible. For a given mimetype the value must be set accordingly:
|
||||
|
||||
Note - application/x-microsoft.net.object.binary.base64 is the format
|
||||
that the ResXResourceWriter will generate, however the reader can
|
||||
read any of the formats listed below.
|
||||
|
||||
mimetype: application/x-microsoft.net.object.binary.base64
|
||||
value : The object must be serialized with
|
||||
: System.Runtime.Serialization.Formatters.Binary.BinaryFormatter
|
||||
: and then encoded with base64 encoding.
|
||||
|
||||
mimetype: application/x-microsoft.net.object.soap.base64
|
||||
value : The object must be serialized with
|
||||
: System.Runtime.Serialization.Formatters.Soap.SoapFormatter
|
||||
: and then encoded with base64 encoding.
|
||||
|
||||
mimetype: application/x-microsoft.net.object.bytearray.base64
|
||||
value : The object must be serialized into a byte array
|
||||
: using a System.ComponentModel.TypeConverter
|
||||
: and then encoded with base64 encoding.
|
||||
-->
|
||||
<xsd:schema id="root" xmlns="" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:msdata="urn:schemas-microsoft-com:xml-msdata">
|
||||
<xsd:import namespace="http://www.w3.org/XML/1998/namespace" />
|
||||
<xsd:element name="root" msdata:IsDataSet="true">
|
||||
<xsd:complexType>
|
||||
<xsd:choice maxOccurs="unbounded">
|
||||
<xsd:element name="metadata">
|
||||
<xsd:complexType>
|
||||
<xsd:sequence>
|
||||
<xsd:element name="value" type="xsd:string" minOccurs="0" />
|
||||
</xsd:sequence>
|
||||
<xsd:attribute name="name" use="required" type="xsd:string" />
|
||||
<xsd:attribute name="type" type="xsd:string" />
|
||||
<xsd:attribute name="mimetype" type="xsd:string" />
|
||||
<xsd:attribute ref="xml:space" />
|
||||
</xsd:complexType>
|
||||
</xsd:element>
|
||||
<xsd:element name="assembly">
|
||||
<xsd:complexType>
|
||||
<xsd:attribute name="alias" type="xsd:string" />
|
||||
<xsd:attribute name="name" type="xsd:string" />
|
||||
</xsd:complexType>
|
||||
</xsd:element>
|
||||
<xsd:element name="data">
|
||||
<xsd:complexType>
|
||||
<xsd:sequence>
|
||||
<xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" />
|
||||
<xsd:element name="comment" type="xsd:string" minOccurs="0" msdata:Ordinal="2" />
|
||||
</xsd:sequence>
|
||||
<xsd:attribute name="name" type="xsd:string" use="required" msdata:Ordinal="1" />
|
||||
<xsd:attribute name="type" type="xsd:string" msdata:Ordinal="3" />
|
||||
<xsd:attribute name="mimetype" type="xsd:string" msdata:Ordinal="4" />
|
||||
<xsd:attribute ref="xml:space" />
|
||||
</xsd:complexType>
|
||||
</xsd:element>
|
||||
<xsd:element name="resheader">
|
||||
<xsd:complexType>
|
||||
<xsd:sequence>
|
||||
<xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" />
|
||||
</xsd:sequence>
|
||||
<xsd:attribute name="name" type="xsd:string" use="required" />
|
||||
</xsd:complexType>
|
||||
</xsd:element>
|
||||
</xsd:choice>
|
||||
</xsd:complexType>
|
||||
</xsd:element>
|
||||
</xsd:schema>
|
||||
<resheader name="resmimetype">
|
||||
<value>text/microsoft-resx</value>
|
||||
</resheader>
|
||||
<resheader name="version">
|
||||
<value>2.0</value>
|
||||
</resheader>
|
||||
<resheader name="reader">
|
||||
<value>System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
|
||||
</resheader>
|
||||
<resheader name="writer">
|
||||
<value>System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
|
||||
</resheader>
|
||||
<assembly alias="System.Windows.Forms" name="System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" />
|
||||
<data name="DefaultConfigFile" type="System.Resources.ResXFileRef, System.Windows.Forms">
|
||||
<value>..\default.cfg;System.Byte[], mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
|
||||
</data>
|
||||
</root>
|
57
McDecryptor/default.cfg
Normal file
57
McDecryptor/default.cfg
Normal file
|
@ -0,0 +1,57 @@
|
|||
# The Pillager Bay's McDecryptor Configuration File
|
||||
|
||||
|
||||
# The path at which Minecraft keeps its resource packs and other data
|
||||
# May need to change if your using a different version of bedrock (eg education edition)
|
||||
# Otherwise this default is probably fine
|
||||
MinecraftFolder: $LOCALAPPDATA\Packages\Microsoft.MinecraftUWP_8wekyb3d8bbwe
|
||||
KeysDb: $EXECDIR\keys.db
|
||||
|
||||
# LocalState and LocalCache folders
|
||||
# These folders only exist in UWP Versions of Bedrock
|
||||
# On WIN32 versions it may be under "internalStorage"
|
||||
LocalState: $MCDIR\LocalState
|
||||
LocalCache: $MCDIR\LocalCache\McDecryptor
|
||||
|
||||
# Path to options.txt
|
||||
# needed to decrypt .ent files since beta 1.19.
|
||||
OptionsTxt: $LOCALSTATE\games\com.mojang\minecraftpe\options.txt
|
||||
|
||||
# Locations of Premium Cache (marketplace contents)
|
||||
# Server Pack Cache (server resource packs)
|
||||
# Realms Premium Cache (realms resource packs)
|
||||
PremiumCache: $LOCALSTATE\premium_cache
|
||||
ServerPackCache: $LOCALCACHE\packcache
|
||||
RealmsPremiumCache: $LOCALCACHE\premiumcache
|
||||
|
||||
# Should it crack the packs (change skin packs to free, remove prid from worlds)
|
||||
CrackThePacks: yes
|
||||
|
||||
# Should i zip packs to .mcpack/.mctemplate
|
||||
ZipThePacks: no
|
||||
|
||||
# Where to output the decrypted data, (deafult to install into the game)
|
||||
OutputFolder: $LOCALSTATE\games\com.mojang
|
||||
|
||||
# You can also add more search locations ontop of the default ones.
|
||||
# Do this by using AdditionalSearchDir and a path, it will look there
|
||||
# for packs.
|
||||
|
||||
# You can use AdditionalModuleDir to add new folders to look for encrypted data inside of the search folders
|
||||
# normally it'll just look inside say "resource_packs" "skin_packs" "persona" etc
|
||||
|
||||
#AdditionalSearchDir: C:\Some\Folder\With\ResourcePacks
|
||||
#AdditionalSearchDir: C:\Some\Other\Folder\With\ResourcePacks
|
||||
#AdditionalModuleDir: worlds
|
||||
|
||||
# All Macros
|
||||
# $LOCALAPPDATA - Local Application Data folder
|
||||
# $APPDATA - Roaming Application Data folder
|
||||
# $MCDIR - Minecraft Install Folder
|
||||
# $EXECDIR - Folder the program is running in
|
||||
# $LOCALSTATE - LocalState Folder
|
||||
# $LOCALCACHE - LocalCache Folder.
|
||||
# $PREMIUMCACHE - Premium Cache Folder
|
||||
# $SERVERPACKCACHE - Server Pack Cache Folder
|
||||
# $REALMSPREMIUMCACHE - Realms Pack Cache Folder
|
||||
# $OUTFOLDER - Output folder
|
BIN
McDecryptor/illager.ico
Normal file
BIN
McDecryptor/illager.ico
Normal file
Binary file not shown.
After Width: | Height: | Size: 4.2 KiB |
Loading…
Add table
Add a link
Reference in a new issue