48656C6C6F2C20776F726C64210A

This has the lovely property of being gibberish to both those who do, and those who do not know Intel assembly.

The clever trick here is to place a string somewhere that can be executed by a CPU but just before that string place a call to somewhere else, and in that call the return address (the next instruction after the call, or here also the string) is popped and used as the address to print via write.

The assembly might be less confusing than a context-free disassembly.

You may want to know how to actually build this file into something. Porting it to some other operating system or architecture will take more work.

On a somewhat related note, dc(1) can act as a hex decoder.

Or worse.

tags #asm