Live data from Hacker News

Research paper is also an executable x86 program [pdf]

tom7.org

11–20 of 30 posts

Re: Research paper is also an executable x86 program [pdf]

#12
post #4

Earlier quoted context omitted.

Yep, it has the telltale MZ header at the top. Either a DOS or windows executable. [1] The pdf appears to be a readable formatted version, to get the actual executable you’ll need the raw text sans newlines (as described in the paper) 1: https://en.m.wikipedia.org/wiki/DOS_MZ_executable

Trivia: all Windows EXEs run on DOS, but most of them just print something like "this program doesn't run on DOS" and terminate. There are exceptions, like REGEDIT.EXE of Windows 95.

And you can replace the default DOS stub file with `/STUB` in the MSVC linker. Different linkers can and do use different stub files, though MSVC and GCC happen to use the same stub file because the original author of the BFD code---that was eventually used by GNU ld to generate a PE file---had apparently no idea what it was...

    /* this next collection of data are mostly just characters.  It appears
       to be constant within the headers put on NT exes */
    filehdr_in->pe.dos_message[0]  = 0x0eba1f0e;
    filehdr_in->pe.dos_message[1]  = 0xcd09b400;
    filehdr_in->pe.dos_message[2]  = 0x4c01b821;
    /* ... snip ... */
    filehdr_in->pe.dos_message[13] = 0x0a0d0d2e;
    filehdr_in->pe.dos_message[14] = 0x24;
    filehdr_in->pe.dos_message[15] = 0x0;
    filehdr_in->pe.nt_signature = NT_SIGNATURE;
(Of course, this code dates back to 1996 or earlier so the existence of DOS stubs might not have been a common knowledge if you didn't do any Windows programming.)

On the other hand, lld uses a functionally same but slightly different stub file [1] because it prints no newlines.

[1] https://github.com/llvm/llvm-project/blob/d7642b2/lld/COFF/W...

Re: Research paper is also an executable x86 program [pdf]

#18

What does it do when executed?

it plays music specified by a printable format given as an argument. By default it plays a default song (i didn't bother to see what it was), and 3 other songs.

Author described as 'a bad organ' sound.

It's not much of a slog, but i did zone out around the 16th part, before i could get to the loops and not having access to the asm INT opcode

Post reply on HN