private void removeDuplicateTickets() { ObservableCollection <Title> newTitleList = new ObservableCollection <Title>(); foreach (Title tik in ticketlist) { string titleid = tik.TitleID, consoleid = tik.ConsoleID; if (!ConvertingTools.ByteArrayToString(ConvertingTools.copyOfRange(tik.data, 0x00, 0x04)).Contains("00010004")) { continue; } if (newTitleList.Count > 0) { foreach (Title tik2 in newTitleList) { string titleid2 = tik2.TitleID, consoleid2 = tik2.ConsoleID; if (titleid2.Equals(titleid) && consoleid2.Equals(consoleid)) { tik2.data = tik.data; goto outerloop; } } newTitleList.Add(tik); } else { newTitleList.Add(tik); } outerloop :; } ticketlist = newTitleList; }
public bool readTicketFile() { int tmp = 0, commonKeyIndex = 0; List <int> ticketOffsets = new List <int>(); while (tmp != -1) { tmp = ConvertingTools.IndexOf(fileData, TICKET_HEADER, tmp + 1); if (tmp != -1) { ticketOffsets.Add(tmp); } } if (ticketOffsets.Count == 0) { return(false); } foreach (int offs in ticketOffsets) { commonKeyIndex = fileData[offs + 0xB1]; if (fileData[offs + 0x7C] != 0x1) { continue; } if (commonKeyIndex > 5) { continue; } byte[] ticketData = ConvertingTools.copyOfRange(fileData, offs - 0x140, offs + 0x210); byte[] titleID = ConvertingTools.copyOfRange(ticketData, tk + 0x9C, tk + 0xA4); byte[] consoleID = ConvertingTools.copyOfRange(ticketData, tk + 0x98, tk + 0x9C); string titleid, consoleid; int cki = fileData[offs + 0xB1]; titleid = ConvertingTools.ByteArrayToString(titleID); consoleid = ConvertingTools.ByteArrayToString(consoleID); ticketlist.Add(new Title(ticketData, titleid, consoleid, cki)); } return(true); }
public void readEncTitleKeyFile() { long datalen = fileData.Length; byte[] titleid = new byte[0x8]; byte[] titlekey = new byte[0x16]; for (long i = 16; i < datalen; i += TICKETLEN) { Title title = new Title(); title.Name = ""; title.Region = ""; title.Serial = ""; Array.Copy(fileData, i + 8, titleid, 0, 8); Array.Copy(fileData, i + 16, titlekey, 0, 16); title.TitleID = ConvertingTools.ByteArrayToString(titleid); title.TitleKey = ConvertingTools.ByteArrayToString(titlekey); title.data = createTicketData(title.TitleID, title.TitleKey); titlelist.Add(title); } }