zouzzz Posté(e) 11 mai 2011 Share Posté(e) 11 mai 2011 Salut, Je voulais livrer mes sources de KV modder mais j'en ai honte tellement c'est le bordel... Mais voilà qui pourra peut-être en aider certain(e)s. //OFD1.FileName le fichier keyvault byte[] Hmac = new byte[16]; byte[] CpuKey = HexStringToByteArray(CPUkey.Text);// la CPU Key byte[] filemiddle = File.ReadAllBytes(OFD1.FileName); byte[] Rc4Key = new byte[16]; //création d'un byte array de 16 bytes PointDecryption(filemiddle); byte[] Hashpoint = new byte[0x10]; byte[] rc4Key = new byte[0x10]; Array.Copy(filemiddle, Hashpoint, 0x10); Array.Copy(filemiddle, 0x10, kvdec, 0, 0x3ff0); Array.Copy(HMAC_SHA1(CpuKey, Hashpoint), Rc4Key, 0x10); kvdec = Rc4(Rc4Key, kvdec); RC4key.Text = BytesToHex(Rc4Key); File.WriteAllBytes(Application.StartupPath + "\\kv2.bin", kvdec); // copie le tout en kv2.bin byte[] NewBuff = FichierVersTableauDeByte(Application.StartupPath + "\\kv2.bin"); // kv2.bin = Keyvault kvdec byte[] kvenc = new byte[0x4000]; byte[] filemiddle = new byte[0x3ff0]; byte[] hashbytes = new byte[0x10]; byte[] Rc4Key = new byte[0x10]; hashbytes = CalculateHash(); Array.Copy(HMAC_SHA1(CpuKey, hashbytes), Rc4Key, 0x10); filemiddle = Rc4(Rc4Key, NewBuff); RC4key.Text = BytesToHex(Rc4Key); Array.Copy(hashbytes, kvenc, 0x10); Array.Copy(filemiddle, 0, kvenc, 0x10, 0x3ff0); private byte[] Rc4(byte[] key, byte[] data) { byte temp; int i; int j; byte[] s = new byte[0x100]; byte[] output = new byte[data.Length]; Array.Copy(data, output, data.Length); for (i = 0; i < 0x100; i++) { s = (byte)i; } i = j = 0; for (i = 0; i < 0x100; i++) { j = ((j + key[i % key.Length]) + s) % 0x100; temp = s; s = s[j]; s[j] = temp; } i = j = 0; for (int x = 0; x < output.Length; x++) { i = (i + 1) % 0x100; j = (j + s) % 0x100; temp = s; s = s[j]; s[j] = temp; int t = (s + s[j]) % 0x100; output[x] = (byte)(output[x] ^ s[t]); } return output; } private byte[] HMAC_SHA1(byte[] key, byte[] data) { byte[] K = new byte[0x40]; byte[] opad = new byte[0x54]; byte[] ipad = new byte[data.Length + 0x40]; Array.Copy(key, K, 0x10); for (int i = 0; i < 0x40; i++) { opad = (byte)(K ^ 0x5c); ipad = (byte)(K ^ 0x36); } Array.Copy(data, 0, ipad, 0x40, data.Length); SHA1CryptoServiceProvider sha = new SHA1CryptoServiceProvider(); Array.Copy(sha.ComputeHash(ipad), 0, opad, 0x40, 20); return sha.ComputeHash(opad); } private bool PointDecryption(byte[] data) { return (data[data.Length - 1] == 0); } public byte[] FichierVersTableauDeByte(string CheminFichier) { System.IO.FileInfo MonFichier = new System.IO.FileInfo(CheminFichier); System.IO.FileStream MonFileStream = MonFichier.OpenRead(); byte[] TableauDeBytes = new byte[MonFileStream.Length]; MonFileStream.Read(TableauDeBytes, 0, (int)MonFileStream.Length); MonFileStream.Close(); return TableauDeBytes; public byte[] CalculateHash() { byte[] filemiddle = new byte[0x3ff2]; byte[] hashbytes = new byte[0x10]; Array.Copy(kvdec, filemiddle, 0x3ff0); filemiddle[0x3ff0] = 7; filemiddle[0x3ff1] = 0x12; Array.Copy(this.HMAC_SHA1(CpuKey, filemiddle), hashbytes, 0x10); return hashbytes; } } En espérant que ça soit clair car pour moi avec le temps ça devient du charabia... :/ Lien vers le commentaire Partager sur d'autres sites More sharing options...
SoulHeaven Posté(e) 11 mai 2011 Share Posté(e) 11 mai 2011 Merci monsieur. Me manquait 2 lignes dans mon code lol, et je viens de les trouver dans les tiennes opad[i] = (byte)(K[i] ^ 0x5c);ipad[i] = (byte)(K[i] ^ 0x36); Lien vers le commentaire Partager sur d'autres sites More sharing options...
zouzzz Posté(e) 11 mai 2011 Auteur Share Posté(e) 11 mai 2011 C'était un honneur. Lien vers le commentaire Partager sur d'autres sites More sharing options...
bugess Posté(e) 11 mai 2011 Share Posté(e) 11 mai 2011 merci pour le partage ,mais dommage que tu laches la 360 Lien vers le commentaire Partager sur d'autres sites More sharing options...
bouboul13 Posté(e) 12 mai 2011 Share Posté(e) 12 mai 2011 Merci à vous MR, je ne pense pas que je puisse m'en servir, mais le geste est top ! PS : soulheaven, un petit utilitaire en vue .... ? Lien vers le commentaire Partager sur d'autres sites More sharing options...
zouzzz Posté(e) 12 mai 2011 Auteur Share Posté(e) 12 mai 2011 Si d'autres veulent des sources de mes utilitaires qu'ils n'hésitent pas (ils pourront rester anonymes, pas de pb). Lien vers le commentaire Partager sur d'autres sites More sharing options...
bugess Posté(e) 12 mai 2011 Share Posté(e) 12 mai 2011 tu as un lien vers tes utilitaires ?? j'ai plus toutes tes realisations en tete et j'ai perdu pas mal de données lors de mon dernier crash de DD Lien vers le commentaire Partager sur d'autres sites More sharing options...
zouzzz Posté(e) 12 mai 2011 Auteur Share Posté(e) 12 mai 2011 Bah sur gx forum en sections dev 360 et dev PS3, il y a pas mal de mes dev. De tête, je ne peux te dire, je dois en avoir sorti plus d'une 30aine pour console... Dans le futur, j'aimerai bien me mettre sur WWE Allstar (sur 360 ou PS3) voir si on peut pas ajouter quelques répliques cultissimes de Christophe Agius. Mais c'est vraiment tout ce qui me botte pour le moment sur les Next gen. Lien vers le commentaire Partager sur d'autres sites More sharing options...
Messages recommandés
Créer un compte ou se connecter pour commenter
Vous devez être membre afin de pouvoir déposer un commentaire
Créer un compte
Créez un compte sur notre communauté. C’est facile !
Créer un nouveau compteSe connecter
Vous avez déjà un compte ? Connectez-vous ici.
Connectez-vous maintenant