Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Payload sender always do kernel panic in 5.05 #54

Open
Pretinaverse opened this issue Nov 17, 2024 · 3 comments
Open

Payload sender always do kernel panic in 5.05 #54

Pretinaverse opened this issue Nov 17, 2024 · 3 comments

Comments

@Pretinaverse
Copy link

For some reason anytime i try to send ps4debug to the ps4 using the payload sender of ps4 cheater neo, the ps4 shutdown. I have to send the payload using others tools. I'm in firmware 5.05.

@avan06
Copy link
Owner

avan06 commented Dec 1, 2024

Hi Pretinaverse,

I'm not sure which version of the payload you're using. Personally, I recommend using the ps4debug created by ctn123. However, since I don't have a 5.05 device, I'm not certain about the cause of the kernel panic...

@Pretinaverse
Copy link
Author

Pretinaverse commented Dec 1, 2024

Yeah, i'm using ps4debug by ctn123. When i send the payload using his ps4cheater, eveything goes well. But with the sender in ps4cheater neo, every single time it gives me a kernel panic and the console shut down. But well, like i said, right now i'm sending the payload using ps4cheater and then i use ps4cheater neo without problem. Maybe you could compare both codes of the payload sender (ctn123 and yours) and see if there is something different causing the problem?

@avan06
Copy link
Owner

avan06 commented Dec 2, 2024

Below is the sender payload for ctn123's PS4Cheater.

private void send_pay_load(string IP, string payloadPath, int port)
{
    Socket socket = new Socket(AddressFamily.InterNetwork, SocketType.Stream, ProtocolType.Tcp);

    socket.Connect(new IPEndPoint(IPAddress.Parse(IP), port));
    socket.SendFile(payloadPath);
    socket.Close();
}
private void send_payload_btn_Click(object sender, EventArgs e)
{
    try
    {
        string patch_path = Application.StartupPath;
        switch (version_list.SelectedIndex)
        {
            case VERSION_LIST_702:
                patch_path += @"\payloads\7.02\";
                break;
            case VERSION_LIST_672:
                patch_path += @"\payloads\6.72\";
                break;
            case VERSION_LIST_505:
                patch_path += @"\payloads\5.05\";
                break;
            default:
                throw new System.ArgumentException("Unknown version.");
        }

        this.send_pay_load(this.ip_box.Text, patch_path + @"ps4debug.bin", Convert.ToInt32(this.port_box.Text));
        Thread.Sleep(1000);
        this.msg.ForeColor = Color.Green;
        this.msg.Text = "ps4debug.bin injected successfully!";
    }
    catch (Exception exception)
    {
        MessageBox.Show(exception.Message, exception.Source, MessageBoxButtons.OK, MessageBoxIcon.Hand);
    }
}

Below is the sender payload for my Neo.

private void SendPayLoad(string IP, int port, string payloadPath)
{
    Socket socket = new Socket(AddressFamily.InterNetwork, SocketType.Stream, ProtocolType.Tcp);

    socket.Connect(new IPEndPoint(IPAddress.Parse(IP), port));
    socket.SendFile(payloadPath);
    socket.Close();
}
private void SendPayloadBtn_Click(object sender, EventArgs e)
{
    try
    {
        string errorMsg = "";
        if ((VersionBox.Text ?? "") == "") errorMsg = "Unknown Version.";
        else if ((IpBox.Text ?? "") == "") errorMsg = "Unknown IP.";
        else if ((PortBox.Text ?? "") == "") errorMsg = "Unknown Port.";
        if (errorMsg.Length > 0)
        {
            ToolStripMsg.ForeColor = Color.Red;
            ToolStripMsg.Text = errorMsg;
            return;
        }

        string payloadsPath = string.Format(@"{0}\payloads\", Application.StartupPath);
        string patchPath = payloadsPath;
        string patchName = "ps5debug.elf";
        if (!File.Exists(patchPath + patchName))
        {
            patchName = ((PS4DebugLibType)PS4DBGTypeComboBox.SelectedItem).ToString() + ".bin"; // ps4debug.bin or Frame4.bin
            if (!File.Exists(patchPath + patchName)) patchPath = string.Format(@"{0}\payloads\{1}\", Application.StartupPath, VersionComboBox.SelectedItem);
            if (!File.Exists(patchPath + patchName)) throw new ArgumentException(string.Format("payload not found! ({0})\n" +
                "You must manually place the downloaded ps4debug.bin or ps5debug.elf or Frame4.bin in the folder \n\\Path\\to\\PS4CheaterNeo\\payloads\\", payloadsPath));
        }
        SendPayLoad(IpBox.Text, Convert.ToInt32(PortBox.Text), patchPath + patchName);
        Thread.Sleep(1000);

        ToolStripMsg.ForeColor = Color.Green;
        ToolStripMsg.Text = patchName + " injected successfully!";
    }
    catch (Exception ex)
    {
        ToolStripMsg.ForeColor = Color.Red;
        ToolStripMsg.Text = "SendPayloadBtn_Click Exception";
        InputBox.MsgBox("SendPayloadBtn_Click Exception", "", ex.Message, 100);
    }
}

You can see that the send payload content is identical. The difference lies in the btn click section, but this difference is only about identifying the corresponding PS4 version's patch path before calling the sender payload. There should be no other differences.

However, the source code released by ctn123 is only available up to the 2021 version. If there are differences, they would pertain to later versions (with built-in payloads), which I have no way to analyze because I cannot access them. Thank you.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

2 participants