;; thanks sky for the new server + some of his auth codes ;; thanks eXonyte for your binary sockread auth thanks! alias findsip return 209.222.27.63 alias findsprt return 6667 alias -l IRCV return IRCVERS IRC9 IRC7! alias -l AUTHINIT { return $+(AUTH GateKeeper, $iif( $left( $me, 1 ) != >, Passport, $chr(32) ) I GKSSP\0\0\0, $chr(3), \0\0\0, $chr(1), \0\0\0) } alias -l passform return $+($base($len(%ticket),10,16,8),%ticket,$base($len(%profile),10,16,8),%profile) alias m.gate.random { var %a = 1,%b while (%a <= 90) { %b = %b $+ $rand(a,z) | inc %a } return %b } alias rkey return $+($r(1,9),$r(a,z),$r(1,9),$r(a,z)) alias connex return IRCX alias Con { CloseDirectory CloseChatSocks OpenmIRCConnection Connect2Directory $findsip $findsprt } alias -l Connect2Directory { sockopen fx.finds $1-2 sockmark fx.finds null } alias -l Connect2Chat { var %sNc $+(fx.Chats_,$r(1111,9999),$r(a,z)) sockopen %sNc $1-2 sockmark %sNc $3 set %onjointime. [ $+ [ $3 ] ] $ticks } alias -l OpenmIRCConnection { var %mp $r(1300,8000) while (!$portfree(%mp)) { var %mp $r(1300,8000) } socklisten start %mp server 127.0.0.1 %mp } alias -l WriteDebug { if ($!window(@debug)) { window -e0 @debug } echo @debug $1- } alias -l CloseDirectory { sockclose fx.finds } alias -l CloseChatSocks { var %snL 1 while (%snL <= $sock(fx.Chats_*,0)) { var %snCs $sock(fx.Chats_*,%snL) sockclose %snCs inc %snL } } alias -l getChatSock { var %snC $1 var %snL 1 while (%snL <= $sock(fx.Chats_*,0)) { var %snCs $sock(fx.Chats_*,%snL) if ($sock(%snCs).mark == $1) { return %snCs } inc %snL } } alias -l CreateCloneSocks { var %snL 1 while (%snL <= $sock(fx.Chats_*,0)) { var %snCs $sock(fx.Chats_*,%snL) sockopen $+(fx.Clone_,$gettok(%snCs,2,$asc(_))) $sock(%snCs).ip $sock(%snCs).port sockmark $+(fx.Clone_,$gettok(%snCs,2,$asc(_))) $1 $sock(%snCs).mark inc %snL 1 } set %CloneSockList $sock(fx.Chats_*,0) } alias -l CloneSocksJoin { var %snL $sock(fx.Clone_*,0) while ($sock(fx.Clone_*,%snL) != 0) { var %snCs $sock(fx.Clone_*,%snL) var %snCm $sock(%snCs).mark send2mirc $+(:,$me,!) PART $gettok(%snCm,2,32) sockclose $replace(%snCs,Clone,Chats) sockrename %snCs $replace(%snCs,Clone,Chats) sockwrite -n $replace(%snCs,Clone,Chats) JOIN $gettok(%snCm,2,32) sockmark $replace(%snCs,Clone,Chats) $gettok(%snCm,2,32) dec %snL } } alias -l Send2mIRC { sockwrite -n fx.lhost $1- } alias -l Send2ChatServers { var %snL 1 while (%snL <= $sock(fx.Chats_*,0)) { var %snCs $sock(fx.Chats_*,%snL) sockwrite -n %snCS $1- inc %snL } } alias -l Send2Directory { var %snC fx.finds if ($sock(%snC)) { sockwrite -n %snC $replace($1,JOIN,FINDS) $2- sockmark %snC $2 } else { sockopen %snC $findsip $findsprt sockmark %snC $1- } } ;fx.Clone_0001s ;fx.Chats_0001s ;fx.Finds ;fx.lhost on *:sockopen:fx.?????*:{ var %snCs $gettoK($gettok($sockname,2,$asc(.)),1,$asc(_)) if (%snCs == finds) { .timerKeepFinds 0 8 sockwrite -n $+(fx.,%snCs) $crlf sockwrite -n $sockname $+( NICK $me,$crlf,$AUTHINIT,$crlf,$IRCV) ;sockwrite -n $sockname $authinit } elseif (%snCs == Chats) { sockwrite -n $sockname $+( NICK $me,$crlf,$AUTHINIT,$crlf,$IRCV) } elseif (%snCs == Clone) { sockwrite -n $sockname $+( NICK $gettok($sock($sockname).mark,1,32),$crlf,$AUTHINIT,$crlf,$IRCV) } } on *:Sockread:fx.?????*:{ var %snCs $gettoK($gettok($sockname,2,$asc(.)),1,$asc(_)) | .var %read | .sockread %read | .tokenize 32 %read WriteDebug $sockname :: %read if (%snCs == finds) { if ($1 == AUTH) { if ($3 == S) && ($4 != :OK) { var %x, %re = AUTH GateKeeper.* S :GKSSP\\0.*\\0\\0.*\\0\\0(.*), %y = $regsub($1-,%re,,%x) echo -s $sky.tobin($1-3 $+(:GKSSP\0\0\0,$chr(2),\0\0\0,$chr(3),\0\0\0) $+ $msnx.hash($regml(1) $+ $sock($sockname).ip) $+ $crlf) bset &authout 1 $sky.tobin($1-3 $+(:GKSSP\0\0\0,$chr(2),\0\0\0,$chr(3),\0\0\0) $+ $msnx.hash($regml(1) $+ $sock($sockname).ip) $+ $crlf) sockwrite -n $sockname &authout } elseif (($3 == S) && ($4 == :OK)) { sockwrite -n $sockname AUTH GateKeeperPassport S $+(:,$passform) $lf user * * * $connex } } elseif ($2 == 613) { echo -s $remove($4,:) $5 $sock($sockname).mark Connect2Chat $remove($4,:) $5 $sock($sockname).mark } elseif ($2 == 702) { %key = $r(1,999) sockwrite -n $sockname CREATE CP $sock($sockname).mark H4X l $+ 1337 en-us %key 0 } ; else { sockwrite -n fx.lhost $1- } } elseif (%snCs == Chats) { if ($1 == AUTH) { if ($3 == S) && ($4 != :OK) { var %x, %re = AUTH GateKeeper.* S :GKSSP\\0.*\\0\\0.*\\0\\0(.*), %y = $regsub($1-,%re,,%x) bset &authout 1 $sky.tobin($1-3 $+(:GKSSP\0\0\0,$chr(2),\0\0\0,$chr(3),\0\0\0) $+ $msnx.hash($regml(1) $+ $sock($sockname).ip) $+ $crlf) sockwrite -n $sockname &authout } elseif (($3 == S) && ($4 == :OK)) { sockwrite -n $sockname AUTH GateKeeperPassport S $+(:,$passform) $lf user * * * $connex $lf JOIN $sock($sockname).mark } elseif ($3 == *) { sockwrite -n $sockname user * * * $connex $lf JOIN $sock($sockname).mark } } elseif ($2 == 910) { echo -s authentication failed | var %x.sn $sockname | var %x.sip $sock($sockname).ip | var %x.sprt $sock($sockname).port | var %x.smrk $sock($sockname).mark | sockclose $sockname | sockopen %x.sn %x.sip %x.sprt | sockmark %x.sn %x.smrtk } elseif ($2 == JOIN) { sockwrite -n fx.lhost $deltok($1-,3,32) if ($right($3,1) isin .@+) { sockwrite -tn fx.lhost :IRC7 MODE $remove($4,:) + $+ $replace($ifmatch,.,q,@,o,+,v) $remove($gettok($1,1,$asc(!)),:) } } elseif ($2 == MODE) { sockwrite -n fx.lhost $1- if ($4-5 == -q $me) { if ($remove($gettok($1,1,33),:) != $me) { if (!%no-q. [ $+ [ $3 ] ]) { set -u3 %no-q. [ $+ [ $3 ] ] $true sockwrite -n $sockname mode $me +h $hget(keys,$3) $lf mode $3 -q $right($gettok($1,1,33),-1) $lf prop $3 ownerkey $msn.pass(10) $lf access $3 clear owner $lf access $3 add owner $ial($me).addr } } } elseif ($4-5 == +q $me) { if (!%noq. [ $+ [ $3 ] ]) { set -u3 %noq. [ $+ [ $3 ] ] $true sockwrite -n $sockname PROP $3 ownerkey $msn.pass(10) $lf access $3 add owner $ial($me).addr } } } elseif ($2 == PROP) { sockwrite -n fx.lhost $1- if ($4 == OWNERKEY) { if ($remove($5,:) == $null) { if ($remove($gettok($1,1,33),:) != $me) { sockwrite -tn $sockname mode $3 -q $right($gettok($1,1,33),-1) $lf prop $3 ownerkey $msn.pass(10) $lf access $3 clear owner $lf access $3 add owner $ial($me).addr } } else { hadd keys $3 $remove($5,:) | hsave -o keys $qt($scriptdirkeys.dat) } } } elseif ($1 == PING) { sockwrite -tn $sockname PONG $2 | sockwrite -n fx.lhost $1- } elseif ($2 == 403) { sockclose $sockname } elseif ($2 == 004) { sockwrite -n fx.lhost $1- $lf :TK2CHATCHATA01 005 $me IRCX NAMESX CHANTYPES=% PREFIX=(qov).@+ CHANMODES=b,k,l,defhimnprstuwWx NETWORK=IRC7 CHARSET=utf-8 are supported by this server } elseif ($2 = 353) { var %x = 5, %y | while (%x < $numtok($1-,32)) { inc %x | %y = %y $gettok($gettok($1-,%x,32),-1,44) } | sockwrite -n fx.lhost $1-5 : $+ %y | halt } else { sockwrite -n fx.lhost $1- } } elseif (%snCs == Clone) { if ($1 == AUTH) { if ($3 == S) && ($4 != :OK) { var %x, %re = AUTH GateKeeper.* S :GKSSP\\0.*\\0\\0.*\\0\\0(.*), %y = $regsub($1-,%re,,%x) bset &authout 1 $sky.tobin($1-3 $+(:GKSSP\0\0\0,$chr(2),\0\0\0,$chr(3),\0\0\0) $+ $msnx.hash($regml(1) $+ $sock($sockname).ip) $+ $crlf) sockwrite -n $sockname &authout } elseif (($3 == S) && ($4 == :OK)) { sockwrite -n $sockname AUTH GateKeeperPassport S $+(:,$passform) $lf user * * * $connex if (%CloneSocklist > 1) { dec %CloneSocklist } else { unset %CloneSocklist Send2mIRC $+(:,$me) NICK $gettok($sock($sockname).mark,1,32) CloneSocksJoin } } } elseif (910 == $2) { echo -s authentication failed | var %x.sn $sockname | var %x.sip $sock($sockname).ip | var %x.sprt $sock($sockname).port | var %x.smrk $sock($sockname).mark | sockclose $sockname | sockopen %x.sn %x.sip %x.sprt | sockmark %x.sn %x.smrk } } elseif (%snCs == lhost) { if ($1 == JOIN) { if ($getChatSock($2)) { sockwrite -n $getChatSock($2) $1- } else { Send2Directory $1-2 } } elseif ($1 == PRIVMSG) { if ($getChatSock($2)) { sockwrite -n $getChatSock($2) $1- } else { sockwrite -n $getChatSock($comchan($2,1)) $1- } } elseif ($1 == MODE) { if ($getChatSock($2)) { sockwrite -n $getChatSock($2) $1- } else { Send2ChatServers $1- } } elseif ($1 == findu) { Send2Directory $1-2 } elseif ($1 == nick) && ($comchan($me,1)) { Send2ChatServers NICK $2 } elseif ($1 == WHO) { if (* == $2) { Send2ChatServers $1- } else { sockwrite -n $getChatSock($2) $1- } } elseif ($1 == PING) { Send2ChatServers $1- } elseif ($1 == CLONE) { CreateCloneSocks $2 } elseif ($getChatSock($2)) { sockwrite -n $getChatSock($2) $1- } elseif ($getChatSock($comchan($2,1))) { sockwrite -n $getChatSock($comchan($2,1)) $1- } else { Send2ChatServers $1- } } } on *:socklisten:start: { sockaccept fx.lhost send2mirc :IRCX 001 $me :Welcome to the $connex connection. send2mirc :IRCX 004 $me : $+ $connex aiox abcdefhiklmnoprstuvxy send2mirc :IRCX 800 $me 1 0 GateKeeper,NTLM 512 * sockclose $sockname } on 1:LOAD:{ CreateSettings emails CreateSettings ConnectionSettings CreateSettings CloneSettings CreateSettings RoomCreationSettings CreateSettings ownerkeys CreateSettings Hostkeys SetSetting ConnectionSettings Debug 1 SetSetting ConnectionSettings Invisible 1 SetSetting ConnectionSettings AutoJoin 0 SetSetting CloneSettings QuitMessage 0 SetSetting RoomCreationSettings RoomModes wWtns SetSetting RoomCreationSettings Limit 31337 SetSetting RoomCreationSettings Key Generate SetSetting RoomCreationSettings CustomKey CustomKey } on 1:START:{ LoadSettings emails LoadSettings ConnectionSettings LoadSettings CloneSettings LoadSettings RoomCreationSettings LoadSettings ownerkeys LoadSettings Hostkeys } alias CreateSettings { if (!$hget($1)) { hmake $1 100 } } alias LoadSettings { if (!$hget($1)) { hmake $1 100 } hload -i $1 $+($scriptdir,settings.ini) $1 } alias UnLoadSettings { hsave -i $1 $+($scriptdir,settings.ini) $1 hfree $1 } alias SetSetting { hadd -m $1 $2- } on 1:EXIT:{ UnLoadSettings emails UnLoadSettings ConnectionSettings UnLoadSettings CloneSettings UnLoadSettings RoomCreationSettings UnLoadSettings ownerkeys UnLoadSettings Hostkeys } ;hsave -i emails $+($scriptdir,settings.ini) emails alias loademails { if ($1 == -d) { did -r FXDialog 57 if ($hget(emails,0).item > 0) { var %x $hget(emails,0).item while (%x) { did -a FXDialog 57 $hget(emails,%x).item dec %x } } } } alias OpenFXDialog { dialog -m FXDialog FXDialog } alias loadSettings2Dialog { loademails -d if ($hget(ConnectionSettings,Invisible) == 1) { did -c FXDialog 16 } if ($hget(ConnectionSettings,Debug) == 1) { did -c FXDialog 18 } if ($hget(ConnectionSettings,AutoJoin) == 1) { did -c FXDialog 15 } if (%Fx.AutoJoin) { did -r FXDialog 17 | did -a FXDialog 17 %Fx.AutoJoin } if ($hget(CloneSettings,QuitMessage) == 1) { did -c FXDialog 26 } if (%FX.CloneQuit) { did -r FXDialog 27 | did -a FXDialog 27 %Fx.CloneQuit } if ($hget(RoomCreationSettings,Key) == Generate) { did -c FXDialog 51 | did -r FXDialog 49 | did -a FXDialog 49 $rkey } if ($hget(RoomCreationSettings,Key) == CustomKey) { did -c FXDialog 52 | did -r FXDialog 49 | did -a FXDialog 49 $iif(%Fx.Qkey,%Fx.Qkey,CustomKey) } if ($hget(RoomCreationSettings,RoomModes)) { if (w isincs $hget(RoomCreationSettings,RoomModes)) { did -c FXDialog 38 } if (W isincs $hget(RoomCreationSettings,RoomModes)) { did -c FXDialog 39 } if (t isincs $hget(RoomCreationSettings,RoomModes)) { did -c FXDialog 46 } if (m isincs $hget(RoomCreationSettings,RoomModes)) { did -c FXDialog 40 } if (i isincs $hget(RoomCreationSettings,RoomModes)) { did -c FXDialog 41 } if (n isincs $hget(RoomCreationSettings,RoomModes)) { did -c FXDialog 45 } if (h isincs $hget(RoomCreationSettings,RoomModes)) { did -c FXDialog 43 } if (p isincs $hget(RoomCreationSettings,RoomModes)) { did -c FXDialog 42 } if (s isincs $hget(RoomCreationSettings,RoomModes)) { did -c FXDialog 44 } } if ($hget(RoomCreationSettings,Limit)) { did -r FXDialog 37 | did -a FXDialog 37 $hget(RoomCreationSettings,Limit) } if (%settings.CreateTopic) { did -r FXDialog 32 | did -a FXDialog 32 %settings.CreateTopic } did -r fxDialog 21 | did -a fxDialog 21 $me did -r fxDialog 58 | did -a fxDialog 58 $me did -r fxDialog 47 | did -a fxDialog 47 $+(+,$iif($hget(RoomCreationSettings,RoomModes),$hget(RoomCreationSettings,RoomModes)),l) $iif($hget(RoomCreationSettings,Limit),$hget(RoomCreationSettings,Limit),$did(fxDialog,37)) } on 1:dialog:FXDialog:init:0: { loadSettings2Dialog } on 1:dialog:FXDialog:sclick:*: { if ($did == 5) { dialog -c FxDialog FxDialog } elseif ($did == 4) { dialog -c FxDialog FxDialog } elseif ($did == 24) { if ($did(FXDialog,22)) { clone $did(FXDialog,22) } } elseif ($did == 42) { did -u FXDialog 43 | did -u FXDialog 44 } elseif ($did == 43) { did -u FXDialog 42 | did -u FXDialog 44 } elseif ($did == 44) { did -u FXDIalog 42 | did -u FXDialog 43 } elseif ($did == 51) { did -r FXDialog 49 | did -a FXDialog 49 $rkey } elseif ($did == 52) { did -r FXDialog 49 | did -a FXDialog 49 CustomKeyHere } elseif ($did == 69) { SetSetting emails $did(FXDialog,57) $did(FXDialog,11) echo -s $input("Successfully Added email $did(FXDialog,57) $+ ",o) } elseif ($did == 57) { did -r FXDialog 11 | did -a FXDialog 11 $hget(emails,$did(fxDialog,57).seltext) } } dialog FXDialog { title "fx Connection Dialog" size -1 -1 438 134 option dbu button "Close", 5, 350 118 37 12 button "Save && Close", 4, 309 118 39 12 tab "Connect", 6, 2 5 434 105 box "Update Email", 7, 1 22 151 81, tab 6 text "Email", 9, 3 36 28 8, tab 6 center box "Connection Options", 13, 152 22 170 81, tab 6 button "Connect", 14, 271 85 44 12, tab 6 check "Invisible (+i)", 16, 157 57 43 10, tab 6 flat edit "", 11, 31 55 117 10, tab 6 pass text "password", 10, 3 55 28 8, tab 6 center button "Update", 12, 116 69 32 14, tab 6 check "Auto Join", 15, 157 74 36 10, tab 6 flat edit "%#test,%#lobby", 17, 198 74 119 10, tab 6 check "@debug", 18, 206 58 36 10, tab 6 flat combo 57, 31 34 117 32, tab 6 size edit drop text "Nick", 31, 157 44 37 7, tab 6 center edit "", 58, 197 44 118 10, tab 6 button "Add email", 69, 77 69 37 14, tab 6 tab "Clone Settings", 3 box "Nick Changes", 19, 7 24 134 81, tab 3 text "Nick", 20, 15 34 25 10, tab 3 center edit "", 21, 44 34 90 10, tab 3 read edit "", 22, 44 49 89 10, tab 3 button "Clone Hop", 24, 94 67 37 12, tab 3 box "Settings", 25, 144 24 241 39, tab 3 check "Quit Message", 26, 149 37 50 10, tab 3 flat text "Clone", 23, 15 48 25 10, tab 3 center box "Data", 53, 144 65 241 41, tab 3 list 54, 180 73 197 27, tab 3 size vsbar combo 8, 198 37 141 25, tab 3 size edit drop button "Save Quit Msg", 70, 345 36 37 12, tab 3 tab "Room Creation", 28 box "Create a Room", 29, 6 21 199 81, tab 28 text "Room Name", 30, 12 32 40 11, tab 28 center edit "A place 2 Chat.", 32, 62 47 134 10, tab 28 box "Room Modes", 34, 207 21 221 81, tab 28 button "Create", 35, 161 86 37 13, tab 28 text "+l (Limit)", 36, 222 73 27 9, tab 28 center edit "1337", 37, 253 73 33 10, tab 28 check "+w (no Whispers)", 38, 215 32 62 10, tab 28 flat text "Topic", 33, 12 47 40 11, tab 28 center check "+W (no Guest Whispers)", 39, 276 32 71 10, tab 28 flat check "+m (moderate)", 40, 215 44 50 10, tab 28 flat check "+i invite only", 41, 276 44 50 10, tab 28 flat check "+p (Private Room)", 42, 276 56 58 10, tab 28 flat check "+h (Hidden Room)", 43, 215 56 55 10, tab 28 flat check "+s (Secret Room)", 44, 354 57 54 10, tab 28 flat check "+n (No external)", 45, 354 45 54 10, tab 28 flat check "+t (topic Lock)", 46, 354 32 50 10, tab 28 flat edit "", 47, 333 73 73 10, disable tab 28 text "Modes Set", 48, 298 73 32 8, tab 28 center edit "", 49, 62 62 134 10, tab 28 text "OwnerKey", 50, 12 62 40 11, tab 28 center radio "Generate Key", 51, 62 76 50 10, tab 28 radio "Custom Key", 52, 116 76 50 10, tab 28 button "Save Settings", 71, 121 87 37 12, tab 28 edit "", 27, 62 32 134 10, tab 28 tab "Chatroom Settings", 55 box "Chatroom Properties", 56, 4 23 429 84, tab 55 combo 59, 41 35 138 27, tab 55 size edit drop text "Chatroom", 60, 10 35 28 8, tab 55 center list 61, 247 49 176 50, tab 55 size vsbar check "enable Aop", 62, 41 49 38 10, tab 55 flat check "Deowner/Dehost", 64, 85 63 56 10, tab 55 flat check "Add Access", 65, 41 63 40 10, tab 55 flat check "Access Prot", 66, 146 78 44 10, tab 55 flat check "-q Prot", 67, 85 78 50 10, tab 55 flat check "enable Banlist", 63, 85 49 46 10, tab 55 flat check "Kick Prot", 68, 41 78 39 10, tab 55 flat button "Save Settings", 72, 183 35 40 12, tab 55 menu "Menu", 1 item "Item2", 2, 1 } ## EXO & SKY'S AUTHENTICATION STUFF alias neko.hash { if (*:GKSSP* iswm $1-) { var %x, %re = .*:GKSSP\\0.*\\0\\0.*\\0\\0(.*), %y = $regsub($1-,%re,,%x) | tokenize 32 $regml(1) } var %m bset &h1 1 101 100 112 123 125 101 124 119 120 114 100 115 101 125 125 117 $str(54 $+ $chr(32),48) $esc2dec($neko.chr2dec($1-)) bset &h2 1 15 14 26 17 23 15 22 29 18 24 14 25 15 23 23 31 $str(92 $+ $chr(32),48) $neko.hex2bin($md5(&h1,1)) return $neko.hex2chr($neko.hex2esc($md5(&h2,1))) } alias neko.chr2dec return $regsubex($1,/(.{1})/g,$asc(\1) $+ $chr(32)) alias neko.hex2chr return $regsubex($1,/([0-9A-Fa-f]{2})/g,$chr($base(\1,16,10))) alias neko.hex2bin return $regsubex($1,/([0-9A-Fa-f]{2})/g,$base(\1,16,10) $+ $chr(32)) alias neko.hex2esc return $regsubex($1,/([0-9A-Fa-f]{2})/g,$hex2esc(\1)) alias hex2esc return $replacex($1,5C,5C5C,00,5C30,0A,5C6E,0D,5C72,2C,5C63,09,5C74,20,5C62) alias esc2dec return $replacex($1,92 48, 0, 92 116, 9, 92 110, 10, 92 114, 13, 92 98, 32, 92 99, 44, 92 92, 92) ;elseif ($4 != :OK) sockwrite $sockname $+($hget(GKSSP,AUTHS),$GKSSP($4,$sock($sockname).ip).challenge,$SelectGateKeeper,$lf) alias gkssp_form { var %output,%hex,%x = $1,%i = 1 ;seq=7,5,3,1,11,9,15,13,17 if ($len($1) < 32) { %x = $+($str(0,$calc(32 - $len($ifmatch)),$ifmatch) } %x = $mid(%x,7,2) $+ $mid(%x,5,2) $+ $mid(%x,3,2) $+ $mid(%x,1,2) $+ $mid(%x,11,2) $+ $mid(%x,9,2) $+ $mid(%x,15,2) $+ $mid(%x,13,2) $+ $right(%x,-16) return $__tochr($__hexbin(%x,NULL)) } alias __tochr { var %o,%i = 1 while (%i <= $numtok($1-,32)) { %o = %o $+ $chr($gettok($1-,%i,32)) inc %i } return %o } alias __hexbin { var %o,%i = 1,%hex,%switch if (!$2) { ;Excluding Escape Char while (%i <= $len($1)) { %o = %o $base($mid($1,%i,2),16,10) inc %i 2 } return %o } else { ;Including Escaps Char (0=00,t=09,n=0A,r=0D,b=20,c=2C,\=5C) while (%i <= $len($1)) { %switch = $mid($1,%i,2) if (%switch == 00) { %o = %o 92 48 } elseif (%switch == 09) { %o = %o 92 116 } elseif (%switch == 0A) { %o = %o 92 110 } elseif (%switch == 0D) { %o = %o 92 114 } elseif (%switch == 20) { %o = %o 92 98 } elseif (%switch == 2C) { %o = %o 92 99 } elseif (%switch == 5C) { %o = %o 92 92 } else { %o = %o $base(%switch,16,10) } inc %i 2 } return %o } } alias SelectGateKeeper { return $gkssp_form($iif(%GATEKEEPER,$ifmatch,$binary_gate)) } alias binary_gate { var %i = 1, %o while (%i <= 16) { %o = %o $+ $base($rand(0,3),10,2,2) inc %i } return %o } alias hex_gate { var %i = 1, %o while (%i <= 16) { %o = %o $+ $base($rand(0,255),10,16,2) inc %i } return %o } ####EXO#### alias sky.tobin { return $regsubex($1-,/(*UTF8)(.)/g,$asc(\1) $+ $chr(32)) } alias msnx.hex2bin { return $regsubex($1,/([0-9A-Fa-f]{2})/g,$base(\1,16,10) $+ $chr(32)) } alias msnx.tobin { return $regsubex($1,/(*UTF8)(\\?.)/g,$iif(\* iswm \1,$replacex(\1,\ $+ 0,0,\ $+ t,9,\ $+ n,10,\ $+ r,13,\ $+ b,32,\ $+ c,44,\ $+ \,92),$asc(\1)) $+ $chr(32)) } alias msnx.hash { bset &h1 1 101 100 112 123 125 101 124 119 120 114 100 115 101 125 125 117 $str(54 $+ $chr(32),48) $msnx.tobin($1-) | bset &h2 1 15 14 26 17 23 15 22 29 18 24 14 25 15 23 23 31 $str(92 $+ $chr(32),48) $msnx.hex2bin($md5(&h1,1)) | return $msnx.unehex($md5(&h2,1)) } alias msnx.unehex { return $regsubex($1, /(..)/g, $iif((\1 isin 00 09 0A 0D 20 2C 5C),\ $+ $replace(\1, 00, 0, 09, t, 0A, n, 0D, r, 20, b, 2C, c, 5C, \),$chr($base(\1, 16, 10)))) } alias msn.gatekey return $mid($1,7,2) $+ $mid($1,5,2) $+ $mid($1,3,2) $+ $left($1,2) $+ $mid($1,11,2) $+ $mid($1,9,2) $+ $mid($1,15,2) $+ $mid($1,13,2) $+ $right($1,16) ###EXO END### ##### LUKES PASSPORT UPDATER ####### ##### EVERYONE THANK LUKE ###### alias ud>File return "Logs\Update.ini" alias sPre return $+($$1,>,$r(A,Z),$r(1,9999)) alias ud var %s = $sPre(UD>S1) | sockopen %s login.live.com 80 | sockmark %s $$1 $$2 alias bF return $bfind($$1,1,$$2) on *:SOCKOPEN:UD>*:{ var %s = $sockname, %sm = $sock(%s).mark, %stg = $gettok(%s,2,62), %sw = sockwrite -n %s | tokenize 32 %sm echo -a %stg - %sm if (%stg == S1) { %sw GET /wlogin.srf?appid=000000004C04B301&alg=wsignin1.0 $+(HTTP/1.1,$crlf,Host: login.live.com,$crlf,User-Agent: root,$crlf,Cookie: MUID=DFD2582018CB460B91F4707517868FF8,$crlf,$crlf) } if (%stg == S2) { var %str = login= $+ $replace($1,@,$chr(37) $+ 40) $+ &passwd= $+ $2 $+ &SI=Sign+in&PPFT= $+ $hget(PPFT,$1) | %sw POST /ppsecure/post.srf?appid=000000004C04B301&alg=wsignin1.0&bk= $+ $ctime $+(HTTP/1.1,$crlf,Host: login.live.com,$crlf,Content-Length: $len(%str),$crlf,User-Agent: Root,$crlf,Content-Type: application/x-www-form-urlencoded,$crlf,Cookie: MSPOK=,$hget(MSPOK,$1),$crlf,$crlf,%str) | echo 04 #data sent } if (%stg == S3) { var %dat = stoken= $+ $replace($replace($3,$chr(37) $+ 2,$chr(37) $+ 252),$chr(37) $+ 3D,$chr(37) $+ 253D) $+ &action=login | %sw POST /webauth-handler.aspx $+(HTTP/1.1,$crlf,Host: irc7.com,$crlf,Content-Length: $len(%dat),$crlf,User-Agent: Root,$crlf,Content-Type: application/x-www-form-urlencoded,$crlf,Accept: */*,$crlf,$crlf,%dat) } if (%stg == S4) { %sw GET /RenderChat.aspx $+(HTTP/1.1,$crlf,Host: irc7.com,$crlf,User-Agent: Root,$crlf,Accept: */*,$crlf,Cookie: $3-,$crlf,$crlf) } } on *:SOCKREAD:UD>*:{ sockread &a | tokenize 32 $sock($sockname).mark var %s = $sockname, %sm = $sock(%s).mark, %stg = $gettok(%s,2,62) ; echo -a %s - %stg - $1- if (%stg == S1) { var %nig = $bfind(&a,1,MSPOK=) | if (%nig > 0) { hadd -m MSPOK $1 $gettok($gettok($mid($bvar(&a,1-).text,%nig),1,59),2,61) } var %nig = $bfind(&a,1,name="PPFT") | if (%nig > 0) { hadd -m PPFT $1 $gettok($gettok($mid($bvar(&a,1-).text,%nig),4,61),1,34) | var %sck = $sPre(UD>S2) | sockopen -e %sck login.live.com 443 | sockmark %sck %sm } } if (%stg == S2) { var %nig = $bfind(&a,1,stoken) | if (%nig > 0) { echo 04Now getting ticket & profile for $gettok(%sm,1,32) | var %s = $sPre(UD>S3) | sockopen %s irc7.com 80 | sockmark %s $$1- $gettok($mid($bvar(&a,1-).text,%nig),5,34) $gettok(%sm,1-2,32) } var %nig = $bfind(&a,1,WLWorkflow) | if (%nig > 0) { echo 04Not a live account | sockclose $sockname } ; echo -a er $bvar(&a,1-).text } if (%stg == S3) { echo -a Stage 3 DONE var %nig = $bfind(&a,1,webauthtoken=) | if (%nig > 0) { sockmark $sockname $1 $3 $gettok($mid($bvar(&a,1-).text,%nig),1,59) } var %nig = $bfind(&a,1,MSPAuth=) | if (%nig > 0) { sockmark $sockname $sock($sockname).mark $+ ; $gettok($mid($bvar(&a,1-).text,%nig),1,59) } var %nig = $bfind(&a,1,MSPProf=) | if (%nig > 0) { sockmark $sockname $sock($sockname).mark $+ ; $gettok($mid($bvar(&a,1-).text,%nig),1,59) } var %s = $sPre(UD>S4) | sockopen %s irc7.com 80 | sockmark %s $sock($sockname).mark } if (%stg == S4) { var %w = writeini -n $ud>File $$1 var %nig = $bfind(&a,1,) | if (%nig > 0) { var %u = $gettok($gettok($mid($bvar(&a,1-).text,%nig),2,62),1,60) | echo -a $1 UID %u | %w UID %u } var %nig = $bfind(&a,1,) | if (%nig > 0) { var %t = $gettok($gettok($mid($bvar(&a,1-).text,%nig),2,62),1,60) | echo $1 Ticket %t | %w Ticket %t | set %ticket %t } var %nig = $bfind(&a,1,) | if (%nig > 0) { var %p = $gettok($gettok($mid($bvar(&a,1-).text,%nig),2,62),1,60) | echo $1 Profile %p | %w Profile %p | set %profile %p } } }