Join the discussion

Write your take first — we'll ask for email only when you're ready to publish.

  • Hacker News
  • >Frankly, writing directly in emojissembly is a miserable, painful slog, lacking reasonable immediate values, arithmetic operations, or sane jump offsets. Therefore it is sensible to construct a loader that can simply build 8088 code in memory and jump to it.

    If you think that self-modifying loader is too easy, I recommend Tom7 take on printable x86:

    >This is like telling the waiter that you don’t eat poultry but eggs are okay, and then they bring you an egg, but that egg hatches into a chicken right after they bring it to you. Come on.

    https://tom7.org/abc/paper.pdf

  • For this to be reproducible the browser version is going to need to be specified.
  • I don't see why that would matter. Sure, it was noticed on a browser but ultimately this article is about overlap between x86 assembly and a subset of the unicode standard. The browser isn't really involved.
  • This is awesome, thanks! That was a very fun read.
  • Thanks for checking this out.

    I've uploaded all the binaries to GitHub if you're struggling with copy & paste. There's also a new example in Braille.

    https://github.com/dbalsom/executable_unicode

  • Anyone managed to reproduce it? I tried copying using Firefox on Wayland on Ubuntu GNULinux, then pasting on a Vim window. Nu luck, md5 didn't match.
  • Try copying from the links provided after each emoji block. That goes to my disassembler which should independently verify the md5.

    I think blogpspot unfortunately mucks with the emoji.

  • I cannot actually get the program working (which could easily be user error), but I could replicate the md5 by removing a newline vim inserted for me. If your file is 142 bytes, that's possibly what you're seeing
  • Waiting for someone to an emoji-x86 backend to LLVM/GCC.
  • Oh this is delightful!

    x86 assembly isn't something I'm familiar with (and I should really get back to $dayjob), but I will mention the existence of emoji-test.txt [1] in case somebody wants to try and mine more executable sequences. It might be worth paying attention to the minimally-qualified, unqualified and component lines, which can be added and removed semi freely. No idea if they actually correspond to useful byte sequences.

    [1]: https://www.unicode.org/Public/emoji/latest/emoji-test.txt