Skip to content
0:00 / 0:00

#x86#assembly#machinecode

DEF CON 25 - XlogicX - Assembly Language is Too High Level

DEFCONConference

419K subscribers • 61 videos on Hallway • Conference channel

YouTube
  • Recommended by 2 people: 2 in engineering communities.
  • Presented by XlogicX

Advanced. Deep dive for people who know the field.

57K views9 years ago2 recommendations

SecuritySystems programmingExploits and vulnerabilitiesReverse engineering

XlogicX explains how x86 assembly instructions do not have a strict one-to-one relationship with machine code and how to exploit these redundancies.

Do you have a collection of vulnerable programs that you have not yet been able to exploit? There may yet still be hope. This talk will show you how to look deeper (lower level). If you've ever heard experts say how x86 assembly language is just a one-to-one relationship to its machine-code, then we need to have a talk. This is that talk; gruesome detail on how an assembly instruction can have multiple valid representations in machine-code and vice versa. You can also just take my word for it, ignore the details like a bro, and use the tool that will be released for this talk: the Interactive Redundant Assembler (irasm). You can just copy the alternate machine code from the tool and use it in other tools like mona, use it to give yourself more options for self-modifying code, fork Hydan (stego) and give it more variety, or to create peace on earth.

Why it's here

2 people recommend this

What people say. Recommended for its insights into x86 instruction encoding redundancies and their implications for malware and security.

u/PiLord314in r/compsci • Recommends

On “Why isn't Assembly universal, like regular programming languages?”

This is mostly correct, however there are redundancies in x86. An interesting look into why x86 specifically is not 1:1 and several instances where that is true is shown in this lecture at defcon. [video

u/sabas123in r/compsci • Recommends

On “Final Year Bsc Computer Science Project Suggestions”

If you want an idea I have one to selflishly promote. Currently the world really misses a tool that for every x86-64 instruction (like add rax, 2), spits out all possibles encodings for this. This talk should serve as a good intuition: link to this video This would have quite a large impact for metamorphic malware and defensive ROP programming.

u/SneekyFoxxin r/C_Programming • Mentions

On “What "level" do you consider the C language to be?”

C is an abstraction that is used to allow us (humans) to communicate with the computer, though it's all just electrical currents (analog) which are translated into digital "signals". So, technically from binary to the most recent programming languages are all high level: Assembly is too high level.