FOSDEM: Gnash Developer Deciphers RTMP
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.
Comments
comments powered by DisqusSubscribe to our Linux Newsletters
Find Linux and Open Source Jobs
Subscribe to our ADMIN Newsletters
Support Our Work
Linux Magazine content is made possible with support from readers like you. Please consider contributing when you’ve found an article to be beneficial.

News
-
System76 Releases COSMIC Alpha 7
With scores of bug fixes and a really cool workspaces feature, COSMIC is looking to soon migrate from alpha to beta.
-
OpenMandriva Lx 6.0 Available for Installation
The latest release of OpenMandriva has arrived with a new kernel, an updated Plasma desktop, and a server edition.
-
TrueNAS 25.04 Arrives with Thousands of Changes
One of the most popular Linux-based NAS solutions has rolled out the latest edition, based on Ubuntu 25.04.
-
Fedora 42 Available with Two New Spins
The latest release from the Fedora Project includes the usual updates, a new kernel, an official KDE Plasma spin, and a new System76 spin.
-
So Long, ArcoLinux
The ArcoLinux distribution is the latest Linux distribution to shut down.
-
What Open Source Pros Look for in a Job Role
Learn what professionals in technical and non-technical roles say is most important when seeking a new position.
-
Asahi Linux Runs into Issues with M4 Support
Due to Apple Silicon changes, the Asahi Linux project is at odds with adding support for the M4 chips.
-
Plasma 6.3.4 Now Available
Although not a major release, Plasma 6.3.4 does fix some bugs and offer a subtle change for the Plasma sidebar.
-
Linux Kernel 6.15 First Release Candidate Now Available
Linux Torvalds has announced that the release candidate for the final release of the Linux 6.15 series is now available.
-
Akamai Will Host kernel.org
The organization dedicated to cloud-based solutions has agreed to host kernel.org to deliver long-term stability for the development team.
You are right
Actionscript 3 is the most current version
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