Skip to content
0:00 / 0:00

#pagefault#weirdmachine#x86

WOOT '13 - The Page-Fault Weird Machine: Lessons in Instruction-less Computation

USENIX

42K subscribers • 5 videos on Hallway

YouTube
  • Recommended by 2 people: 2 in engineering communities.
  • Presented by Julian Bangert, Dartmouth College
  • Linked in the descriptionPaper on usenix.org

Advanced. Deep dive for people who know the field.

1.5K views13 years ago2 recommendations

Systems programmingSecurityOperating systemsCPUs and computer architectureExploits and vulnerabilities

Julian Bangert explains how to build a Turing-complete execution environment on x86 using only page faults and double faults without executing CPU instructions.

The Page-Fault Weird Machine: Lessons in Instruction-less Computation Julian Bangert, Sergey Bratus, Rebecca Shapiro, and Sean W. Smith, Dartmouth College Trust Analysis, i.e. determining that a system will not execute some class of computations, typically assumes that all computation is captured by an instruction trace. We show that powerful computation on x86 processors is possible without executing any CPU instructions. We demonstrate a Turing-complete execution environment driven solely by the IA32 architecture's interrupt handling and memory translation tables, in which the processor is trapped in a series of page faults and double faults, without ever successfully dispatching any instructions. The "hard-wired" logic of handling these faults is used to perform arithmetic and logic primitives, as well as memory reads and writes. This mechanism can also perform branches and loops if the memory is set up and mapped just right. We discuss the lessons of this execution model for future trustworthy architectures. View the full WOOT '13 Program at usenix.org/conference/woot13/tech-schedule/workshop-program

Why it's here

2 people recommend this

What people say. Recommended as a mind-blowing demonstration of Turing-complete computation achieved entirely through CPU interrupt handling and page faults.

u/rabidcowin r/programming • Recommends

On “So Apparently the MOV instruction from the x86 instruction set is Turing Complete all by itself. Mind == Blown”

I think I saw a different presentation, but this seems to cover it: link to this video (starts with 4 minutes of introduction that may not be interesting)

u/vanderZwanin r/compsci • Recommends

On “Guy writes an executable research paper by compiling C to printable x86 instructions. Some jokes may occur.”

You're going to love this: The Page-Fault Weird Machine: Lessons in Instruction-less Computation