Advertisement
Guest User

Untitled

a guest
Feb 6th, 2013
206
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
mIRC 4.68 KB | None | 0 0
  1. alias -l eval_ascii {
  2.   bset &char 1 $1
  3.   return &char
  4. }
  5.  
  6. alias -l codepage {
  7.   ; cp1251 >>> utf8
  8.   bset -t $+(&,$1,::,codepage) 1 $replace($bvar($1,1-).text,$chr(192),А,$chr(193),Б,$chr(194),В,$chr(195),Г,$chr(196),Д,$chr(197),Е,$chr(168),Ё,$chr(198),Ж,$chr(199),З,$chr(200),И,$chr(201),Й,$chr(202),К,$chr(203),Л,$chr(204),М,$chr(205),Н,$chr(206),О,$chr(207),П,$chr(208),Р,$chr(209),С,$chr(210),Т,$chr(211),У,$chr(212),Ф,$chr(213),Х,$chr(214),Ц,$chr(215),Ч,$chr(216),Ш,$chr(217),Щ,$chr(218),Ъ,$chr(219),Ы,$chr(220),Ь,$chr(221),Э,$chr(222),Ю,$chr(223),Я,$chr(224),а,$chr(225),б,$chr(226),в,$chr(227),г,$chr(228),д,$chr(229),е,$chr(184),ё,$chr(230),ж,$chr(231),з,$chr(232),и,$chr(233),й,$chr(234),к,$chr(235),л,$chr(236),м,$chr(237),н,$chr(238),о,$chr(239),п,$chr(240),р,$chr(241),с,$chr(242),т,$chr(243),у,$chr(244),ф,$chr(245),х,$chr(246),ц,$chr(247),ч,$chr(248),ш,$chr(249),щ,$chr(250),ъ,$chr(251),ы,$chr(252),ь,$chr(253),э,$chr(254),ю,$chr(255))
  9.  
  10.   return $+(&,$1,::,codepage)
  11. }
  12. on *:START: {
  13.   if ($hget(socks)) hfree $v1
  14.   hmake socks
  15.   hadd socks username ergjdsoig
  16.   hadd socks password 5h64yhgdf
  17.   socklisten -d 127.0.0.1 socks 7776
  18. }
  19. on *:SOCKLISTEN:socks*: {
  20.   if (socks.aux.* iswm $sockname) {
  21.     var %active = $replace($sockname,aux,active)
  22.     var %listen = $replace($sockname,aux,listen)
  23.     sockaccept %active
  24.     sockmark %active %listen
  25.     sockwrite %listen $eval_ascii(5 0 0 1 $replace($sock(%active).ip,.,$chr(32)) $replace($gettok($longip($sock(%active).bindport),3-,46),.,$chr(32)))
  26.   }
  27.   else {
  28.     hinc socks sockets
  29.     var %sock = $+(socks.listen.,$hget(socks,sockets))
  30.     sockaccept %sock
  31.     sockmark %sock $replace(%sock,listen,active) H
  32.   }
  33. }
  34. on *:SOCKOPEN:socks.*: {
  35.   tokenize 32 $sock($sockname).mark
  36.   if (socks.active.* iswm $sockname) {
  37.     if ($sockerr) sockwrite $1 $eval_ascii(5 4)
  38.     else sockwrite $1 $eval_ascii(5 0)
  39.   }
  40. }
  41. on *:SOCKREAD:socks.*: {
  42.   if ($sockerr) return
  43.   tokenize 32 $sock($sockname).mark
  44.   if ($sock($1).sq > 8192) return
  45.   sockread $+(&,$sockname)
  46.   if ($sockbr = 0) return
  47.   if (socks.listen.* iswm $sockname) {
  48.     if ($2 == H) {
  49.       if (2 isin $bvar($+(&,$sockname),3,$bvar($+(&,$sockname),2))) sockwrite $sockname $eval_ascii(5 2)
  50.       else sockwrite $sockname $eval_ascii(5 0)
  51.       if ($hget(socks,username)) || ($hget(socks,password)) sockmark $sockname $1 A
  52.       else sockmark $sockname $1 R
  53.     }
  54.     elseif ($2 == A) {
  55.       var %access = $false
  56.       if ($bvar($+(&,$sockname),1) == 1) {
  57.         if ($hget(socks,username) == $bvar($+(&,$sockname),3,$bvar($+(&,$sockname),2,1)).text) && ($hget(socks,password) == $bvar($+(&,$sockname),$calc(4 + $bvar($+(&,$sockname),2,1)),$calc(3 + $bvar($+(&,$sockname),2,1))).text) var %access = $true
  58.         sockwrite $sockname $eval_ascii(1 0)
  59.         sockmark $sockname $1 R
  60.       }
  61.       if (%access == $false) sockclose $sockname    
  62.     }
  63.     elseif ($2 == R) {
  64.       if ($bvar($+(&,$sockname),1) == 5) {
  65.         var %ip, %port
  66.         if ($bvar($+(&,$sockname),4) == 1) {
  67.           var %ip = $replace($bvar($+(&,$sockname),5,4),$chr(32),.)
  68.           var %port = $longip($replace(0 0 $bvar($+(&,$sockname),9,2),$chr(32),.))
  69.         }
  70.         elseif ($bvar($+(&,$sockname),4) == 3) {
  71.           var %i = 6 + $bvar($+(&,$sockname),5)
  72.           var %ip = $bvar($+(&,$sockname),6,$bvar($+(&,$sockname),5)).text
  73.           var %port = $longip($replace(0 0 $bvar($+(&,$sockname),%i) $bvar($+(&,$sockname),$calc(%i + 1)),$chr(32),.))
  74.         }
  75.         else {
  76.           sockwrite $sockname $eval_ascii(5 8 0 1 0 0 0 0 0 0)
  77.           sockclose $sockname
  78.           return
  79.         }
  80.         if ($bvar($+(&,$sockname),2) == 1) {
  81.           sockopen $1 %ip %port
  82.           sockmark $1 $sockname
  83.           sockmark $sockname $1
  84.         }  
  85.         elseif ($bvar($+(&,$sockname),2) == 2) {
  86.           var %port = 1024, %sock = $replace($1,active,aux)
  87.           while (!$portfree(%port)) inc %port
  88.           socklisten %sock %port
  89.           sockwrite $sockname $eval_ascii(5 0 0 1 $replace($sock(socks).bindip,.,$chr(32)) $replace($gettok($longip(%port),3-,46),.,$chr(32)))
  90.           sockmark $sockname %sock
  91.         }
  92.         else {
  93.           sockwrite $sockname $eval_ascii(5 7 0 1 0 0 0 0 0 0)
  94.           sockclose $sockname
  95.         }
  96.       }
  97.       else sockclose $sockname
  98.     }
  99.     else {
  100.       if ($sock($1)) sockwrite $1 $codepage($+(&,$sockname))
  101.       else sockclose $sockname
  102.     }
  103.   }
  104.   elseif (socks.active.* iswm $sockname) {
  105.     if ($sock($1)) sockwrite $1 $codepage($+(&,$sockname))
  106.     else sockclose $sockname
  107.   }
  108. }
  109. on *:SOCKCLOSE:socks.*: {
  110.   sockclose $+(socks.*.,$gettok($sockname,3,46))
  111. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement