Monthly Archives: August 2006

Mounting An Executable

I was studying the Executable & Linking Format (ELF) recently. I realized how hierarchically it is organized. Nowadays, whenever I think of something hierarchical, for some reason, I think of cramming it into a filesystem structure via FUSE. Imagine mounting an executable file as a filesystem. One directory could have a list of exported function names. When reading those files, it would automatically disassemble that section of the file.


Executable

I’m working off of the ‘readelf -a’ command here. There would be a directory at the top level called sections/ and would contain

  .interp/
  .hash/
  .dynsym/
  .dynstr/

And so on. It might be a little tricky because those names have dots in front of them. Another directory can list shared libraries and have symbolic links to the correct libraries. Another directory will list the exported, public symbols. Opening these files would disassemble the functions for display in whatever text editor you want. Of course, not all of the interesting stuff is found at the public entry points, so it will be necessary to employ heuristics to locate other, private function entry points.

For bonus points, make the filesystem writable. This will allow annotations in the disassembled source. This will probably require that a “work” copy of the binary to be stored in the user’s home directory.

Anti-Spam Upgrade

I just upgraded my principle blog anti-spam measure, WP-HashCash, to the latest version. I know that some readers have been blocked by this when trying to comment. In fact, I was even blocked recently when I tried to post a comment. Please let me know if WP-HashCash gives you any trouble.

I think that WP-HashCash uses a great idea to stop spambots by issuing a programmatic challenge to the client before accepting a client’s comment. This sort of thing has been proposed as a solution for email spam but would not be tractable without modifying the fundamental email protocols. I have never seen this blog nailed by spambots so I can only assume that the plugin is doing its job, which I realize may not be very sound reasoning.

Superfluous Source

There is some news today about how Real will be releasing a Linux player with support for Microsoft’s Windows Media formats. For example:

Not mentioned: The fact that Linux multimedia players have already supported these formats for years, sometimes through closed source x86-only binary modules, but increasingly with portable, open source modules. I know, the difference is that Real’s player will have more licensed legitimacy. These news article make it sound as though there will be open source code to decode the Windows Media formats. I sincerely doubt that that’s the case (though if it is true, anyone who is still working to figure out Windows Media Video v8 J-frame coding or Windows Media Audio v3: you can stop now).

I’m still frustrated at Real for a plethora of reasons. One of the most obnoxious things they ever did was send out press releases mentioning something about doing something with open source. This would later manifest as the Helix Player (which, the one time I tried it on an out-of-the-box Fedora Core distro, couldn’t even play a PCM WAV file). But the announcements caused the mailing lists of open source multimedia projects to become inundated with impatient queries about why we didn’t have full Real support since “Real open sourced everything.”

Old Docs/New Management

Thanks to MultimediaWiki user Dashcloud who has been working on digging up old game-oriented multimedia documents authored by one Valery V. Anisimovsky over the years and entering them into the MultimediaWiki. Valery’s Game Audio Player (GAP) and associated website no longer seem to be around, nor is Valery. Under such circumstances, I have no qualms about consolidating the old data into the Wiki so that it may live on, and also be updated as necessary. Though if anyone has contact with Valery these days, please pass this post along.