Porting Doom to a payment terminal

For the past half a year or so I have been playing around with a specific type of payment terminal, the VX820 from Verifone.

I randomly bought a couple of second-hand devices, and found out that they are wonderful pieces of hardware with lots of potential for alternative uses. I figured that a fun goal for myself would be to port Doom to it, which would nicely showcase the device’s unexpected computational power.

This is not even my complete collection...

About half a year later, I have a ton of notes, hacky scripts, patched binaries, and a working version of Doom. To achieve this, I made use of a previously discovered and mitigated bootloader vulnerability (credits and link below), which was apparently not patched on my devices. The full background story, including some high-level details of the exploit approach were described in my talk at May Contain Hackers (MCH2022) (video, slides).

Talk on Verifone POS hacking at May Contain Hackers (MCH2022).

Scripts and reference documentation (2025 update)

Some time has passed and these devices seem to be getting retired. Hence, I’ve published the exploit details and scripts: https://github.com/ThomasRinsma/vx_pos_hacks

There has been some interest in generalizing the exploit for other bootloader + OS version combinations, feel free to submit a PR.

Videos

Game of Life and Doom running on the VX820:

Photos

For those interested in what’s inside.