public void FindConstants(string exeFileName) { var exeData = File.ReadAllBytes(exeFileName); GTA5Constants.Generate(exeData); GTA5Constants.SaveToPath("."); }
private void LoadGameState(string gameDir) { GTA5Constants.LoadFromPath(@"S:\five\tdt"); var localDir = new FSDataEntry(gameDir); m_root.AddEntry("local", localDir); m_root.AddEntry(new ConcatDirectoryEntry("common", new[] { localDir.GetDirectoryEntry("common.rpf"), localDir.GetDirectoryEntry("update") .GetDirectoryEntry("update.rpf") .GetDirectoryEntry("common") } )); m_root.AddEntry(new ConcatDirectoryEntry("platform", localDir.GetEntries() .Where(a => a.Name.StartsWith("x64") && a is IGameDataDirectoryEntry) .Cast <IGameDataDirectoryEntry>() .Append(localDir .GetDirectoryEntry("update") .GetDirectoryEntry("x64")) .Append(localDir .GetDirectoryEntry("update") .GetDirectoryEntry("update.rpf") .GetDirectoryEntry("x64")) .Reverse() )); }
public MainModel() { //if (File.Exists("gta5_const.dat")) //{ // var fs = new FileStream("gta5_const.dat", FileMode.Open); // var bf = new BinaryFormatter(); // GTA5Constants.PC_AES_KEY = (byte[])bf.Deserialize(fs); // GTA5Constants.PC_NG_KEYS = (byte[][])bf.Deserialize(fs); // GTA5Constants.PC_NG_DECRYPT_TABLES = (byte[][])bf.Deserialize(fs); // GTA5Constants.PC_LUT = (byte[])bf.Deserialize(fs); // fs.Close(); //} GTA5Constants.LoadFromPath("."); }
static void Main(string[] args) { GTA5Constants.LoadFromPath("."); string GTAVDir = args[0]; HashEmbeddedStrings(); SaveMetaNames(); var sbe = new StringBuilder(); var sbs = new StringBuilder(); var sbei = new StringBuilder(); var sbsi = new StringBuilder(); var sbmt = new StringBuilder(); var sbsei = new StringBuilder(); var sbsci = new StringBuilder(); sbe.AppendLine("\t// Enums\n"); sbs.AppendLine("\t// Structures\n"); Console.CancelKeyPress += new ConsoleCancelEventHandler((s, e) => { Console.Error.WriteLine("Generating structure and enum infos for gathered data"); GenerateStructureData(sbs, sbsi); GenerateEnumData(sbei); GenerateStructureEnumInfos(sbsei); var _data = CompileData(sbmt, sbei, sbsi, sbe, sbs, sbsei, sbsci); File.WriteAllText("MetaTypes.cs", _data); Environment.Exit(0); }); ArchiveUtilities.ForEachFile(GTAVDir, (fullName, file, encryption) => { if (/*file.Name.EndsWith(".ymap") || file.Name.EndsWith(".ytyp") || */ file.Name.EndsWith(".ymt") && Regex.Match(file.Name, @"mp_m_freemode_01.*\.ymt").Success) { using (MemoryStream ms = new MemoryStream()) { file.Export(ms); try { var res = new ResourceFile_GTA5_pc <MetaFile>(); res.Load(ms); var meta = res.ResourceData; GetEnums(meta, Enums, sbe); GetStructures(meta, Structures); } catch (Exception e) { } } } if (/*file.Name.EndsWith(".ymap") || file.Name.EndsWith(".ytyp") || */ file.Name.EndsWith(".ymt")) { using (MemoryStream ms = new MemoryStream()) { file.Export(ms); try { var res = new ResourceFile_GTA5_pc <MetaFile>(); res.Load(ms); var meta = res.ResourceData; GetEnums(meta, Enums, sbe); GetStructures(meta, Structures); } catch (Exception e) { } } } }); Console.Error.WriteLine("Generating structure and enum infos for gathered data"); GenerateStructureData(sbs, sbsi); GenerateEnumData(sbei); GenerateStructureEnumInfos(sbsei); var data = CompileData(sbmt, sbei, sbsi, sbe, sbs, sbsei, sbsci); File.WriteAllText("MetaTypes.cs", data); }
private void ExtractKeysIntoDirectory(string executableFile, string keyPath) { GTA5Constants.Generate(File.ReadAllBytes(executableFile)); GTA5Constants.SaveToPath(keyPath); }