Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- ;<- :arrow^!33333333333333333333333337@GateKeeper NICK :>Arrow
- 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) }
- ## 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 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 __tobin {
- var %o,%i = 1
- while (%i <= $len($1-)) {
- %o = %o $asc($mid($1-,%i,1))
- inc %i
- }
- return %o
- }
- alias msnx.tobin {
- var %l = 1, %r
- while (%l <= $len($1)) {
- if ($mid($1,%l,1) == \) {
- inc %l
- if ($mid($1,%l,1) == 0) %r = %r 0
- elseif ($mid($1,%l,1) == t) %r = %r 9
- elseif ($mid($1,%l,1) == n) %r = %r 10
- elseif ($mid($1,%l,1) == r) %r = %r 13
- elseif ($mid($1,%l,1) == b) %r = %r 32
- elseif ($mid($1,%l,1) == c) %r = %r 44
- elseif ($mid($1,%l,1) == \) %r = %r 92
- }
- else %r = %r $asc($mid($1,%l,1))
- inc %l
- }
- return %r
- }
- alias msnx.unehex {
- var %l = 1, %r, %x = $remove($1-,$chr(32))
- while (%l <= $len(%x)) {
- if ($mid(%x,%l,2) == 00) %r = %r $+ \0
- elseif ($mid(%x,%l,2) == 0A) %r = %r $+ \n
- elseif ($mid(%x,%l,2) == 0D) %r = %r $+ \r
- elseif ($mid(%x,%l,2) == 2C) %r = %r $+ \c
- elseif ($mid(%x,%l,2) == 09) %r = %r $+ \t
- elseif ($mid(%x,%l,2) == 5C) %r = %r $+ \\
- elseif ($mid(%x,%l,2) == 20) %r = %r $+ \b
- else %r = %r $+ $chr($base($mid(%x,%l,2),16,10))
- inc %l 2
- }
- return %r
- }
- alias msnx.hex2bin {
- var %l = 1, %r
- while (%l <= $len($1)) {
- %r = %r $base($mid($1,%l,2),16,10)
- inc %l 2
- }
- return %r
- }
- alias msnx.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###
- alias OpenServer {
- socklisten svr.Connx 6667
- }
- on *:socklisten:svr.?????*:{
- if ($sockname == svr.Connx) { var %sNc $+(svr.Connz_,$r(1111,9999),$r(a,z)) | sockaccept %sNc }
- }
- on *:sockopen:svr.?????*:{
- var %snCs $gettoK($gettok($sockname,2,$asc(.)),1,$asc(_))
- elseif (%snCs == Chats) {
- sockwrite -n $sockname $+( NICK $+(>,$me),$crlf,$AUTHINIT,$crlf,$IRCV)
- }
- }
- on *:sockread:svr.?????*:{
- var %snCs $gettoK($gettok($sockname,2,$asc(.)),1,$asc(_)) | .var %read | .sockread %read | .tokenize 32 %read
- WriteDebug $sockname :: %read
- if (%sNcs == Connz) {
- if ($1 == NICK) { set %NICK. $+ $sockname $2 }
- if ($2 == USER) { sockwrite -n $sockname NOTICE AUTH :*** Looking up your hostname... | Connect2ChatX $sockname %NICK. $+ $sockname }
- }
- 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 $__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 == PRIVMSG) {
- if ($4 == :S) { sockwrite -n fx.lhost $1-3 : $+ $left($6-,-1) }
- else { sockwrite -n fx.lhost $1- }
- }
- 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-
- }
- }
- }
- alias -l WriteDebug {
- if ($!window(@ServerDebug)) {
- window -e0 @ServerDebug
- }
- echo @ServerDebug $1-
- }
- alias -l Connect2ChatX {
- var %sNc $replace($1,Connz,Chats)
- sockopen %sNc 74.122.195.182 6667
- sockmark %sNc $2
- }
Add Comment
Please, Sign In to add comment