AI prompts
base on A WPF-based PPPwn front-end # PPPwn Loader
[中文](README_CN.md)
Deprecated, check out the [PPPwn-Lite](https://github.com/PSGO/PPPwn-Lite) repository.
## Overview
A Windows front-end desktop program based on [PPPwn](https://github.com/TheOfficialFloW/PPPwn) that aims to reduce the environmental dependencies needed to run PPPwn, and implement one-click RCE in the simplest way possible.
## Technology
- NET Framework 4.7.2 based WPF application.
- Interface elements are implemented using [Panuon.WPF.UI](https://github.com/Panuon/Panuon.WPF.UI).
- `pppwn.exe` in the `PPPwn` folder uses a C++ rewrite of [PPPwn_cpp](https://github.com/xfangfang/PPPwn_cpp), `payload` in the `PPPwn` folder is used for testing the `PPPwn.exe` and `PPPwn.exe` in the `PPPwn` folder. The `stage1.bin` and `stage2.bin` files in the `payload` folder for testing are compiled from the [PPPwn](https://github.com/TheOfficialFloW/PPPwn) repository.
## Requirements
- A Windows computer (preferably Windows 10 x64 or above)
- A network cable
- A PS4 (system version 7.50 ~ 11.00)
## Usage
### First time exploit
1. Download the latest build of `PPPwn Loader` from [Release](https://github.com/PokersKun/PPPwn-Loader/releases).
2. Unzip the whole thing and run `PPPwn Loader.exe`, in the first drop down box select the Ethernet port you are connecting to the PS4 (I've tried connecting directly to the PS4 through a cable with better success).
3. Select your PS4's current system version in the second drop-down box (the supported versions in there will change as [PPPwn](https://github.com/TheOfficialFloW/PPPwn) is updated).
4. Click `Select Stage2 File...` to select the stage2.bin file you want to load, you can get the latest stage2.bin and goldhen.bin files from the [GoldHEN](https://github.com/GoldHEN/GoldHEN/releases) repository to use for injecting jailbreak functionality, or you can use the @LightningMods's [PPPwn](https://github.com/LightningMods/PPPwn/releases) branch to get stage2.bin files for various functions, and in addition to that you can try to use the `stage2.bin` file in the `stage2` folder for testing purposes to see if your PS4 can use the exploit.
5. [Optional] Place the Payload file to be loaded, e.g. `goldhen.bin` file, on an `exFAT/FAT32` formatted USB flash drive and insert it into your PS4 console.
6. The `READY` button on the screen should change to a `START` button, clicking on it at this point will prompt `[*] Waiting for PADI...`.
Translated with DeepL.com (free version)
7. Follow [PPPwn#usage](https://github.com/TheOfficialFloW/PPPwn?tab=readme-ov-file#usage) to open a PPPoE connection on your PS4:
- Go to `Settings` and then `Network`
- Select `Set Up Internet connection` and choose `Use a LAN Cable`
- Choose `Custom` setup and choose `PPPoE` for `IP Address Settings`
- Enter anything for `PPPoE User ID` and `PPPoE Password`
- Choose `Automatic` for `DNS Settings` and `MTU Settings`
- Choose `Do Not Use` for `Proxy Server`
- Click `Test Internet Connection` to communicate with your computer
8. At this point you can see a change in the `PPPwn Loader` GUI, it will start to run PPPwn, please be patient and wait for the result, if it shows "Done" at the end, it means that it was loaded successfully and you will see the result on your PS4.
9. Please keep in mind that the success rate of the current exploit is not 100%, if PPPwn fails, the PPPwn Loader will automatically restart PPPwn if `Auto Retry` is checked by default, you **don't** need to do anything but just wait for the PPPwn to finish automatically (in case of crashing, please follow the following [Second time exploit](### Second time exploit) to re-complete PPPwn).
### Second time exploit
**Note: If you have already successfully injected GoldHEN via PPPwn, you don't need to insert a USB flash drive**
1. When PS4 is not powered on, open the PPPwn Loader and click the `START` button.
2. Power on the PS4 and PPPwn will start automatically.
3. Wait for PPPwn to finish.
## Preview
![preview1](doc/preview1.png)
![preview2](doc/preview2.png)
![preview3](doc/preview3.png)
![preview4](doc/preview4.png)
![preview5](doc/preview5.png)
## Acknowledgments
[@TheOfficialFloW](https://github.com/TheOfficialFloW)
[@xfangfang](https://github.com/xfangfang)
[@Mochengvia](https://github.com/Mochengvia)", Assign "at most 3 tags" to the expected json: {"id":"10111","tags":[]} "only from the tags list I provide: [{"id":77,"name":"3d"},{"id":89,"name":"agent"},{"id":17,"name":"ai"},{"id":54,"name":"algorithm"},{"id":24,"name":"api"},{"id":44,"name":"authentication"},{"id":3,"name":"aws"},{"id":27,"name":"backend"},{"id":60,"name":"benchmark"},{"id":72,"name":"best-practices"},{"id":39,"name":"bitcoin"},{"id":37,"name":"blockchain"},{"id":1,"name":"blog"},{"id":45,"name":"bundler"},{"id":58,"name":"cache"},{"id":21,"name":"chat"},{"id":49,"name":"cicd"},{"id":4,"name":"cli"},{"id":64,"name":"cloud-native"},{"id":48,"name":"cms"},{"id":61,"name":"compiler"},{"id":68,"name":"containerization"},{"id":92,"name":"crm"},{"id":34,"name":"data"},{"id":47,"name":"database"},{"id":8,"name":"declarative-gui "},{"id":9,"name":"deploy-tool"},{"id":53,"name":"desktop-app"},{"id":6,"name":"dev-exp-lib"},{"id":59,"name":"dev-tool"},{"id":13,"name":"ecommerce"},{"id":26,"name":"editor"},{"id":66,"name":"emulator"},{"id":62,"name":"filesystem"},{"id":80,"name":"finance"},{"id":15,"name":"firmware"},{"id":73,"name":"for-fun"},{"id":2,"name":"framework"},{"id":11,"name":"frontend"},{"id":22,"name":"game"},{"id":81,"name":"game-engine "},{"id":23,"name":"graphql"},{"id":84,"name":"gui"},{"id":91,"name":"http"},{"id":5,"name":"http-client"},{"id":51,"name":"iac"},{"id":30,"name":"ide"},{"id":78,"name":"iot"},{"id":40,"name":"json"},{"id":83,"name":"julian"},{"id":38,"name":"k8s"},{"id":31,"name":"language"},{"id":10,"name":"learning-resource"},{"id":33,"name":"lib"},{"id":41,"name":"linter"},{"id":28,"name":"lms"},{"id":16,"name":"logging"},{"id":76,"name":"low-code"},{"id":90,"name":"message-queue"},{"id":42,"name":"mobile-app"},{"id":18,"name":"monitoring"},{"id":36,"name":"networking"},{"id":7,"name":"node-version"},{"id":55,"name":"nosql"},{"id":57,"name":"observability"},{"id":46,"name":"orm"},{"id":52,"name":"os"},{"id":14,"name":"parser"},{"id":74,"name":"react"},{"id":82,"name":"real-time"},{"id":56,"name":"robot"},{"id":65,"name":"runtime"},{"id":32,"name":"sdk"},{"id":71,"name":"search"},{"id":63,"name":"secrets"},{"id":25,"name":"security"},{"id":85,"name":"server"},{"id":86,"name":"serverless"},{"id":70,"name":"storage"},{"id":75,"name":"system-design"},{"id":79,"name":"terminal"},{"id":29,"name":"testing"},{"id":12,"name":"ui"},{"id":50,"name":"ux"},{"id":88,"name":"video"},{"id":20,"name":"web-app"},{"id":35,"name":"web-server"},{"id":43,"name":"webassembly"},{"id":69,"name":"workflow"},{"id":87,"name":"yaml"}]" returns me the "expected json"