mirror of
https://mirror.ghproxy.com/https://github.com/dexyfex/CodeWalker
synced 2024-08-19 08:29:19 +08:00
Updated magic
This commit is contained in:
parent
28d66c0039
commit
6dcdaf4169
@ -64,6 +64,9 @@ namespace CodeWalker.GameFiles
|
|||||||
public static byte[] PC_LUT; // 256
|
public static byte[] PC_LUT; // 256
|
||||||
|
|
||||||
|
|
||||||
|
public static byte[] PC_AWC_KEY; // 16
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
public static void Generate(byte[] exeData, Action<string> updateStatus) //Stream exeStr)//
|
public static void Generate(byte[] exeData, Action<string> updateStatus) //Stream exeStr)//
|
||||||
{
|
{
|
||||||
@ -193,18 +196,18 @@ namespace CodeWalker.GameFiles
|
|||||||
|
|
||||||
private static void GenerateMagicData(string path = ".\\Keys")
|
private static void GenerateMagicData(string path = ".\\Keys")
|
||||||
{
|
{
|
||||||
//byte[] b1 = File.ReadAllBytes(path + "\\gtav_aes_key.dat");
|
byte[] b1 = File.ReadAllBytes(path + "\\gtav_ng_key.dat");
|
||||||
byte[] b2 = File.ReadAllBytes(path + "\\gtav_ng_key.dat");
|
byte[] b2 = File.ReadAllBytes(path + "\\gtav_ng_decrypt_tables.dat");
|
||||||
byte[] b3 = File.ReadAllBytes(path + "\\gtav_ng_decrypt_tables.dat");
|
byte[] b3 = File.ReadAllBytes(path + "\\gtav_hash_lut.dat");
|
||||||
byte[] b4 = File.ReadAllBytes(path + "\\gtav_hash_lut.dat");
|
byte[] b4 = File.ReadAllBytes(path + "\\gtav_awc_key.dat");
|
||||||
|
|
||||||
int bl = b2.Length + b3.Length + b4.Length; //b1.Length +
|
int bl = b1.Length + b2.Length + b3.Length + b4.Length;
|
||||||
byte[] b = new byte[bl];
|
byte[] b = new byte[bl];
|
||||||
int bp = 0;
|
int bp = 0;
|
||||||
//Buffer.BlockCopy(b1, 0, b, bp, b1.Length); bp += b1.Length; // 32
|
Buffer.BlockCopy(b1, 0, b, bp, b1.Length); bp += b1.Length; // 27472
|
||||||
Buffer.BlockCopy(b2, 0, b, bp, b2.Length); bp += b2.Length; // 27472
|
Buffer.BlockCopy(b2, 0, b, bp, b2.Length); bp += b2.Length; // 278528
|
||||||
Buffer.BlockCopy(b3, 0, b, bp, b3.Length); bp += b3.Length; // 278528
|
Buffer.BlockCopy(b3, 0, b, bp, b3.Length); bp += b3.Length; // 256
|
||||||
Buffer.BlockCopy(b4, 0, b, bp, b4.Length); bp += b4.Length; // 256
|
Buffer.BlockCopy(b4, 0, b, bp, b4.Length); bp += b4.Length; // 16
|
||||||
|
|
||||||
byte[] db = null;
|
byte[] db = null;
|
||||||
using (MemoryStream dms = new MemoryStream())
|
using (MemoryStream dms = new MemoryStream())
|
||||||
@ -225,7 +228,6 @@ namespace CodeWalker.GameFiles
|
|||||||
db = GTACrypto.EncryptAESData(db, PC_AES_KEY);
|
db = GTACrypto.EncryptAESData(db, PC_AES_KEY);
|
||||||
|
|
||||||
|
|
||||||
//Random rnd = new Random((int)JenkHash.GenHash("Super secret seed"));
|
|
||||||
Random rnd = new Random((int)JenkHash.GenHash(PC_AES_KEY));
|
Random rnd = new Random((int)JenkHash.GenHash(PC_AES_KEY));
|
||||||
int dbl = db.Length;
|
int dbl = db.Length;
|
||||||
byte[] rb1 = new byte[dbl];
|
byte[] rb1 = new byte[dbl];
|
||||||
@ -261,7 +263,6 @@ namespace CodeWalker.GameFiles
|
|||||||
//GenerateMagicData();
|
//GenerateMagicData();
|
||||||
|
|
||||||
|
|
||||||
//Random rnd = new Random((int)JenkHash.GenHash("Super secret seed"));
|
|
||||||
Random rnd = new Random((int)JenkHash.GenHash(PC_AES_KEY));
|
Random rnd = new Random((int)JenkHash.GenHash(PC_AES_KEY));
|
||||||
byte[] m = Resources.magic;
|
byte[] m = Resources.magic;
|
||||||
int dbl = m.Length;
|
int dbl = m.Length;
|
||||||
@ -298,20 +299,20 @@ namespace CodeWalker.GameFiles
|
|||||||
throw new Exception("Error inflating magic data.");
|
throw new Exception("Error inflating magic data.");
|
||||||
}
|
}
|
||||||
|
|
||||||
//byte[] b1 = new byte[32];
|
byte[] b1 = new byte[27472];
|
||||||
byte[] b2 = new byte[27472];
|
byte[] b2 = new byte[278528];
|
||||||
byte[] b3 = new byte[278528];
|
byte[] b3 = new byte[256];
|
||||||
byte[] b4 = new byte[256];
|
byte[] b4 = new byte[16];
|
||||||
int bp = 0;
|
int bp = 0;
|
||||||
//Buffer.BlockCopy(b, bp, b1, 0, b1.Length); bp += b1.Length; // 32
|
Buffer.BlockCopy(b, bp, b1, 0, b1.Length); bp += b1.Length; // 27472
|
||||||
Buffer.BlockCopy(b, bp, b2, 0, b2.Length); bp += b2.Length; // 27472
|
Buffer.BlockCopy(b, bp, b2, 0, b2.Length); bp += b2.Length; // 278528
|
||||||
Buffer.BlockCopy(b, bp, b3, 0, b3.Length); bp += b3.Length; // 278528
|
Buffer.BlockCopy(b, bp, b3, 0, b3.Length); bp += b3.Length; // 256
|
||||||
Buffer.BlockCopy(b, bp, b4, 0, b4.Length); bp += b4.Length; // 256
|
Buffer.BlockCopy(b, bp, b4, 0, b4.Length); bp += b4.Length; // 16
|
||||||
|
|
||||||
//PC_AES_KEY = b1;
|
PC_NG_KEYS = CryptoIO.ReadNgKeys(b1);
|
||||||
PC_NG_KEYS = CryptoIO.ReadNgKeys(b2);
|
PC_NG_DECRYPT_TABLES = CryptoIO.ReadNgTables(b2);
|
||||||
PC_NG_DECRYPT_TABLES = CryptoIO.ReadNgTables(b3);
|
PC_LUT = b3;
|
||||||
PC_LUT = b4;
|
PC_AWC_KEY = b4;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
Binary file not shown.
Loading…
Reference in New Issue
Block a user