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 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 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; } }