Research paper is also an executable x86 program [pdf]
tom7.org
tom7.org
It's good to see the principle can be expanded to EXEs, I'll have to dig into this some more.
Wish I had come up with this compiler, great stuff.
https://www.blackhat.com/presentations/bh-europe-06/bh-eu-06...
https://archive.org/details/Fabrice_Desclaux_and_Kostya_Kort...
The illustrations and charts were actual examples of his algorithm, being executed at render time.
x * (a - b) === x * a - x * b
and this applies even when losing the top half.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)
There are exceptions, like REGEDIT.EXE of Windows 95.
/* 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...
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