Print this page. Recommend
Slashdot it! Delicious Share on Facebook Tweet! Digg

FOSDEM: Gnash Developer Deciphers RTMP

Feb 10, 2009

Rob Savoye has been engaged in numerous projects, but in his work on Gnash, a free implementation of the Adobe Flash Player, he found a hard nut to crack: how to decipher the protocol details of the Real Time Messaging Protocol (RTMP) it uses. He has now presented his solution at the FOSDEM '09 conference in Belgium.

Savoye, developer with the Open Media Now project funded by Red Hat founder Bob Young, has worked on compilers and debuggers in the past. With Gnash he's been involved in enhancing support for ActionScript 9. Version 8 of the software already serves as a plug-in for Firefox and Konqueror, according to Savoye.

For him, reverse-engineering RTMP for Gnash has not least of all been a mental challenge. He would stare at hex code long enough until a revelation hit him, he said with a smile. He gave an example of his process: at first he searched for certain byte sequences of ASCII code in a collection of as many sample artifacts as possible. He could then determine the boundaries of other data fields and tried to locate a protocol data header. Based on his experience he could then often establish field lengths and checksums for the RTMP protocol.

Numbers are almost always coded in big-endian order in network protocols and checksums rarely consist of anything other than a simple sum or result of a cyclic redundancy check (CRC), according to Savoye. He wrote a log of test code to check his assumptions and warns prospective reverse engineers that they'd have to throw away much of their assumptions if proved false.

Not least of all he cautions imitators about possible legal implications: simple disassembling of proprietary software can lead to claims from respective originators. He therefore recommended involving legal counsel as early as possible in the process. It's also useful, according to Savoye, when a developer reimplements the code, to extract the specification from the network packet and leave just the protocol description for another independent developer in his implementation. Apparently the newest YouTube videos are already viewable using the current Gnash version based on Savoye's work.

(Nils Magnus)

Comments

You are right

Nils Magnus Feb 10, 2009 6:34pm GMT

You are completely right, I lost that in translation: The even more precise text reads: Gnash supports most SWF v7 features and some SWF v8 and v9.

Actionscript 3 is the most current version

faisal Feb 10, 2009 4:30pm GMT

"....enhancing support for ActionScript 9."

You mean Adobe Flash 9 right? I am an Adobe Flex developer and as per my knowledge and experience Actionscript 3 is the latest version.

Thanks
Faisal

Print this page. Recommend
Slashdot it! Delicious Share on Facebook Tweet! Digg
Related Articles
Gnash Flow: LinuxFund.org Supports RTMP for Gnash
FOSDEM: Enterprise Linux for all, thanks to Centos
FOSDEM: Fennec Beta Scheduled for End of February
FOSDEM Video: Google Summer of Code - Some Insights
FOSDEM 2008: Jam-packed program, free video stream
FOSDEM Video: Micro Distro Summit
Special Linux Magazine 3 for 1 Offer

Get 3 Issues + 3 DVDs for the price of a single issue!

Let Linux Magazine's hands-on, technical articles guide you in your daily Linux use. Check out bonus DVDs like Ubuntu, SUSE, or Fedora and save the download.

Only available for a limited time. Don't miss out!

more...

 

In the US and Canada, Linux Magazine is known as Linux Pro Magazine.
Entire contents © 2009 [Linux New Media USA, LLC]
Linux New Media web sites:
North America: [Linux Pro Magazine]
UK/Worldwide: [Linux Magazine]
Germany: [Linux-Magazin] [LinuxUser] [EasyLinux] [Linux-Community] [Linux Technical Review]
Eastern Europe: [Linux Magazine Poland] [Linux Community Poland] [Open Source DVD Poland]
International: [Linux Magazine Brazil] [EasyLinux Brazil] [Linux Magazine Spanish]
Corporate: [Linux New Media AG]