├── .gitignore ├── README.md ├── decode.js ├── decoded └── example.json ├── package-lock.json ├── package.json └── payload.txt /.gitignore: -------------------------------------------------------------------------------- 1 | /node_modules/ -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- 1 | sinisterdev 2 | 3 | # Simple PerimeterX payload decoder 4 | 5 | 6 | 7 | ### Clone 8 | 9 | - Clone this repo to your local machine using `https://github.com/sinisterdev/simple-perimeterx-decoder` 10 | 11 | ### Setup 12 | 13 | - How to Setup and decode a perimeterX payload 14 | 15 | > now enter your perimeterX payload in the payload.txt file, then run 16 | 17 | ```shell 18 | $ node decode 19 | ``` 20 | 21 | - You should now have the decoded payload in the decoded directory 22 | 23 | -------------------------------------------------------------------------------- /decode.js: -------------------------------------------------------------------------------- 1 | const fs = require("fs"); 2 | 3 | function base64Process(str) { 4 | return decodeURIComponent( 5 | Array.prototype.map 6 | .call(Buffer.from(str, "base64").toString(), function (c) { 7 | return "%" + ("00" + c.charCodeAt(0).toString(16)).slice(-2); 8 | }) 9 | .join("") 10 | ); 11 | } 12 | 13 | function payloadDecode(message) { 14 | message = base64Process(message); 15 | for (var e = "", r = 0; r < message.length; r++) 16 | e += String.fromCharCode(message.charCodeAt(r) ^ 50); 17 | return e; 18 | } 19 | 20 | const payload = fs.readFileSync("payload.txt", "utf8"); 21 | 22 | if (!fs.existsSync( __dirname + '/decoded/')) { 23 | fs.mkdirSync( __dirname + '/decoded/'); 24 | } 25 | 26 | fs.writeFileSync( 27 | __dirname + `/decoded/${+new Date()}.json`, 28 | payloadDecode(payload) 29 | ); 30 | 31 | console.log("Done!"); 32 | -------------------------------------------------------------------------------- /decoded/example.json: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sinisterdev/simple-perimeterx-decoder/de2d1610229232a2a4a2c5ce364110179f8adbc6/decoded/example.json -------------------------------------------------------------------------------- /package-lock.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "simple-perimeterx-decoder", 3 | "version": "1.0.0", 4 | "lockfileVersion": 1 5 | } 6 | -------------------------------------------------------------------------------- /package.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "simple-perimeterx-decoder", 3 | "version": "1.0.0", 4 | "description": "", 5 | "main": "decode.js", 6 | "scripts": { 7 | "test": "echo \"Error: no test specified\" && exit 1" 8 | }, 9 | "author": "", 10 | "license": "ISC", 11 | "dependencies": {} 12 | } 13 | -------------------------------------------------------------------------------- /payload.txt: -------------------------------------------------------------------------------- 1 | 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 --------------------------------------------------------------------------------