private void buttonOpen_Click(object sender, EventArgs e) { if (openPS4DMP.ShowDialog() == DialogResult.OK) { textOpen.Text = openPS4DMP.FileName; directoryName = Path.GetDirectoryName(textOpen.Text); if (PS4Nor.CheckHeader(textOpen.Text) == true) { if (PS4Nor.CheckSize(textOpen.Text) == true) { checkBox1.Enabled = true; checkBox2.Enabled = true; } else { MessageBox.Show("PS4 Dump is corrupted"); } } else { MessageBox.Show("Invalid file"); } } }
private void buttonExtractNow_Click(object sender, EventArgs e) { // Final Process for PS4 NOR Dump Extraction if (textOpen.Text != "Select PS4 NOR Dump 2 Extract...") { NORExtract: if (textSave.Text != "Select the Folder 2 save files in...") { if (!Directory.Exists(textSave.Text + @"\flash_extracted\") == true) { Directory.CreateDirectory(textSave.Text + @"\flash_extracted\"); if (!Directory.Exists(textSave.Text + @"\flash_extracted\") == true) { MessageBox.Show("Can't create the Folder!"); } else { flag = 3; } } else if (checkFolder.Checked == true) { if (Directory.Exists(textSave.Text + @"\flash_extracted\")) { Directory.Delete(textSave.Text + @"\flash_extracted\", true); if (Directory.Exists(textSave.Text + @"\flash_extracted\") == true) { MessageBox.Show("Sorry something went wrong, I can't delete the old Folder!\nPlease Move/Delete the Folder on your own."); } else { Directory.CreateDirectory(textSave.Text + @"\flash_extracted\"); if (!Directory.Exists(textSave.Text + @"\flash_extracted\") == true) { MessageBox.Show("Can't create the Folder!"); } else { flag = 3; } } } } else { MessageBox.Show("Folder allready exists!\nMove/Delete your files or Activate the Folder Override Chechbox."); } if (flag == 3) { int exception = 0; try { PS4Nor.ExtractDump(textOpen.Text, textSave.Text); } catch (Exception a) { MessageBox.Show(a.ToString()); exception = 1; } finally { if (exception != 1) { MessageBox.Show("NOR Dump Successfull Extracted !"); } } } } else { if (saveFolder.ShowDialog() == DialogResult.OK) { textSave.Text = saveFolder.SelectedPath; goto NORExtract; } } } // Final Process for PS4 SLB2 Extraction if (textOSLB2.Text != "Select PS4 SLB2 Container 2 Extract...") { SLB2Extract: if (textSSLB2.Text != "Select the Folder 2 save files in...") { if (!Directory.Exists(textSSLB2.Text + @"\slb2_extracted\") == true) { Directory.CreateDirectory(textSSLB2.Text + @"\slb2_extracted\"); if (!Directory.Exists(textSSLB2.Text + @"\slb2_extracted\") == true) { MessageBox.Show("Can't create the Folder!"); } else { flag = 4; } } else if (checkOFSLB2.Checked == true) { if (Directory.Exists(textSSLB2.Text + @"\slb2_extracted\")) { Directory.Delete(textSSLB2.Text + @"\slb2_extracted\", true); if (Directory.Exists(textSSLB2.Text + @"\slb2_extracted\") == true) { MessageBox.Show("Sorry something went wrong, I can't delete the old Folder!\nPlease Move/Delete the Folder on your own."); } else { Directory.CreateDirectory(textSSLB2.Text + @"\slb2_extracted\"); if (!Directory.Exists(textSSLB2.Text + @"\slb2_extracted\") == true) { MessageBox.Show("Can't create the Folder!"); } else { flag = 4; } } } } else { MessageBox.Show("Folder allready exists!\nMove/Delete your files or Activate the Folder Override Chechbox."); } if (flag == 4) { int exception = 0; try { SLB2.Extract(textOSLB2.Text, textSSLB2.Text + @"\slb2_extracted\"); } catch (Exception a) { MessageBox.Show(a.ToString()); exception = 1; } finally { if (exception != 1) { MessageBox.Show("SLB2 Container Successfull Extracted !"); } } } } else { if (saveFolder.ShowDialog() == DialogResult.OK) { textSSLB2.Text = saveFolder.SelectedPath; goto SLB2Extract; } } } flag = 0; }
private void CheckDumpPS4(string str) { int s = 0; int r = 0; string bufferString = ""; ASCIIEncoding encode = new ASCIIEncoding(); PS4Nor.CheckDumpFull(textOpen.Text); #region CheckingCID //Checking MAC Address and Display it in the GUI bufferA = PS4Nor.GetMAC(textOpen.Text); if (bufferA != null && bufferA != PS4Nor.ffMAC) { s++; textMAC.Text = BitConverter.ToString(bufferA).Replace("-", ":"); Logger.WriteLine(l, "Console MAC Address is: " + textMAC.Text); } else { r++; Logger.WriteLine(l, "Console MAC Address is only Null or FF Bytes!"); } bufferA = null; // Checking Console Serial and Display it in the GUI bufferA = PS4Nor.GetCID(textOpen.Text); if (bufferA != null && bufferA != PS4Nor.ffCSerial) { s++; bufferString = encode.GetString(bufferA); textCID.Text = bufferString.Insert(10, "-"); Logger.WriteLine(l, "Console Serial is:" + textCID.Text); } else { r++; Logger.WriteLine(l, "Console Serial is only Null or FF Bytes!"); } bufferA = null; // Checking SKU Version and Display it in the GUI bufferA = PS4Nor.GetSKU(textOpen.Text); if (bufferA != null && bufferA != PS4Nor.ffSKU) { s++; textSKU.Text = encode.GetString(bufferA); Logger.WriteLine(l, "Console SKU Version is: " + textSKU.Text); } else { r++; Logger.WriteLine(l, "Console SKU Version is only Null or FF Bytes!"); } bufferA = null; // Checking FirmWare Version and Display it in the GUI bufferA = PS4Nor.GetFWV(textOpen.Text); if (bufferA != null && bufferA != PS4Nor.ffMAC) { s++; bufferString = BitConverter.ToString(bufferA).Replace("-", ""); textFWV.Text = bufferString.Insert(2, ".").Replace("01.", "1.").Replace("02.", "2.").Replace("03.", "3.").Replace("04.", "4.").Replace("05.", "5.").Replace("06.", "6.").Replace("07.", "7.").Replace("08.", "8.").Replace("09.", "9.").Insert(4, "."); Logger.WriteLine(l, "Console FirmWare Version is: " + textFWV.Text); } else { r++; Logger.WriteLine(l, "Console FirmWare Version is only Null or FF Bytes!"); } bufferA = null; #endregion CheckingCID Logger.WriteLine(l, "Result: " + s.ToString() + " of 31 Checks Passed!!\nErrors: " + r.ToString() + " where Detected!!"); }
private void buttonOpen_Click(object sender, EventArgs e) { if (openPS4DMP.ShowDialog() == DialogResult.OK) { textOpen.Text = openPS4DMP.FileName; if (PS4Nor.CheckHeader(textOpen.Text) == true) { if (PS4Nor.CheckSize(textOpen.Text) == true) { SHA1 sha = new SHA1CryptoServiceProvider(); ASCIIEncoding encode = new ASCIIEncoding(); bufferB = new byte[20]; Tool.readBuffer = null; Tool.ReadWriteData(textOpen.Text, null, "r"); bufferB = sha.ComputeHash(Tool.readBuffer); textSHA1.Text = BitConverter.ToString(bufferB).Replace("-", ""); #region GetCID //Checking MAC Address and Display it in the GUI bufferA = PS4Nor.GetMAC(textOpen.Text); if (bufferA != null && bufferA != PS4Nor.ffMAC) { textMAC.Text = BitConverter.ToString(bufferA).Replace("-", ":"); Logger.WriteLine(l, "Console MAC Address is: " + textMAC.Text); } else { Logger.WriteLine(l, "Console MAC Address is only Null or FF Bytes!"); } bufferA = null; // Checking Console Serial and Display it in the GUI bufferA = PS4Nor.GetCID(textOpen.Text); if (bufferA != null && bufferA != PS4Nor.ffCSerial) { bufferString = encode.GetString(bufferA); textCID.Text = bufferString.Insert(10, "-"); Logger.WriteLine(l, "Console Serial is:" + textCID.Text); } else { Logger.WriteLine(l, "Console Serial is only Null or FF Bytes!"); } bufferA = null; // Checking SKU Version and Display it in the GUI bufferA = PS4Nor.GetSKU(textOpen.Text); if (bufferA != null && bufferA != PS4Nor.ffSKU) { textSKU.Text = encode.GetString(bufferA); Logger.WriteLine(l, "Console SKU Version is: " + textSKU.Text); } else { Logger.WriteLine(l, "Console SKU Version is only Null or FF Bytes!"); } bufferA = null; // Checking FirmWare Version and Display it in the GUI bufferA = PS4Nor.GetFWV(textOpen.Text); if (bufferA != null && bufferA != PS4Nor.ffMAC) { bufferString = BitConverter.ToString(bufferA).Replace("-", ""); textFWV.Text = bufferString.Insert(2, ".").Replace("01.", "1.").Replace("02.", "2.").Replace("03.", "3.").Replace("04.", "4.").Replace("05.", "5.").Replace("06.", "6.").Replace("07.", "7.").Replace("08.", "8.").Replace("09.", "9.").Insert(4, "."); Logger.WriteLine(l, "Console FirmWare Version is: " + textFWV.Text); } else { Logger.WriteLine(l, "Console FirmWare Version is only Null or FF Bytes!"); } bufferA = null; #endregion CheckingCID buttonExtractNow.Enabled = true; } else { MessageBox.Show("PS4 NOR Dump is corrupted\nSize miss match\n\n"); Logger.WriteLine(l, "PS4 NOR Dump is corrupted\nSize miss match\n\n"); textOpen.Text = "Select PS4 NOR Dump 2 Extract..."; } } else { MessageBox.Show("This is NOT a valide PS4 NOR Dump file\nHeader miss match\n\n"); Logger.WriteLine(l, "This is NOT a valide PS4 NOR Dump file\nHeader miss match\n\n"); textOpen.Text = "Select PS4 NOR Dump 2 Extract..."; } } }
private void buttonExtractNow_Click(object sender, EventArgs e) { string path = Environment.CurrentDirectory; filename = Path.GetFileNameWithoutExtension(textOpen.Text); if (checkBox1.Checked) { if (!Directory.Exists(path + @"\flash_extracted\") == true) { Directory.CreateDirectory(path + @"\flash_extracted\"); flag = 3; } if (flag == 3) { int exception = 0; try { PS4Nor.ExtractDump(textOpen.Text, path); } catch (Exception a) { MessageBox.Show(a.ToString()); exception = 1; } finally { if (exception != 1) { if (Directory.Exists(path + "\\" + filename + "_extracted\\")) { Directory.Delete(path + "\\" + filename + "_extracted\\", true); } System.IO.Directory.Move(path + @"\flash_extracted\", path + "\\" + filename + "_extracted\\"); MessageBox.Show("Extraction done", "Info"); System.Diagnostics.Process.Start("explorer.exe", path + "\\" + filename + "_extracted\\"); } } } } else if (checkBox2.Checked) { string dir = path + "\\" + filename + "_sflash0"; if (!Directory.Exists(path + "\\" + filename + "_sflash0")) { Directory.CreateDirectory(dir); } //Header bufferB = sflash0.GetHeader(textOpen.Text); File.WriteAllBytes("Header.bin", bufferB); if (File.Exists(dir + "\\Header.bin")) { File.Delete(dir + "\\Header.bin"); } File.Move("Header.bin", dir + "\\Header.bin"); //Unk bufferB = sflash0.GetUnk(textOpen.Text); File.WriteAllBytes("Unk.bin", bufferB); if (File.Exists(dir + "\\Unk.bin")) { File.Delete(dir + "\\Unk.bin"); } File.Move("Unk.bin", dir + "\\Unk.bin"); //MBR1 bufferB = sflash0.GetMBR1(textOpen.Text); File.WriteAllBytes("MBR1.bin", bufferB); if (File.Exists(dir + "\\MBR1.bin")) { File.Delete(dir + "\\MBR1.bin"); } File.Move("MBR1.bin", dir + "\\MBR1.bin"); //MBR2 bufferB = sflash0.GetMBR2(textOpen.Text); File.WriteAllBytes("MBR2.bin", bufferB); if (File.Exists(dir + "\\MBR2.bin")) { File.Delete(dir + "\\MBR2.bin"); } File.Move("MBR2.bin", dir + "\\MBR2.bin"); //sflash0s0x32b bufferB = sflash0.Getsflash0s0x32b(textOpen.Text); File.WriteAllBytes("sflash0s0x32b.bin", bufferB); if (File.Exists(dir + "\\sflash0s0x32b.bin")) { File.Delete(dir + "\\sflash0s0x32b.bin"); } File.Move("sflash0s0x32b.bin", dir + "\\sflash0s0x32b.bin"); //sflash0s0x32 bufferB = sflash0.Getsflash0s0x32(textOpen.Text); File.WriteAllBytes("sflash0s0x32.bin", bufferB); if (File.Exists(dir + "\\sflash0s0x32.bin")) { File.Delete(dir + "\\sflash0s0x32.bin"); } File.Move("sflash0s0x32.bin", dir + "\\sflash0s0x32.bin"); //sflash0s0x33 bufferB = sflash0.Getsflash0s0x33(textOpen.Text); File.WriteAllBytes("sflash0s0x33.bin", bufferB); if (File.Exists(dir + "\\sflash0s0x33.bin")) { File.Delete(dir + "\\sflash0s0x33.bin"); } File.Move("sflash0s0x33.bin", dir + "\\sflash0s0x33.bin"); //sflash0s0x34 bufferB = sflash0.Getsflash0s0x34(textOpen.Text); File.WriteAllBytes("sflash0s0x34.bin", bufferB); if (File.Exists(dir + "\\sflash0s0x34.bin")) { File.Delete(dir + "\\sflash0s0x34.bin"); } File.Move("sflash0s0x34.bin", dir + "\\sflash0s0x34.bin"); //sflash0s0x38 bufferB = sflash0.Getsflash0s0x38(textOpen.Text); File.WriteAllBytes("sflash0s0x38.bin", bufferB); if (File.Exists(dir + "\\sflash0s0x38.bin")) { File.Delete(dir + "\\sflash0s0x38.bin"); } File.Move("sflash0s0x38.bin", dir + "\\sflash0s0x38.bin"); //sflash0s0x0 bufferB = sflash0.Getsflash0s0x0(textOpen.Text); File.WriteAllBytes("sflash0s0x0.bin", bufferB); if (File.Exists(dir + "\\sflash0s0x0.bin")) { File.Delete(dir + "\\sflash0s0x0.bin"); } File.Move("sflash0s0x0.bin", dir + "\\sflash0s0x0.bin"); //Header2 bufferB = sflash0.GetHeader2(textOpen.Text); File.WriteAllBytes("Header2.bin", bufferB); if (File.Exists(dir + "\\Header2.bin")) { File.Delete(dir + "\\Header2.bin"); } File.Move("Header2.bin", dir + "\\Header2.bin"); //Unk2 bufferB = sflash0.GetUnk2(textOpen.Text); File.WriteAllBytes("Unk2.bin", bufferB); if (File.Exists(dir + "\\Unk2.bin")) { File.Delete(dir + "\\Unk2.bin"); } File.Move("Unk2.bin", dir + "\\Unk2.bin"); //MBR3 bufferB = sflash0.GetMBR3(textOpen.Text); File.WriteAllBytes("MBR3.bin", bufferB); if (File.Exists(dir + "\\MBR3.bin")) { File.Delete(dir + "\\MBR3.bin"); } File.Move("MBR3.bin", dir + "\\MBR3.bin"); //MBR4 bufferB = sflash0.GetMBR4(textOpen.Text); File.WriteAllBytes("MBR4.bin", bufferB); if (File.Exists(dir + "\\MBR4.bin")) { File.Delete(dir + "\\MBR4.bin"); } File.Move("MBR4.bin", dir + "\\MBR4.bin"); //sflash0s1_cryptx2b bufferB = sflash0.Getsflash0s1_cryptx2b(textOpen.Text); File.WriteAllBytes("sflash0s1_cryptx2b.bin", bufferB); if (File.Exists(dir + "\\sflash0s1_cryptx2b.bin")) { File.Delete(dir + "\\sflash0s1_cryptx2b.bin"); } File.Move("sflash0s1_cryptx2b.bin", dir + "\\sflash0s1_cryptx2b.bin"); //sflash0s1_cryptx2 bufferB = sflash0.Getsflash0s1_cryptx2(textOpen.Text); File.WriteAllBytes("sflash0s1_cryptx2.bin", bufferB); if (File.Exists(dir + "\\sflash0s1_cryptx2.bin")) { File.Delete(dir + "\\sflash0s1_cryptx2.bin"); } File.Move("sflash0s1_cryptx2.bin", dir + "\\sflash0s1_cryptx2.bin"); //sflash0s1_cryptx1 bufferB = sflash0.Getsflash0s1_cryptx1(textOpen.Text); File.WriteAllBytes("sflash0s1_cryptx1.bin", bufferB); if (File.Exists(dir + "\\sflash0s1_cryptx1.bin")) { File.Delete(dir + "\\sflash0s1_cryptx1.bin"); } File.Move("sflash0s1_cryptx1.bin", dir + "\\sflash0s1_cryptx1.bin"); //sflash0s1_cryptx39 bufferB = sflash0.Getsflash0s1_cryptx39(textOpen.Text); File.WriteAllBytes("sflash0s1_cryptx39.bin", bufferB); if (File.Exists(dir + "\\sflash0s1_cryptx39.bin")) { File.Delete(dir + "\\sflash0s1_cryptx39.bin"); } File.Move("sflash0s1_cryptx39.bin", dir + "\\sflash0s1_cryptx39.bin"); //sflash0s1_cryptx6 bufferB = sflash0.Getsflash0s1_cryptx6(textOpen.Text); File.WriteAllBytes("sflash0s1_cryptx6.bin", bufferB); if (File.Exists(dir + "\\sflash0s1_cryptx6.bin")) { File.Delete(dir + "\\sflash0s1_cryptx6.bin"); } File.Move("sflash0s1_cryptx6.bin", dir + "\\sflash0s1_cryptx6.bin"); //sflash0s1_cryptx3b bufferB = sflash0.Getsflash0s1_cryptx3b(textOpen.Text); File.WriteAllBytes("sflash0s1_cryptx3b.bin", bufferB); if (File.Exists(dir + "\\sflash0s1_cryptx3b.bin")) { File.Delete(dir + "\\sflash0s1_cryptx3b.bin"); } File.Move("sflash0s1_cryptx3b.bin", dir + "\\sflash0s1_cryptx3b.bin"); //sflash0s1_cryptx3 bufferB = sflash0.Getsflash0s1_cryptx3(textOpen.Text); File.WriteAllBytes("sflash0s1_cryptx3.bin", bufferB); if (File.Exists(dir + "\\sflash0s1_cryptx3.bin")) { File.Delete(dir + "\\sflash0s1_cryptx3.bin"); } File.Move("sflash0s1_cryptx3.bin", dir + "\\sflash0s1_cryptx3.bin"); //sflash0s1_cryptx40 bufferB = sflash0.Getsflash0s1_cryptx40(textOpen.Text); File.WriteAllBytes("sflash0s1_cryptx40.bin", bufferB); if (File.Exists(dir + "\\sflash0s1_cryptx40.bin")) { File.Delete(dir + "\\sflash0s1_cryptx40.bin"); } File.Move("sflash0s1_cryptx40.bin", dir + "\\sflash0s1_cryptx40.bin"); MessageBox.Show("Extraction done", "Info"); System.Diagnostics.Process.Start("explorer.exe", dir); } }
private void CheckDumpPS4(string str) { s = 0; r = 0; if (str == "s") { bufferString = textSave.Text; } else if (str == "o") { bufferString = textOpen.Text; } ASCIIEncoding encode = new ASCIIEncoding(); PS4Nor.CheckDumpFull(bufferString); #region CheckingResult if (PS4Nor._sceBigMagic == true) { s++; console.WriteOutput("sceBigMagic is OK!\n", System.Drawing.Color.Yellow); Logger.WriteLine(l, "sceBigMagic is OK!"); } else { r++; console.WriteOutput("sceBigMagic is NOT OK!\n", System.Drawing.Color.Yellow); Logger.WriteLine(l, "sceBigMagic is NOT OK!"); } if (PS4Nor._sceSmallMagic1 == true) { s++; console.WriteOutput("sceSmallMagic1 is OK!\n", System.Drawing.Color.Yellow); Logger.WriteLine(l, "sceSmallMagic1 is OK!"); } else { r++; console.WriteOutput("sceSmallMagic1 is NOT OK!\n", System.Drawing.Color.Yellow); Logger.WriteLine(l, "sceSmallMagic1 is NOT OK!"); } if (PS4Nor._sceSmallMagic2 == true) { s++; console.WriteOutput("sceSmallMagic2 is OK!\n", System.Drawing.Color.Yellow); Logger.WriteLine(l, "sceSmallMagic2 is OK!"); } else { r++; console.WriteOutput("sceSmallMagic2 is NOT OK!\n", System.Drawing.Color.Yellow); Logger.WriteLine(l, "sceSmallMagic2 is NOT OK!"); } if (PS4Nor._dbcbMagic1 == true) { s++; console.WriteOutput("dbcbMagic1 is OK!\n", System.Drawing.Color.Yellow); Logger.WriteLine(l, "dbcbMagic1 is OK!"); } else { r++; console.WriteOutput("dbcbMagic1 is NOT OK!\n", System.Drawing.Color.Yellow); Logger.WriteLine(l, "dbcbMagic1 is NOT OK!"); } if (PS4Nor._dbcbMagic2 == true) { s++; console.WriteOutput("dbcbMagic2 is OK!\n", System.Drawing.Color.Yellow); Logger.WriteLine(l, "dbcbMagic2 is OK!"); } else { r++; console.WriteOutput("dbcbMagic2 is NOT OK!\n", System.Drawing.Color.Yellow); Logger.WriteLine(l, "dbcbMagic2 is NOT OK!"); } if (PS4Nor._dbcbMagic3 == true) { s++; console.WriteOutput("dbcbMagic3 is OK!\n", System.Drawing.Color.Yellow); Logger.WriteLine(l, "dbcbMagic3 is OK!"); } else { r++; console.WriteOutput("dbcbMagic3 is NOT OK!\n", System.Drawing.Color.Yellow); Logger.WriteLine(l, "dbcbMagic3 is NOT OK!"); } if (PS4Nor._scevtrmMagic1 == true) { s++; console.WriteOutput("scevtrmMagic1 is OK!\n", System.Drawing.Color.Yellow); Logger.WriteLine(l, "scevtrmMagic1 is OK!"); } else { r++; console.WriteOutput("scevtrmMagic1 is NOT OK!\n", System.Drawing.Color.Yellow); Logger.WriteLine(l, "scevtrmMagic1 is NOT OK!"); } if (PS4Nor._scevtrmMagic2 == true) { s++; console.WriteOutput("scevtrmMagic2 is OK!\n", System.Drawing.Color.Yellow); Logger.WriteLine(l, "scevtrmMagic2 is OK!"); } else { r++; console.WriteOutput("scevtrmMagic2 is NOT OK!\n", System.Drawing.Color.Yellow); Logger.WriteLine(l, "scevtrmMagic2 is NOT OK!"); } if (PS4Nor._slb2Magic1 == true) { s++; console.WriteOutput("slb2Magic1 is OK!\n", System.Drawing.Color.Yellow); Logger.WriteLine(l, "slb2Magic1 is OK!"); } else { r++; console.WriteOutput("slb2Magic1 is NOT OK!\n", System.Drawing.Color.Yellow); Logger.WriteLine(l, "slb2Magic1 is NOT OK!"); } if (PS4Nor._slb2Magic2 == true) { s++; console.WriteOutput("slb2Magic2 is OK!\n", System.Drawing.Color.Yellow); Logger.WriteLine(l, "slb2Magic2 is OK!"); } else { r++; console.WriteOutput("slb2Magic2 is NOT OK!\n", System.Drawing.Color.Yellow); Logger.WriteLine(l, "slb2Magic2 is NOT OK!"); } if (PS4Nor._slb2Magic3 == true) { s++; console.WriteOutput("slb2Magic3 is OK!\n", System.Drawing.Color.Yellow); Logger.WriteLine(l, "slb2Magic3 is OK!"); } else { r++; console.WriteOutput("slb2Magic3 is NOT OK!\n", System.Drawing.Color.Yellow); Logger.WriteLine(l, "slb2Magic3 is NOT OK!"); } if (PS4Nor._slb2Magic4 == true) { s++; console.WriteOutput("slb2Magic4 is OK!\n", System.Drawing.Color.Yellow); Logger.WriteLine(l, "slb2Magic4 is OK!"); } else { r++; console.WriteOutput("slb2Magic4 is NOT OK!\n", System.Drawing.Color.Yellow); Logger.WriteLine(l, "slb2Magic4 is NOT OK!"); } if (PS4Nor._blobMagic1 == true) { s++; console.WriteOutput("1 512 byte long Hex-Blob with constant Offset in Unk File is OK!\n", System.Drawing.Color.Yellow); Logger.WriteLine(l, "1 512 byte long Hex-Blob with constant Offset in Unk File is OK!"); } else { r++; console.WriteOutput("1 512 byte long Hex-Blob with constant Offset in Unk File is NOT OK!\n", System.Drawing.Color.Yellow); Logger.WriteLine(l, "1 512 byte long Hex-Blob with constant Offset in Unk File is NOT OK!"); } if (PS4Nor._blobMagic2 == true) { s++; console.WriteOutput("2 512 byte long Hex-Blob with constant Offset in Unk File is OK!\n", System.Drawing.Color.Yellow); Logger.WriteLine(l, "2 512 byte long Hex-Blob with constant Offset in Unk File is OK!"); } else { r++; console.WriteOutput("2 512 byte long Hex-Blob with constant Offset in Unk File is NOT OK!\n", System.Drawing.Color.Yellow); Logger.WriteLine(l, "2 512 byte long Hex-Blob with constant Offset in Unk File is NOT OK!"); } if (PS4Nor._blobMagic3 == true) { s++; console.WriteOutput("3 512 byte long Hex-Blob with constant Offset in Unk File is OK!\n", System.Drawing.Color.Yellow); Logger.WriteLine(l, "3 512 byte long Hex-Blob with constant Offset in Unk File is OK!"); } else { r++; console.WriteOutput("3 512 byte long Hex-Blob with constant Offset in Unk File is NOT OK!\n", System.Drawing.Color.Yellow); Logger.WriteLine(l, "3 512 byte long Hex-Blob with constant Offset in Unk File is NOT OK!"); } if (PS4Nor._blobMagic4 == true) { s++; console.WriteOutput("4 512 byte long Hex-Blob with constant Offset in Unk File is OK!\n", System.Drawing.Color.Yellow); Logger.WriteLine(l, "4 512 byte long Hex-Blob with constant Offset in Unk File is OK!"); } else { r++; console.WriteOutput("4 512 byte long Hex-Blob with constant Offset in Unk File is NOT OK!\n", System.Drawing.Color.Yellow); Logger.WriteLine(l, "4 512 byte long Hex-Blob with constant Offset in Unk File is NOT OK!"); } if (PS4Nor._blobMagic5 == true) { s++; console.WriteOutput("5 304 byte long Hex-Blob with constant Offset in Unk File is OK!\n", System.Drawing.Color.Yellow); Logger.WriteLine(l, "5 304 byte long Hex-Blob with constant Offset in Unk File is OK!"); } else { r++; console.WriteOutput("5 304 byte long Hex-Blob with constant Offset in Unk File is NOT OK!\n", System.Drawing.Color.Yellow); Logger.WriteLine(l, "5 304 byte long Hex-Blob with constant Offset in Unk File is NOT OK!"); } if (PS4Nor._blobMagic6 == true) { s++; console.WriteOutput("6 224 byte long Hex-Blob with constant Offset in Unk File is OK!\n", System.Drawing.Color.Yellow); Logger.WriteLine(l, "6 224 byte long Hex-Blob with constant Offset in Unk File is OK!"); } else { r++; console.WriteOutput("6 224 byte long Hex-Blob with constant Offset in Unk File is NOT OK!\n", System.Drawing.Color.Yellow); Logger.WriteLine(l, "6 224 byte long Hex-Blob with constant Offset in Unk File is NOT OK!"); } if (PS4Nor._blobMagic7 == true) { s++; console.WriteOutput("7 352 byte long Hex-Blob with constant Offset in Unk File is OK!\n", System.Drawing.Color.Yellow); Logger.WriteLine(l, "7 352 byte long Hex-Blob with constant Offset in Unk File is OK!"); } else { r++; console.WriteOutput("7 352 byte long Hex-Blob with constant Offset in Unk File is NOT OK!\n", System.Drawing.Color.Yellow); Logger.WriteLine(l, "7 352 byte long Hex-Blob with constant Offset in Unk File is NOT OK!"); } if (PS4Nor._blobMagic8 == true) { s++; console.WriteOutput("8 64 byte long Hex-Blob with constant Offset in Unk File is OK!\n", System.Drawing.Color.Yellow); Logger.WriteLine(l, "8 64 byte long Hex-Blob with constant Offset in Unk File is OK!"); } else { r++; console.WriteOutput("8 64 byte long Hex-Blob with constant Offset in Unk File is NOT OK!\n", System.Drawing.Color.Yellow); Logger.WriteLine(l, "8 64 byte long Hex-Blob with constant Offset in Unk File is NOT OK!"); } if (PS4Nor._blobMagic9 == true) { s++; console.WriteOutput("2 32 byte long Hex-Blob of Console Specific Constant in SCEVTRM is OK!\n", System.Drawing.Color.Yellow); Logger.WriteLine(l, "2 32 byte long Hex-Blob of Console Specific Constant in SCEVTRM is OK!"); } else { r++; console.WriteOutput("2 32 byte long Hex-Blob of Console Specific Constant in SCEVTRM is NOT OK!\n", System.Drawing.Color.Yellow); Logger.WriteLine(l, "2 32 byte long Hex-Blob of Console Specific Constant in SCEVTRM is NOT OK!"); } if (PS4Nor._ccMagic1 == true) { s++; console.WriteOutput("1 50 byte long Console Constant Hex-Blob in SCEVTRM is OK!\n", System.Drawing.Color.Yellow); Logger.WriteLine(l, "1 50 byte long Console Constant Hex-Blob in SCEVTRM is OK!"); } else { r++; console.WriteOutput("1 50 byte long Console Constant Hex-Blob in SCEVTRM is NOT OK!\n", System.Drawing.Color.Yellow); Logger.WriteLine(l, "1 50 byte long Console Constant Hex-Blob in SCEVTRM is NOT OK!"); } if (PS4Nor._ccMagic2 == true) { s++; console.WriteOutput("2 48 byte long Console Constant Hex-Blob in Unk File is OK!\n", System.Drawing.Color.Yellow); Logger.WriteLine(l, "2 48 byte long Console Constant Hex-Blob in Unk File is OK!"); } else { r++; console.WriteOutput("2 48 byte long Console Constant Hex-Blob in Unk File is NOT OK!\n", System.Drawing.Color.Yellow); Logger.WriteLine(l, "2 48 byte long Console Constant Hex-Blob in Unk File is NOT OK!\n"); } if (PS4Nor._ccMagic3 == true) { s++; console.WriteOutput("3 9 byte long Console Constant Hex-Blob in Unk File is OK!\n", System.Drawing.Color.Yellow); Logger.WriteLine(l, "3 9 byte long Console Constant Hex-Blob in Unk File is OK!"); } else { r++; console.WriteOutput("3 9 byte long Console Constant Hex-Blob in Unk File is NOT OK!\n", System.Drawing.Color.Yellow); Logger.WriteLine(l, "3 9 byte long Console Constant Hex-Blob in Unk File is NOT OK!"); } if (PS4Nor._c01A == true) { s++; console.WriteOutput("1 32 byte long Hex-Blob of MediaCon FW Stage1 & Stage2 do Match between each Other!\n", System.Drawing.Color.Yellow); Logger.WriteLine(l, "1 32 byte long Hex-Blob of MediaCon FW Stage1 & Stage2 do Match between each Other!"); } else { r++; console.WriteOutput("1 32 byte long Hex-Blob of MediaCon FW Stage1 & Stage2 do NOT Match between each Other!\n", System.Drawing.Color.Yellow); Logger.WriteLine(l, "1 32 byte long Hex-Blob of MediaCon FW Stage1 & Stage2 do NOT Match between each Other!"); } if (PS4Nor._c01B == true) { s++; console.WriteOutput("2 32 byte long Hex-Blob of MediaCon FW Stage1 & Stage2 do Match between each Other!\n", System.Drawing.Color.Yellow); Logger.WriteLine(l, "2 32 byte long Hex-Blob of MediaCon FW Stage1 & Stage2 do Match between each Other!"); } else { r++; console.WriteOutput("2 32 byte long Hex-Blob of MediaCon FW Stage1 & Stage2 do NOT Match between each Other!\n", System.Drawing.Color.Yellow); Logger.WriteLine(l, "2 32 byte long Hex-Blob of MediaCon FW Stage1 & Stage2 do NOT Match between each Other!"); } if (PS4Nor._slb2NR3Checksum == true) { s++; console.WriteOutput("Checksum of the Third SLB2 in Flash Image is not Null or only FF bytes...does look Good!\n\n", System.Drawing.Color.Yellow); Logger.WriteLine(l, "Checksum of the Third SLB2 in Flash Image is not Null or only FF bytes...does look Good!"); } else { r++; console.WriteOutput("Checksum of the Third SLB2 in Flash Image is Null or only FF bytes...does NOT look Good!\n\n", System.Drawing.Color.Yellow); Logger.WriteLine(l, "Checksum of the Third SLB2 in Flash Image is Null or only FF bytes...does NOT look Good!"); } #endregion CheckingResult #region GetCID //Checking MAC Address and Display it in the GUI bufferA = PS4Nor.GetMAC(textOpen.Text); if (bufferA != null && bufferA != PS4Nor.ffMAC) { s++; textMAC.Text = BitConverter.ToString(bufferA).Replace("-", ":"); console.WriteOutput("Console MAC Address is: " + textMAC.Text + "\n", System.Drawing.Color.Yellow); Logger.WriteLine(l, "Console MAC Address is: " + textMAC.Text); } else { r++; console.WriteOutput("Console MAC Address is only Null or FF Bytes!\n", System.Drawing.Color.Yellow); Logger.WriteLine(l, "Console MAC Address is only Null or FF Bytes!"); } bufferA = null; // Checking Console Serial and Display it in the GUI bufferA = PS4Nor.GetCID(textOpen.Text); if (bufferA != null && bufferA != PS4Nor.ffCSerial) { s++; bufferString = encode.GetString(bufferA); textCID.Text = bufferString.Insert(10, "-"); console.WriteOutput("Console Serial is: " + textCID.Text + "\n", System.Drawing.Color.Yellow); Logger.WriteLine(l, "Console Serial is:" + textCID.Text); } else { r++; console.WriteOutput("Console Serial is only Null or FF Bytes!\n", System.Drawing.Color.Yellow); Logger.WriteLine(l, "Console Serial is only Null or FF Bytes!"); } bufferA = null; // Checking SKU Version and Display it in the GUI bufferA = PS4Nor.GetSKU(textOpen.Text); if (bufferA != null && bufferA != PS4Nor.ffSKU) { s++; textSKU.Text = encode.GetString(bufferA); console.WriteOutput("Console SKU Version is: " + textSKU.Text + "\n", System.Drawing.Color.Yellow); Logger.WriteLine(l, "Console SKU Version is: " + textSKU.Text); } else { r++; console.WriteOutput("Console SKU Version is only Null or FF Bytes!\n", System.Drawing.Color.Yellow); Logger.WriteLine(l, "Console SKU Version is only Null or FF Bytes!"); } bufferA = null; // Checking FirmWare Version and Display it in the GUI bufferA = PS4Nor.GetFWV(textOpen.Text); if (bufferA != null && bufferA != PS4Nor.ffMAC) { s++; bufferString = BitConverter.ToString(bufferA).Replace("-", ""); textFWV.Text = bufferString.Insert(2, ".").Replace("01.", "1.").Replace("02.", "2.").Replace("03.", "3.").Replace("04.", "4.").Replace("05.", "5.").Replace("06.", "6.").Replace("07.", "7.").Replace("08.", "8.").Replace("09.", "9.").Insert(4, "."); console.WriteOutput("Console FirmWare Version is: " + textFWV.Text + "\n\n", System.Drawing.Color.Yellow); Logger.WriteLine(l, "Console FirmWare Version is: " + textFWV.Text); } else { r++; console.WriteOutput("Console FirmWare Version is only Null or FF Bytes!\n\n", System.Drawing.Color.Yellow); Logger.WriteLine(l, "Console FirmWare Version is only Null or FF Bytes!"); } bufferA = null; #endregion CheckingCID Logger.WriteLine(l, "Result: " + s.ToString() + " of 31 Checks Passed!!\nErrors: " + r.ToString() + " where Detected!!"); console.WriteOutput("Result: " + s.ToString() + " of 31 Checks Passed\nErrors: " + r.ToString() + " where Detected!!\n\n", System.Drawing.Color.Yellow); if (r == 0 && str == "o" || r != 0 && str == "o" && File.Exists("developer.conf") == true) { Write.Enabled = true; WriteV.Enabled = true; buttonOL.Enabled = true; } else if (r == 0 && str == "s" || r != 0 && str == "s" && File.Exists("developer.conf") == true) { buttonOL.Enabled = true; } }