Jump to content
chain

YMSG 17 Chat Room Login

Recommended Posts

  • Administrators

I posted up a YMSG generic style login, and since then something happened that has prevented it from sending text to room. Not to mention it had typos (sorry).
I've made a new connection using YMSG 17 protocol, Yahoos latest protocol.
Theres Tons that can be done with this, its basically barebones login.
With the packets coming on login there are buddy lists, ignore lists, alias name lists if you have them, add request lists as well as voice ticket when you join a room to enable the microphone.
I use this login for a trivia bot on yahoo.
The Problem you might have entering a room is knowing the room name as well as the 4 digit identifier for the category or whatever its for.
I have another snippet posted on hawkee to get a yahoo rooms list, using that snippet with this one should work to get you a rooms list from the american yahoo server.

or go here for yahoo real time list http://insider.msg.yahoo.com/ycontent/?chatcat

Have Fun. 🙂

 

;====TYPE /login
:====IF YOU HAVEN'T ALREADY ENTERED A NICK/PASS/ROOM/ROOM ID
;====THE POPUPS WILL SET THEM ALL AS VAIABLES.
;====I HAVE LEFT MOST LOGIN INFORMATION SET AS VARIABLES, COOKIES PASSWORD ETC.
;====THE INTENTION WAS ONLY FOR PPL INTERESTED IN SCRIPTING mIRC/YAHOO CHAT.
;====THERE ARE MORE COOKIES ANS ENCRYPTED KEYS I DID NOT SAVE LIKE VOICE TICKET AND OTHER COOKIES.
;====THERES INFORMATION SUCH AS ALIAS NAMES ACCOUNT NAME IGNORE LIST BUDDY LIST ETC ALL IGNORED BY THIS SCRIPT ON SIGN IN.
;====HEY MAN ITS JUST A SNIPPET, ANYBODY HAVE A COOL SMILEY ADDON OR WANT TO HELP ME WITH A VOICE CONNECTION?
alias -l tok_ker return $+(GET /config/pwtoken_get?src=ymsgr&login=,%y.id,&passwd=,%y.pw,&chal=,%y_chlng,$crlf,$crlf)
alias -l git_aut return $+(GET /config/pwtoken_login?src=ymsgr&token=,$remove(%y_tokn,$chr(10)),$crlf,$crlf)
alias -l shrt_pk return $+(1À€,%y.id,À€)
alias -l case return $bvar(&ysl,12)
alias -l d_bug return 9 $sockname $bvar(&ysl,1,20) $bvar(&ysl,18,$bvar(&ysl,0).text).text
alias -l YMSG_head return Y M S G 0 17 0 0 0 $chr($len($shrt_pk)) 0 W 0 0 0 0 0 0 0 0
alias -l rm.wind if ($window(@ $+ %room) == $null) { //window -eil15S @ $+ %Y_room yroompops.txt }
alias -l ymsg_17 $ypack(T,$+(1,%y.id,0,%y.id,277,%y_ck,278,%t_ck,307,$ym64,244,$y.rand,2,%y.id,2198us135ym9.0.0.2162))
alias -l prjn $ypack(–,$+(109À€,%y.id,À€1À€,%y.id,À€6À€abcdeÀ€98À€usÀ€135À€ym9.0.0.2162À€))
alias -l jrm { $rm.wind | $ypack(˜,$+(1À€,%y.id,À€104À€,%y_room,À€129À€,%rm2,À€62À€2À€24À€1188648944À€)) }
alias -l striptags { var %x,%y = $regsub($1-,/<[^>]+>/g,$null,%x) | return $striphex(%x) } 
alias -l striphex { var %z,%a = $regsub($1-,/[/[/#0-9A-Fa-fm]{9}/g,$null,%z) | return %z }
alias -l aut_sox sockopen -e $1 login.yahoo.com 443
alias -l y.rand return $rand(16777219,60970879)
on *:input:@ $+ %room: { if ($left($1,1) != /) && ($window(@ $+ %y_room) != $null) { /spk $1- } | echo @ $+ %y_room %y.id $+ : $1- }
alias spk { %text = $1- | $ypack(¨,$+(1À€,%y.id,À€104À€,%y_room,À€117À€<font INF ID:FU2Booters:!M PROT:YMSG-17\mIRC VER: $+ $version $+ ></font><font face="Arial">[1m[#000000m,%text,</font>À€124À€1À€)) }
alias prejn prjn | jrm
alias login {
  if (!%Y.id) { %y.id = $?="Enter Your Yahoo Nickname." }
  if (!%Y.pw) { %Y.pw = $?*="Enter Your Yahoo Password." }
  if (!%Y_room) { set %y_room $?="Yahoo Room To Join." }
  if (!%rm2) { set %rm2 $?="ROOM IDENTIFIER To Join." }
  sockopen yh_chat_srv 68.180.217. $+ $rand(6,34) 80 
}
on 1:sockclose:yh_get_cookie: { ymsg_17 }
on 1:sockread:yh_*: {
  if ($sockerr > 0) return 
  sockread -f $sock($sockname).rq &ysl 
  var %len $bvar(&ysl,0).text 
  breplace &ysl 0 160
  if ($sockname == yh_chat_srv) { 
    if ($case = 87) { 
      %y_chlng = $remove($gettok($bvar(&ysl,21,%len).text,$calc($numtok($bvar(&ysl,21,%len).text,192) - 1),192),€) 
      %y_ssid = $bvar(&ysl,18,3).text
      echo -s 12,5Got Challenge 8:)
      $aut_sox(yh_get_tok)
      halt
    }
    if ($case = 241) { echo -a You are now logged onto Yahoo! Chat :) 1,8 Type /prejn to go to the room. | halt }
    if ($case = 150) { echo -a Ready To Join. | halt }
    if ($case = 168) { aline -p @ $+ %y_room 3 $+ $remove($gettok($bvar(&ysl,1,%len).text,4,192),€) 9 $+ $ansi2mirc($striptags($remove($gettok($bvar(&ysl,1,%len).text,6,192),€)))) | halt }
    if ($case = 152) && (admin isin $gettok($bvar(&ysl,1,%len).text,$count($bvar(&ysl,1,%len).text,À),192)) { $list_room($bvar(&ysl,21,%len).text) | halt }
    if ($case = 152) { aline -ln @ $+ %y_room $remove($gettok($bvar(&ysl,1,%len).text,8,192),€) | aline -p @ $+ %y_room 12 $remove($gettok($bvar(&ysl,1,%len).text,8,192),€) Joined # $+ %y_room $+ . | halt }
    if ($case = 155) { dline -l @ $+ %Y_room $fline(@ $+ %Y_room,$remove($gettok($bvar(&ysl,1,%len).text,6,192),€),1,1) | aline -p @ $+ %y_room 2 $remove($gettok($bvar(&ysl,1,%len).text,6,192),€) Parted # $+ %y_room $+ . | halt }
    if ($case = 85) { halt }
  }   
  if ($sockname == yh_get_tok) { 
    var %grab_tok $bvar(&ysl,1,%len).text
    %y_tokn = $remove($gettok(%grab_tok,2,10),$chr(13),ymsgr=) | %y_prtnr_id = $remove($gettok(%grab_tok,3,10),$chr(13),partnerid==)
    echo 12 -s Got Token :) 
    $aut_sox(yh_get_cookie)
    halt
  }
  if ($sockname == yh_get_cookie) {
    if (crumb= isin $gettok($bvar(&ysl,1,%len).text,2,10)) { 
      %Y_crumb = $gettok($remove($gettok($bvar(&ysl,1,%len).text,2,10),crumb=,$chr(13),$chr(10)),1,32)
      %Y_ck = $gettok($remove($gettok($bvar(&ysl,1,%len).text,3,10),Y=,$chr(13),$chr(10),$chr(59)),1,32)
      %T_ck = $gettok($remove($gettok($bvar(&ysl,1,%len).text,4,10),T=,$chr(13),$chr(10),$chr(59)),1,32)
    }
  }
  if ($bfind(&ysl,1,89 77 83 71)) { echo -s $replace($d_bug },160,) }
}
on 1:sockopen:yh_*: {
  if ($sockname == yh_get_cookie) { sockwrite -n yh_get_cookie $git_aut }
  if ($sockname == yh_get_tok) { sockwrite -n yh_get_tok $tok_ker }
  if ($sockname == yh_chat_srv) { 
    bset &pcktB 1 Y M S G 0 17 0 0 0 $chr($len($shrt_pk)) 0 W 0 0 0 0 0 0 0 0
    bwrite &Bpack 1 -1 &pcktB 
    bwrite &Bpack -1 -1 $shrt_pk 
    bread &Bpack 1 $calc($len($shrt_pk) + 20) &packB
    sockwrite yh_chat_srv &packB
    .remove &Bpack
  }
}
alias -l yahoo.size {
  var %a = $gettok($calc($len($1-) / 256),1,46)
  var %b = $calc($len($1-) - $calc(%a * 256))
  return %a %b
}
alias -l ypack {
  bset &head 1 Y M S G 0 17 0 0 $yahoo.size($2-) 0 $1 0 0 0 12 0
  bwrite &packt 1 -1 &head | bwrite &packt -1 -1 %y_ssid | bwrite &packt -1 -1 $2-
  bread &packt 1 $calc($len($2-) + 20)) &ysend
  sockwrite yh_chat_srv &ysend 
  .remove &packt 
}
alias -l Ym64 {
  var %offset = $md5(%y_crumb $+ %Y_chlng)
  var %inspc = 2
  :loop
  var %spcd = %spcd $chr($base($right($left(%offset,%inspc),2),16,10))
  if ($len(%offset) = %inspc) { return $replace($encode($remove(%spcd,$chr(32)) ,m),+,.,/,_,=,-) | halt }
  inc %inspc 2
  goto loop
}
alias -l list_room {
  var %list $remove($1-,€)
  if (Captcha isin $gettok(%list,6,192)) { echo -a $gettok(%list,6,192) | halt }
  var %num_nms $numtok(%list,192)
  var %sum_num 1
  while (%sum_num <= %num_nms) {
    if (110 isin $gettok(%list,%sum_num,192)) { aline -nl @ $+ %y_room  $gettok(%list,$calc(%sum_num - 1),192) }
    inc %sum_num
  }
}

 

Link to comment
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

Loading...


×
×
  • Create New...