[FFmpeg-devel] Realmedia patch

Måns Rullgård mans
Sat Aug 23 00:00:51 CEST 2008


Luca Abeni <lucabe72 at email.it> writes:

> Hi Ronald,
>
> Ronald S. Bultje wrote:
> [...]
>>> Now, the scary thing is that "[28/03/2003:22:50:23 00:00]" is not
>>> just a random time, but seems to be the only value that allows the
>>> stream to work... If I change the date or the time, the stream does
>>> not start.
>>> I do not feel too confortable with this... Has anyone any idea on
>>> what this "PlayerStarttime" is and why it has to be set to this
>>> value? Ah, the joy of proprietary undocumented protocols... ;-)
>> 
>> Most likely, the ClientChallenge and PlayerStarttime depend on each
>> other. For example, the ClientChallenge may be a cipher of some
>> combination of all required inputs (PlayerStarttime, CompanyID and
>> GUID) plus some (server? client?) constants.
>
> This is possible: after some other tests, I discovered that if I
> change one of the values the stream does not play...
> But google kindly provided me with another set of good values:
> 	"ClientChallenge: 629618d70bcb9f4c70c8a522236656ec\r\n"

Looks like a hex representation of something, possibly an MD5 hash.

> 	"PlayerStarttime: [20/03/2003:20:32:38 00:00]\r\n"
> 	"CompanyID: t4mvQZAQ7LF3Jm7mVNmwjA==\r\n"

Looks like base64: b7 89 af 41 90 10 ec b1 77 26 6e e6 54 d9 b0 8c

> 	"GUID: 00000000-0000-0000-0000-000000000000\r\n"

Zeros are nice.

> Changing the values like this, the stream works again...
>
> So, we just need to understand what's the relation between
> "ClientChallenge", "PlayerStarttime", "CompanyID", and "GUID".
> That is: how can we compute a valid ClientChallenge (whatever
> it is) based on the other 3 values?

A nice little RE exercise for someone...

-- 
M?ns Rullg?rd
mans at mansr.com




More information about the ffmpeg-devel mailing list