Created
April 19, 2021 20:15
-
-
Save khang06/bc9b20f2d813be8586a1d78917be5ca8 to your computer and use it in GitHub Desktop.
MIDI decryption algorithm for Magic Tiles 3
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
using System.IO; | |
using System.Security.Cryptography; | |
using System.Text; | |
namespace mt3decrypt | |
{ | |
class Program | |
{ | |
static readonly string MIDIKey = "$jshHgdn123&Am@n0te3+x"; | |
static void Main(string[] args) | |
{ | |
var key = Encoding.UTF8.GetBytes(MIDIKey); | |
var sha256 = SHA256.Create(); | |
var key_hash = sha256.ComputeHash(key); | |
var salt = new byte[] { 1, 2, 3, 4, 5, 6, 7, 8 }; | |
var derive = new Rfc2898DeriveBytes(key_hash, salt, 1000); | |
var aes = new RijndaelManaged(); | |
aes.KeySize = 256; | |
aes.BlockSize = 128; | |
aes.Key = derive.GetBytes(32); | |
aes.IV = derive.GetBytes(16); | |
aes.Mode = CipherMode.CBC; | |
var dec = aes.CreateDecryptor(); | |
var input = File.ReadAllBytes("D:\\Someoneleaving.mid.encrypted"); | |
var output = new byte[input.Length]; | |
using (MemoryStream ms = new MemoryStream(input)) | |
{ | |
using (CryptoStream cs = new CryptoStream(ms, dec, CryptoStreamMode.Read)) | |
{ | |
cs.Read(output); | |
} | |
} | |
File.WriteAllBytes("D:\\Someoneleaving.mid", output); | |
} | |
} | |
} |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment