The Boston Diaries

The ongoing saga of a programmer who doesn't live in Boston, nor does he even like Boston, but yet named his weblog/journal “The Boston Diaries.”

Go figure.

Friday, August 24, 2001

Polyglut Assembly Language Programming

The general idea behind an architecture spanning shellcode is trying to come up with a sequence of bytes that would execute a jump instruction on one architecture while executing a nop-like instruction on another architecture. That way we can branch to architecture specific code depending on the platform our code is running on.

Architecture Spanning Shellcode

I've been reading Phrack since the early 90s and I must say, the technical articles are getting better (but the publishing frequency could use some work). I've heard of polyglot programs, in which you attempt to write a single source file that can compile under multiple language compilers and/or assemblers. The trick to that is to find a combination of comments and statements to weed yourself to the appropriate code.

I've never heard of this being done, but it is an extention of the polyglot program idea—only here, you have to find a sequence of instructions that do nothing on one CPU while implementing a jump instruction for another CPU. And in this article, they manage to write common assembly code for the Intel x86, MIPS, Sparc and PCC CPUs. Very impressive.

Okay, so the goal is to write exploit code for multiple platforms, but as a purely intellectual exercise, it's pretty neat!

Obligatory Picture

[“I am NOT a number, I am … a Q-CODE!”]

Obligatory Contact Info

Obligatory Feeds

Obligatory Links

Obligatory Miscellaneous

You have my permission to link freely to any entry here. Go ahead, I won't bite. I promise.

The dates are the permanent links to that day's entries (or entry, if there is only one entry). The titles are the permanent links to that entry only. The format for the links are simple: Start with the base link for this site:, then add the date you are interested in, say 2000/08/01, so that would make the final URL:

You can also specify the entire month by leaving off the day portion. You can even select an arbitrary portion of time.

You may also note subtle shading of the links and that's intentional: the “closer” the link is (relative to the page) the “brighter” it appears. It's an experiment in using color shading to denote the distance a link is from here. If you don't notice it, don't worry; it's not all that important.

It is assumed that every brand name, slogan, corporate name, symbol, design element, et cetera mentioned in these pages is a protected and/or trademarked entity, the sole property of its owner(s), and acknowledgement of this status is implied.

Copyright © 1999-2024 by Sean Conner. All Rights Reserved.