public void setBlockCrypt(byte[] input, int index) { //Encrypt byte[] encrypt = new byte[getBlockLength(index)]; encrypt = PKX5.cryptoArray(input, blocks[index].crypto.start, blocks[index].crypto.length, blocks[index].crypto.seed); setBlock(encrypt, index); }
public DreamRadar() { // // The InitializeComponent() call is required for Windows Forms designer support. // InitializeComponent(); drkey = new DRKEY(MainForm.save.getBlock(drkeyblock)); dra = new DRA(MainForm.save.dslinkA_get()); drb = new DRB(PKX5.cryptoXor32Array(MainForm.save.dslinkB_get(), 0, 0x7C, 0x7C)); //Get 3DS link data decrypted if (dra.received == false) { MessageBox.Show("Warning! There's unreceived data in the savegame!"); dra.key = drb.EncKey ^ drkey.FLAGS; //This makes editing the data possible without messing up the current encryption } if (drb.illegal == true) { allmode.Checked = true; set_all_list(); } else { legitmode.Checked = true; set_legal_list(); } load_data(); // // TODO: Add constructor code after the InitializeComponent() call. // }
void Saveexit_butClick(object sender, EventArgs e) { set_data(); MainForm.save.setBlock(drkey.Data, 72); MainForm.save.dslinkA_set(dra.Data); MainForm.save.dslinkB_set(PKX5.cryptoXor32Array(drb.Data, 0, 0x7C, 0x7C)); this.Close(); }
void Clean_butClick(object sender, EventArgs e) //Right now this button is disabled as we know how to edit all the data { drkey.reinit(); dra.reinit(); drb.reinit(); MainForm.save.setBlock(drkey.Data, 72); MainForm.save.dslinkA_set(dra.Data); MainForm.save.dslinkB_set(PKX5.cryptoXor32Array(drb.Data, 0, 0x7C, 0x7C)); this.Close(); }
public byte[] getBlockDec(int index) { byte[] decrypt = new byte[getBlockLength(index)]; int blocksnum = 0; int backupoffset = 0; if (B2W2) { blocksnum = CrcTableBW2; backupoffset = SIZE2; } else if (BW) { blocksnum = CrcTableBW; backupoffset = SIZE1; } else { return(null); } if (index < blocksnum) { //MessageBox.Show(decrypt.Length.ToString()); //MessageBox.Show((blocks[index].Length-4).ToString()); decrypt = PKX5.cryptoArray(Data.Skip(blocks[index].Offset).Take(blocks[index + 1].Offset - blocks[index].Offset).ToArray(), blocks[index].crypto.start, blocks[index].crypto.length, blocks[index].crypto.seed); //MessageBox.Show((blocks[index].Length-4).ToString()); return(decrypt); } else if (index == 73) { return(Data.Skip(blocks[index].Offset).Take(backupoffset - blocks[index].Offset).ToArray()); } else { return(null); } }