Exemplo n.º 1
0
        public void FindConstants(string exeFileName)
        {
            var exeData = File.ReadAllBytes(exeFileName);

            GTA5Constants.Generate(exeData);
            GTA5Constants.SaveToPath(".");
        }
Exemplo n.º 2
0
        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()
                                                     ));
        }
Exemplo n.º 3
0
        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(".");
        }
Exemplo n.º 4
0
        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);
        }
Exemplo n.º 5
0
 private void ExtractKeysIntoDirectory(string executableFile, string keyPath)
 {
     GTA5Constants.Generate(File.ReadAllBytes(executableFile));
     GTA5Constants.SaveToPath(keyPath);
 }