View Single Post
  #240  
Old 08-20-2014, 05:58 PM
denobis denobis is offline
Senior Member
 
Join Date: Sep 2013
Posts: 568
denobis is on a distinguished road
Default

Re: Customized rtmpdump binaries with patch file


I've added the site 3dbuzz.com to the c-sources. If you want to make a pacth to update the rtmpdump here the notes:

1- the site uses tea-decryption to make a secure response but not in the usual way. The token is received under name "r2"

2- before derypting it you must calculate it through a trivial conversions to make it a hex number.

So the code were something like

1- getting r2 property and calculating it, something like (text=r2 property)

Code:
dbufft(char *text)
		{		  		  		  		  		 
		  int local8,local3,r2size;		  
	 	  char *chars = "ABCDEFGHIJKLMNOPQRSTUVWXYZABCDEFGHIJKLMabcdefghijklmnopqrstuvwxyzabcdefghijklm";	 	  
		  char *local6 = text;
		  r2size = strlen(local6);		  
		  char local2[r2size];	
		  
		  local3 = 0; 
		 
	 	 while (local3 < r2size) 
	 	    {		     
	 	    local8 = local6[local3];
		    							     				     
		    char *b = strchr (chars, local8);
		    int pos = pos ? b - chars : -1; 
		    		    		   		    		    
	 	    if (pos>-1) 
		      {local8=chars[pos + 13];}
		      
		    char local52[2];
		    memcpy( local52, &local8, 1 );
		    local2[local3]=local52[0];
						    
	 	    local3++;
	 	   } 
		    
		memcpy(text, local2, r2size);
                }
2- apply it the DecodeTea algorithm and send the response

Code:
       
else 	if (strstr(host, "3dbuzz.com") || strstr(pageUrl, "3dbuzz.com"))
	         {
                   AVal av_rr = AVC("rr");
		   AVal av_re = AVC(decrypted);
		   SAVC(av_rr);
		   
		   enc = pbuf;                 
                   enc = AMF_EncodeString(enc, pend, &av_rr);
		   enc = AMF_EncodeNumber(enc, pend, 0);
                   *enc++ = AMF_NULL;
                   enc = AMF_EncodeString(enc, pend, &av_re);
                   av_Command.av_val = pbuf;
                   av_Command.av_len = enc - pbuf;
 		   SendInvoke(r, &av_Command, FALSE);      
		   RTMP_SendCreateStream(r);
                  }
i don't know how to make patches, so you're invited.
Reply With Quote