Guest User

Untitled

a guest
May 25th, 2018
99
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
mIRC 9.66 KB | None | 0 0
  1.  
  2. ##AUTH CREDIT GOES TO eXonyte & Sky
  3. alias Connect2irc7 {
  4.   clearirc7Socks
  5.   if ($!window(@debug)) {
  6.     window @debug
  7.   }
  8.   var %mIRCport $rand(1300,8000)
  9.   while (!$portfree(%mIRCport)) { var %mIRCport $rand(1300,8000) }
  10.   socklisten start %mIRCport
  11.   server 127.0.0.1 %mircport
  12.   sockopen irc7.Finds $irc7Server 6668
  13. }
  14. alias clearirc7Socks {
  15.   if ($server) { disconnect }
  16.   sockclose irc7.* | sockclose start |  sockclose mIRCServer | timerkeep off  
  17. }
  18. alias closeChanSocks {
  19.   var %x 1
  20.   while (%x <= $sock(irc7.*,0)) {
  21.     if ($me !ison $sock(irc7.*,%x).mark) && ($sock(irc7.*,%x) != irc7.finds) {
  22.       sockclose $sock(irc7.*,%x)
  23.     }
  24.     inc %x
  25.   }
  26. }
  27. alias cloneHop { }
  28. on *:socklisten:start:{
  29.   sockaccept mIRCServer
  30.   sockclose $sockname
  31.   sockwrite -n mIRCServer :ConeX 001 $me : $+ connecting to Finds...
  32. }
  33. on *:sockopen:irc7.?????:{
  34.   if ($gettok($sockname,2,$asc(.)) == finds) {
  35.     .timerkeep 0 8 sockwrite -n $sockname $crlf
  36.   }
  37.   sockwrite -n $sockname IRCVERS IRC0 $lf AUTH GateKeeper $+ $iif($left($me,1) != >,Passport,) I $+(:GKSSP\0\0\0,$chr(3),\0\0\0,$chr(1),\0\0\0)
  38. }
  39. on *:Sockread:irc7.?????:{  
  40.   .var %read | .sockread %read | .tokenize 32 %read
  41.   echo @debug $sockname :: %read
  42.   if ($gettok($sockname,2,$asc(.)) == finds) {
  43.     if ($1 == AUTH) {
  44.       if (($3 == S) && ($4 != :OK)) {
  45.         if (($3 == S) && ($4 != :OK)) {
  46.  
  47.           var %x, %re = GKSSP\\0.*\\0\\0.*\\0\\0(.*), %y = $regsub($3-,%re,,%x)
  48.           sockwrite -n $sockname AUTH GateKeeper $+ $iif($left($me,1) != >,Passport,) S $+(:GKSSP\0\0\0,$chr(2),\0\0\0,$chr(3),\0\0\0,$neko.hash($regml(1) $+ $irc7server)) $lf nick $me
  49.           ; var %x, %re = AUTH GateKeeper.* S :GKSSP\\0.*\\0\\0.*\\0\\0(.*), %y = $regsub($1-,%re,,%x)
  50.           ;   bset &authout 1 $msn.tobin($1-3 $+(:GKSSP\0\0\0,$chr(2),\0\0\0,$chr(3),\0\0\0,$msn.hash($regml(1) $+ $sock($sockname).ip)) $+ $iif($left($me,1) == >,$msn.unehex($msn.gatekey(%gatekeeper)),) $+ $lf NICK $me))
  51.           ;   sockwrite $sockname &authout  
  52.           ;$+(:GKSSP\0\0\0,$chr(2),\0\0\0,$chr(3),\0\0\0,$neko.hash($regml(1) $+ $irc7server $+ $SelectGateKeeper)) $lf nick $me
  53.         }
  54.  
  55.         ;sockwrite -n $sockname AUTH GateKeeper $+ $iif($left($me,1) != >,Passport,) S $+(:GKSSP\0\0\0,$chr(2),\0\0\0,$chr(3),\0\0\0,$neko.hash($regml(1) $+ $irc7server)) $+ $msn.unehex($msn.gatekey(%gatekeeper)) $+ $crlf
  56.       }
  57.       elseif (($3 == S) && ($4 == :OK)) { sockwrite -n $sockname AUTH GateKeeperPassport S $+(:,$passform) $lf user * * * $me }
  58.     }
  59.     if ($2 == 613) { var %x.nsn $+(irc7.,$r(1111,9999),$r(a,z)) | sockopen %x.nsn $remove($4,:) $5 | sockmark %x.nsn $sock($sockname).mark | sockmark $sockname null }
  60.     elseif ($2 == 702) {
  61.       %key = $r(1,999)
  62.       sockwrite -n $sockname CREATE CP $sock($sockname).mark H4X l $+ 1337 en-us 1 %key 0
  63.     }
  64.     else  { sockwrite -n mIRCServer $1- }
  65.   }
  66.   else {
  67.     if ($1 == PING) { sockwrite -n $sockname PONG $2- }
  68.     if ($1 == AUTH) {
  69.       if (($3 == S) && ($4 != :OK)) {
  70.         if ($left($me,1) != >) {
  71.           var %x, %re = GKSSP\\0.*\\0\\0.*\\0\\0(.*), %y = $regsub($3-,%re,,%x)
  72.           sockwrite -n $sockname AUTH GateKeeper $+ $iif($left($me,1) != >,Passport,) S $+(:GKSSP\0\0\0,$chr(2),\0\0\0,$chr(3),\0\0\0,$neko.hash($regml(1) $+ $irc7server)) $lf nick $me
  73.         }
  74.         elseif ($left($me,1) == >) {
  75.           var %x, %re = AUTH GateKeeper.* S :GKSSP\\0.*\\0\\0.*\\0\\0(.*), %y = $regsub($1-,%re,,%x)
  76.           bset &authout 1 $msn.tobin($1-3 $+(:GKSSP\0\0\0,$chr(2),\0\0\0,$chr(3),\0\0\0,$msn.hash($regml(1) $+ $sock($sockname).ip)) $+ $msn.unehex($msn.gatekey(%gatekeeper)))
  77.           sockwrite $sockname &authout
  78.           sockwrite -n $sockname JOIN $sock($socknmae).mark %key
  79.         }  
  80.  
  81.         ;$+(:GKSSP\0\0\0,$chr(2),\0\0\0,$chr(3),\0\0\0,$neko.hash($regml(1) $+ $irc7server $+ $SelectGateKeeper)) $lf nick $me
  82.       }
  83.       elseif ($3 == *) {
  84.         sockwrite -n $sockname nick $me
  85.       }
  86.       elseif (($3 == S) && ($4 == :OK)) { sockwrite -n $sockname AUTH GateKeeperPassport S $+(:,$passform) $lf user * * * $me }
  87.     }
  88.     if ($2 == 422) { sockwrite -n $sockname JOIN $sock($sockname).mark %key }
  89.     else {
  90.       sockwrite -n mIRCServer $1-
  91.     }
  92.   }
  93. }
  94. on *:Sockread:mIRCServer:{
  95.   .var %read | .sockread %read | .tokenize 32 %read
  96.   echo @debug $sockname :: %read
  97.  
  98.   if ($1 == JOIN) {
  99.     if ($getChanSock($2)) { sockwrite -n $getChanSock($2) $1-   }
  100.     else {
  101.       sockmark irc7.Finds $2 | Sockwrite -n irc7.Finds FINDS $2-
  102.     }
  103.   }
  104.   elseif ($1 == PRIVMSG) {
  105.     if ($left($2,2) == $+($chr(37),$chr(35))) {
  106.       sockwrite -n $getChanSock($2) $1-
  107.     }
  108.     else {
  109.       sockwrite -n $getChanSock($comchan($2,1)) $1-
  110.     }
  111.   }
  112.   elseif ($1 == MODE) {
  113.     if ($left($2,2) == $+($chr(37),$chr(35))) {
  114.       sockwrite -n $getChanSock($2) $1-
  115.     }
  116.     else {
  117.       sockwrite -n irc7.* $1-
  118.     }
  119.   }
  120.   elseif ($1 == PONG)  { }
  121.   elseif ($left($2,2) == $+($chr(37),$chr(35))) {
  122.     sockwrite -n $getChanSock($2) $1-
  123.   }
  124.   else {
  125.     sockwrite -n $getChanSock($comchan($2,1)) $1-
  126.   }
  127. }
  128. alias getChanSock {
  129.   var %x $1
  130.   var %y 1
  131.   while (%y <= $sock(irc7.*,0)) {
  132.     if ($sock(irc7.*,%y).mark == $1) { return $sock(irc7.*,%y) }
  133.     inc %y
  134.   }
  135. }
  136. alias passform return $base($len(%ticket),10,16,8) $+ %ticket $+ $base($len(%profile),10,16,8) $+ %profile
  137. alias neko.hash {
  138.   if (*:GKSSP* iswm $1-) { var %x, %re = .*:GKSSP\\0.*\\0\\0.*\\0\\0(.*), %y = $regsub($1-,%re,,%x) | tokenize 32 $regml(1) }
  139.   var %m
  140.   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-))
  141.   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))
  142.   return $neko.hex2chr($neko.hex2esc($md5(&h2,1)))
  143. }
  144. alias neko.chr2dec return $regsubex($1,/(.{1})/g,$asc(\1) $+ $chr(32))
  145. alias neko.hex2chr return $regsubex($1,/([0-9A-Fa-f]{2})/g,$chr($base(\1,16,10)))
  146. alias neko.hex2bin return $regsubex($1,/([0-9A-Fa-f]{2})/g,$base(\1,16,10) $+ $chr(32))
  147. alias neko.hex2esc return $regsubex($1,/([0-9A-Fa-f]{2})/g,$hex2esc(\1))
  148. alias hex2esc return $replacex($1,5C,5C5C,00,5C30,0A,5C6E,0D,5C72,2C,5C63,09,5C74,20,5C62)
  149. 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)
  150. alias irc7Server return 24.73.210.118
  151. ;elseif ($4 != :OK) sockwrite $sockname $+($hget(GKSSP,AUTHS),$GKSSP($4,$sock($sockname).ip).challenge,$SelectGateKeeper,$lf)
  152. alias gkssp_form {
  153.   var %output,%hex,%x = $1,%i = 1
  154.   ;seq=7,5,3,1,11,9,15,13,17
  155.   if ($len($1) < 32) { %x = $+($str(0,$calc(32 - $len($ifmatch)),$ifmatch) }
  156.   %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)
  157.   return $__tochr($__hexbin(%x,NULL))
  158. }
  159. alias __tochr {
  160.   var %o,%i = 1
  161.   while (%i <= $numtok($1-,32)) {
  162.     %o = %o $+ $chr($gettok($1-,%i,32))
  163.     inc %i
  164.   }
  165.   return %o
  166. }
  167. alias __hexbin {
  168.   var %o,%i = 1,%hex,%switch
  169.   if (!$2) {
  170.     ;Excluding Escape Char
  171.     while (%i <= $len($1)) {
  172.       %o = %o $base($mid($1,%i,2),16,10)
  173.       inc %i 2
  174.     }
  175.     return %o
  176.   }
  177.   else {
  178.     ;Including Escaps Char (0=00,t=09,n=0A,r=0D,b=20,c=2C,\=5C)
  179.     while (%i <= $len($1)) {
  180.       %switch = $mid($1,%i,2)
  181.       if (%switch == 00) { %o = %o 92 48 }
  182.       elseif (%switch == 09) { %o = %o 92 116 }
  183.       elseif (%switch == 0A) { %o = %o 92 110 }
  184.       elseif (%switch == 0D) { %o = %o 92 114 }
  185.       elseif (%switch == 20) { %o = %o 92 98 }
  186.       elseif (%switch == 2C) { %o = %o 92 99 }
  187.       elseif (%switch == 5C) { %o = %o 92 92 }
  188.       else { %o = %o $base(%switch,16,10) }
  189.       inc %i 2
  190.     }
  191.     return %o
  192.   }
  193. }
  194.  
  195. alias SelectGateKeeper { return $gkssp_form($iif(%GATEKEEPER,$ifmatch,$binary_gate)) }
  196.  
  197.  
  198. alias binary_gate {
  199.   var %i = 1, %o
  200.   while (%i <= 16) {
  201.     %o = %o $+ $base($rand(0,3),10,2,2)
  202.     inc %i
  203.   }
  204.   return %o
  205. }
  206. alias hex_gate {
  207.   var %i = 1, %o
  208.   while (%i <= 16) {
  209.     %o = %o $+ $base($rand(0,255),10,16,2)
  210.     inc %i
  211.   }
  212.   return %o
  213. }
  214. ####EXO####
  215. alias msn.hash {
  216.   bset &h1 1 101 100 112 123 125 101 124 119 120 114 100 115 101 125 125 117 $str(54 $+ $chr(32),48) $msn.tobin($1-)
  217.   bset &h2 1 15 14 26 17 23 15 22 29 18 24 14 25 15 23 23 31 $str(92 $+ $chr(32),48) $msn.hex2bin($md5(&h1,1))
  218.   return $msn.unehex($md5(&h2,1))
  219. }
  220.  
  221. alias msn.tobin {
  222.   var %l 1, %r
  223.   while (%l <= $len($1)) {
  224.     if ($mid($1,%l,1) == \) {
  225.       inc %l
  226.       if ($mid($1,%l,1) == 0) %r = %r 0
  227.       elseif ($mid($1,%l,1) == t) %r = %r 9
  228.       elseif ($mid($1,%l,1) == n) %r = %r 10
  229.       elseif ($mid($1,%l,1) == r) %r = %r 13
  230.       elseif ($mid($1,%l,1) == b) %r = %r 32
  231.       elseif ($mid($1,%l,1) == c) %r = %r 44
  232.       elseif ($mid($1,%l,1) == \) %r = %r 92
  233.     }
  234.     else %r = %r $asc($mid($1,%l,1))
  235.     inc %l
  236.   }
  237.   return %r
  238. }
  239.  
  240.  
  241. alias msn.unehex {
  242.   var %l 1, %r, %x $remove($1-,$chr(32))
  243.  
  244.   while (%l <= $len(%x)) {
  245.     if ($mid(%x,%l,2) == 00) %r = %r $+ \0
  246.     elseif ($mid(%x,%l,2) == 0A) %r = %r $+ \n
  247.     elseif ($mid(%x,%l,2) == 0D) %r = %r $+ \r
  248.     elseif ($mid(%x,%l,2) == 2C) %r = %r $+ \c
  249.     elseif ($mid(%x,%l,2) == 09) %r = %r $+ \t
  250.     elseif ($mid(%x,%l,2) == 5C) %r = %r $+ \\
  251.     elseif ($mid(%x,%l,2) == 20) %r = %r $+ \b
  252.     else %r = %r $+ $chr($base($mid(%x,%l,2),16,10))
  253.     inc %l 2
  254.   }
  255.   return %r
  256. }
  257.  
  258. alias msn.hex2bin {
  259.   var %l 1, %r
  260.  
  261.   while (%l <= $len($1)) {
  262.     %r = %r $base($mid($1,%l,2),16,10)
  263.     inc %l 2
  264.   }
  265.   return %r
  266. }
  267.  
  268. 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)
  269.  
  270. ###EXO END###
Add Comment
Please, Sign In to add comment