x86 Assembly Crash Course

Written and Edited by: kablaa

Main Website: https://hackucf.org
Twitter: https://twitter.com/HackUCF
Facebook: https://www.facebook.com/HackUCF/

More resources: https://github.com/kablaa/CTF-Workshop


“Voice Over Under” Kevin MacLeod (incompetech.com)
Licensed under Creative Commons: By Attribution 3.0

“Twisted” Kevin MacLeod (incompetech.com)
Licensed under Creative Commons: By Attribution 3.0




ferna2294 says:

You are underrated mate. Suscribed. This is GOLD.

unbreakable footage says:

7:23 isnt that f instead of 5?

Amici Nybråten says:

What is an instruction pointer? That last bit there I didn’t understand.

Black Crusader says:

Where are you man? I wonna watch more video.

CGMe says:

I’m just imagining where my mind would be at if I didn’t know C and C++.
F***ed.. that’s where it would be. It’d be f***ed.
Awesome video by the way!

Rene Dena says:


Savagery says:

This was beautiful and entertaining.

Andrey Resh says:


D. Shek says:

wow! just wow! man thanks a ton…this is gold

morphman86 says:

Completely unrelated, but in the intro, why did you keep eyeballing the coffee on my desk?

harken says:

Thank you for summarizing a whole class, i remember a good portion now to revisit sample problems (:

Gilles says:

Damn your intro made me so uncomfortable

wowaddict129 says:

Great video!

I noticed you mentioned the leave, ret that is usually in the epilogue of functions but didn’t mention enter. I don’t know if that is because of the Intel vs AT&T style but I didn’t think the use of leave in the epilogue was valid without a corresponding enter in the prologue.

Nodir N says:

Something is wrong, each time when I try to play this video it stops and tries to buffer and keeps showing me that loop. Other videos are playing good with no interruptions, wtf youtube?

Shayar hashim says:

so useful, please keep on!

Object Audio says:

top video mate

RulerL0rd says:

I think the schema you drawd @ 3:43 should be reversed. Since ebp holds the address of the current stack frame and esp points / holds the current address of the stack and since the stack grows towards lower memory addresses then esp should have a lower memory address than ebp. Hence your error.

sonofpam says:

Great stuff! This is really good work. Happily subscribed. Good on ya!

TheTritoneTerror says:

Are global and static variables really stored on the heap as claimed at 2:10? I have read that they are stored in the data segment (initialized) and BSS segment (uninitialized).

Pascal Thomet says:

Precise, complete, fast-paced. Fantastic

T0m S4wy3r says:

r u still alive ;), i saw you’ve uploaded just this only one GREAT vid!?

PS: do not (let me know | comment) how bad my english is because it wouldn’t get better!…

George Papageorgakis says:

Where is the rest of the tutorial? 😮

jordancodes says:

Wait why don’t the add and sub functions have to have square brackets around the register?

Life4YourGames says:

Holy shit, you were right about the amount of information but your explanation pace and clarity makes it very easy to follow. Good work!

Kamran Mohsin says:

This is an awesome lecture I ever witnessed. Thanks man

John Ernest says:

Great video, the pacing is good, sometimes a little speedy but I can always pause and play back. It would be great to find more programming and math videos with this kind of pacing, most of the time they drone on for hours for what can be summed up in ~5-10min. Visual aids can definitely go a long way, I’m a CG artist also and can help. I’m requesting a good x64 video if you can find the time, I’m starting to try and learn x64dbg for understanding existing code with and without symbols and work with 64-bit executables. I did a little x86 ASM eons ago in high school and needed a refresher on ebp/esp. Now I’m looking at EXEs using MM0,XMM0,YMM0, etc and want to know how to decipher floating point numbers coming across as parameters to a function.

asdfcqw says:

Thank you very much! every now and then I try to absorb some assembly. this video was the most effective

Tomasz Mikuś says:

Awesome work! Looking forward to seeing more of your videos on this topic.

sam smith says:

“Binary Exploitation” Sounds dirty!

Milos Stojicevic says:

Best tutorial I have ever seen on this subject. Keep it that way.

JD Christein says:

me: *programmed for 11 hours today*
me: time for a break
Jericho: “Hi, my name is Jericho!”
me: “Hi Jericho”

Victor Ferreira says:


Uli Troyo says:

Please make more videos! This was excellent.

Passwordcracks says:

Thanks but you could’ve explained how multiple arguments are pushed onto the stack, and also an integer is not necessarily 4 bytes long

fluttershy77x says:

How can I compile a IA32 assembly?

12345charliebrown says:

great tutorial almost makes me want to start coding MASM32 once again

H3LiUM says:

The background music fucks my concentration so I can’t pay attention

Ragnar Lothbrok says:

Very nice vid, but why the hell you think your background music is better then ie Hans Zimmer? Should be no music at all, so anybody could’ve watch your vids with their own music.

roi morad says:


Kermit The Wog says:

Excellent video, thank you 🙂 subbed

 Write a comment


Do you like our videos?
Do you want to see more like that?

Please click below to support us on Facebook!