Running a Buffer Overflow Attack - Computerphile

Making yourself the all-powerful "Root" super-user on a computer using a buffer overflow attack. Assistant Professor Dr Mike Pound details how it's done.
Formerly titled "Buffer Overflow Attack" -Aug 2021
The Stack: • Reverse Polish Notatio...
Botnets: • Botnets - Computerphile
The Golden Key: iPhone Encryption: • The Golden Key: FBI vs...
3D Stereo Vision: • Stereo 3D Vision (How ...
Brain Scanner: • Brain Scanner - Comput...
/ computerphile
/ computer_phile
This video was filmed and edited by Sean Riley.
Computer Science at the University of Nottingham: bit.ly/nottscomputer
Computerphile is a sister project to Brady Haran's Numberphile. More at www.bradyharan.com

Пікірлер: 1 200

  • @tristant9686
    @tristant96867 жыл бұрын

    You can see he is very excited to tell this.

  • @minecraft9260

    @minecraft9260

    6 жыл бұрын

    Tristan T I'm excited to learn this.

  • @germangamingvideos6069

    @germangamingvideos6069

    5 жыл бұрын

    @@minecraft9260 Me too

  • @matze3596

    @matze3596

    5 жыл бұрын

    Frist time he can show what i spend his time on...Most people would not listen maybe cause they dont understand or maybe because they believe its something illegal.

  • @buzifalus

    @buzifalus

    5 жыл бұрын

    Because people are usually not interested or afraid of complex computer stuff

  • @iraianbu3388

    @iraianbu3388

    4 жыл бұрын

    May i know what content is on cat shell_code

  • @MaxJNorman
    @MaxJNorman7 жыл бұрын

    I really like this guy

  • @TheCFJB

    @TheCFJB

    5 жыл бұрын

    I'd 100% agree.

  • @gregoriysharapov1936

    @gregoriysharapov1936

    5 жыл бұрын

    Absolutely, max!

  • @benchiang8235

    @benchiang8235

    5 жыл бұрын

    Me too, he's cool.

  • @GodlyOne123

    @GodlyOne123

    5 жыл бұрын

    It's refreshing to see positivity and enthusiasm towards typically dry subjects. This whole channel is great, but this guy in particular is probably their most enjoyable to watch.

  • @ashleybishton742

    @ashleybishton742

    5 жыл бұрын

    Dude can hack anything I bet lol. He could devastate a system lol

  • @aadeshsalecha4951
    @aadeshsalecha49518 жыл бұрын

    This was by far the best video..... Normally Computerphile tries to address a wider audience, but I personally would like to see more of these kind of in-depth videos.

  • @kipchickensout

    @kipchickensout

    5 жыл бұрын

    exactly

  • @CP-hd5cj

    @CP-hd5cj

    5 жыл бұрын

    Check out liveoverflow if you like this. He has tons of similar stuff, and decently in-depth

  • @dvorak2676

    @dvorak2676

    5 жыл бұрын

    this is an introduction

  • @iraianbu3388

    @iraianbu3388

    4 жыл бұрын

    May i know what content is on cat shell_code

  • @cheesescrust5399

    @cheesescrust5399

    4 жыл бұрын

    Dvo rak yeah I learned how to do basic stack overflows and run stack overflows back in the XP days, but I never learned in depth, complex attacks. I learned enough to run a debugger, find the memory address, write a nopales, etc but I never got deep enough to learn heap spraying, etc. They can get really complex now to bypass ASLR and other measures. I am trying to revisit this and learn more!

  • @ElagabalusRex
    @ElagabalusRex8 жыл бұрын

    I would love to see a series on micro-architectures, machine code, and assembly

  • @TheRomichou

    @TheRomichou

    8 жыл бұрын

    +ElagabalusRex Agreed!

  • @Funderpanda

    @Funderpanda

    6 жыл бұрын

    and micro-waves!

  • @akam9919

    @akam9919

    6 жыл бұрын

    Yes!

  • @kanpitcha54

    @kanpitcha54

    6 жыл бұрын

    please!

  • @AbuDoujana

    @AbuDoujana

    5 жыл бұрын

    @stephen schneider it may be tricky but it is definitely not 'insanely hard'... U just need to know at least the basics of forward programming ( C programing for example) and you can start from there, i would say i love it more than any other field but everyone has an opinion

  • @edgeeffect
    @edgeeffect8 жыл бұрын

    The sledge/bomb animation is BRILLIANT!

  • @seanski44

    @seanski44

    8 жыл бұрын

    Thankyou! I was pleased with that one ;)

  • @FreeStuffPlease

    @FreeStuffPlease

    4 жыл бұрын

    It made me laugh :)

  • @ItsNotJustRice
    @ItsNotJustRice3 жыл бұрын

    I know this particular video was years ago, but this guy is actually fun to watch. I'm terrible at learning, but he makes sense of a lot of things without dragging on the boring part.

  • @Stopinvadingmyhardware

    @Stopinvadingmyhardware

    Жыл бұрын

    Are you that mad at someone you don’t even know?

  • @Soedmaelk

    @Soedmaelk

    9 ай бұрын

    @@Stopinvadingmyhardware You replied to the wrong guy

  • @sickerpuppies
    @sickerpuppies4 жыл бұрын

    "It's meant for ethical hacking, let's just make that clear" - Mike Pound, 2016

  • @ashleybishton742

    @ashleybishton742

    4 жыл бұрын

    Only if you know how to use the scripts.

  • @charlieweberlv

    @charlieweberlv

    2 жыл бұрын

    That’s like trying to say this is an ethical shot from a gun to somebody’s body, it’s a hack.

  • @thegoodkidboy7726

    @thegoodkidboy7726

    2 жыл бұрын

    @@charlieweberlv People who find exploits and report them are important to the security of many systems. Companies hire penetration testers to try to break into their systems, so these issues can be fixed. Watch the footage of L0pht testifying before the US senate in 1998.

  • @davishall

    @davishall

    Жыл бұрын

    @@charlieweberlv Not at all. To be able to identify bugs, one must be able to think like a malicious hacker and have the same tools as a malicious hacker. Without ethical hacking, there would be a lot more unethical hacking.

  • @slingshot99

    @slingshot99

    Жыл бұрын

    @@charlieweberlv You have to be able to disassemble something to understand its flaws. That's what ethical hacking essentially does.

  • @Elite7555
    @Elite75553 жыл бұрын

    Absolutely brilliant demonstration. All universities that I know teach C/C++, but they don't teach the essence of software security, which should be pounded into every student's head right from the beginning.

  • @NightLife094

    @NightLife094

    Жыл бұрын

    In my university in germany, they taught us these. But i mean the courses are called cybersecurity and reverse engineering

  • @lawrencelim6890

    @lawrencelim6890

    Жыл бұрын

    @@NightLife094same. The info was taught in an intro to cyber course which made us do a lab that required us to attain root access using buffer overflow just like in the video.

  • @sivalley
    @sivalley8 жыл бұрын

    To err is human, but to really foul things up requires the root password. -Unknown

  • @U014B

    @U014B

    8 жыл бұрын

    Love it.

  • @sophiacristina

    @sophiacristina

    4 жыл бұрын

    It was Aristotle!

  • @kbs1212

    @kbs1212

    4 жыл бұрын

    sivalley Stealing-no, borrowing this

  • @xBZZZZyt

    @xBZZZZyt

    4 жыл бұрын

    Or SUDOer's password.

  • @masonhunter2748

    @masonhunter2748

    3 жыл бұрын

    To err is human. -Grammarly

  • @colossalbreacker
    @colossalbreacker4 жыл бұрын

    I'm a cs major, but I don't normally like watching cs related youtube channels. These videos are awesome though, some of them are things I thought I had a decent grasp on and I end up learning something. I also love how happy Dr. Pound seems when he is talking about something, you can tell he really likes what he does.

  • @ButzPunk
    @ButzPunk8 жыл бұрын

    This was brilliant. More like it, please!

  • @cloveramv

    @cloveramv

    5 жыл бұрын

    Powerrrrrrrrrrrrrrrrrrrrrrr BUHAHAHAHAHAAHAHA whoami . . I am root baby.

  • @iraianbu3388

    @iraianbu3388

    4 жыл бұрын

    May i know what content is on cat shell_code

  • @geonerd
    @geonerd8 жыл бұрын

    Mike has a certain Dr. Evil vibe in that he clearly enjoys writing "Malicious Code." :)

  • @DFX2KX
    @DFX2KX7 жыл бұрын

    messing with, and forcibly messing with the stack is the source of a few old school console hacks if I recall, particularly on NES games. You write memory by doing very specific things to set certain memory values in an unusual way

  • @hamstsorkxxor

    @hamstsorkxxor

    7 жыл бұрын

    Pokemon! If I remember correctly, that missingno nonsense in Pokemon Red was a stack overflow.

  • @UmVtCg

    @UmVtCg

    7 жыл бұрын

    The game genie does this

  • @ns2304

    @ns2304

    2 жыл бұрын

    Think its how PS1 and onwards did it as well. Gameshark and Gamemaster ripped the values off the game corresponding to a particular attribute. Then you tweak the code to get outcome like inf items, inf health etc. Never knew this was the science behind it hah

  • @realeques
    @realeques7 жыл бұрын

    i love how he explains every topic like its the best in the world... i could use him as my personal coach !

  • @dantesalighieri
    @dantesalighieri4 ай бұрын

    The way this man explains things is absolutely DIAMOND.

  • @Anvilshock
    @Anvilshock8 жыл бұрын

    Nice presentation, thanks! It would be even nicer to have the stack video segment made clickable, given KZread's tendency to "Suggest" everything but related videos.

  • @Computerphile

    @Computerphile

    8 жыл бұрын

    +Anvilshock I'll sort that! >Sean

  • @Anvilshock

    @Anvilshock

    8 жыл бұрын

    ***** Much obliged, thanks!

  • @zavvie809

    @zavvie809

    8 жыл бұрын

    +Computerphile I suggest heap sort for that. :)

  • @MamboBean343

    @MamboBean343

    8 жыл бұрын

    +Computerphile Still not really fixed. It's currently neither a card or an annotation.

  • @ChaimS

    @ChaimS

    8 жыл бұрын

    +Anvilshock Also, it would be awesome if it was mentioned where in the video he talks about them, since we may not necessarily have 10-15 minutes to watch the whole video.

  • @qgysugfq3935
    @qgysugfq3935 Жыл бұрын

    This hits especially hard since I just finished my assembly and computer systems class. Great video!

  • @MrJoao6697
    @MrJoao66978 жыл бұрын

    What a video! Great job on explaining this attack, I'll definitely be looking forward to learn more of this as I get into assembler at University!

  • @jonahansen
    @jonahansen6 жыл бұрын

    Damn! Excellent presentation on how stack overflow exploits work! No hand-waving; a complete demonstration of how it's done, down to aligning the return address and the no-op sled mitigation.

  • @JaceLansing
    @JaceLansing3 жыл бұрын

    Man! How am I only finding your channel now!? This was great. Thank you for taking the time to put this together.

  • @__-xl1zi
    @__-xl1zi5 жыл бұрын

    Everyone else: *makes a 20 char buffer* Mike: "We allocate a buffer that's 500 characters long"

  • @username17234

    @username17234

    4 жыл бұрын

    You need the buffer to be big enough to be able to comfortably hold your machine code plus a hefty padding for memory address variations.

  • @dicksonZero

    @dicksonZero

    4 жыл бұрын

    still wondering how he is going to type all 500 characters until he pulls out his python

  • @cheesescrust5399

    @cheesescrust5399

    4 жыл бұрын

    Eduardo I didn’t think it matters. I thought even small buffers could be exploited because the exploit payload just overflows and gets thrown into the stack. As long as you nopsled is hit by the pointer it just keeps running until it hits the return address which jumps to the shell code? Is that not correct?

  • @rampage_sl

    @rampage_sl

    4 жыл бұрын

    @@dicksonZero I see what you did there

  • @mu11668B

    @mu11668B

    4 жыл бұрын

    Well... If I'm not writing codes for dev boards that has memory capped at few KBs, I usually allocate a lot more, like 4096 bytes. It has hardly any drawback for machines with GBs of RAM and lowers the risks of writing data beyond the buffer zone.

  • @x1g5dj7dh4
    @x1g5dj7dh48 жыл бұрын

    This was amazingly informative, especially for someone not using Linux. Well done!

  • @TheMagAirsoft
    @TheMagAirsoft3 жыл бұрын

    Dr Mike Pound, i do not know if you know this but you are saving a lot of network security students with your videos on these subjects. They are incredibly informative and makes a whole subject comprehensible in the matter of minutes. A Great thank you.

  • @shumakriss
    @shumakriss8 жыл бұрын

    Thank you! I've never seen this explained in its entirety and there are lots nuances that have always inhibited my own educational endeavors. Knowing GDB, assembler, endianness, no-op sleds, etc were all concepts I understood but could never completely tie together. Excellent video.

  • @gassnake2004
    @gassnake20048 жыл бұрын

    Great video! There's a lot of virus "concept" videos that explain how they work, but not many that show the actual implementation and writing of specific attacks. More please!

  • @lolbajset
    @lolbajset8 жыл бұрын

    I absolutely love videos on things like malware, exploits and similar stuff, feel free to upload more of it if you can :D

  • @cyberwithtom7714
    @cyberwithtom77145 жыл бұрын

    for years ive been reading and trying to work out the ins and outs of bufferoverflow i can honestly say this is one of the most simple and effective videos out there on BO well done and Kudos loved watching it (for the 100th time)

  • @timm9301
    @timm93015 жыл бұрын

    I have studied exploit dev for a number of years and this is by far one of the best explanations ever! Keep it up!

  • @34521ful
    @34521ful5 жыл бұрын

    Just a slight error for future viewers, at the 7:10 minute mark, he points from "a" to the start of "buffer". What he meant was that we are at "ebp" to the start of the buffer is what sub $0x1f4, %esp does :)

  • @mustafadurukan6893

    @mustafadurukan6893

    4 жыл бұрын

    So the buffer starts from esp minus 500 and the buffer progresses towards ebp, right?

  • @furetosan
    @furetosan8 жыл бұрын

    Awesome video. Especially the bit about the no-op slope.

  • @jurepustoslemsek7882
    @jurepustoslemsek78825 жыл бұрын

    I watched this a long time ago, but after taking an Assembly class in uni, I suddenly completely understand what he did and why it works! this is an absolutely amazing video as it actually gives an incentive to continue learning low-level programming and such.

  • @Acid113377
    @Acid1133777 жыл бұрын

    probably one of the best computerphile videos yet. Thank you Dr. Pound!

  • @MiSt3300
    @MiSt33003 жыл бұрын

    Apart from the attack, it's so interesting to see how the computer actually processes the programme... I mean, I never really thought about it, that all the functions and returns and variables have to be stored somewhere and that it has to know how to execute it... I really like to think of a computer as a human being XD

  • @JaisMathews
    @JaisMathews3 жыл бұрын

    It would have been pleasure to sit in his classes. We need more professors like this.

  • @tommybenshaul3443
    @tommybenshaul34436 жыл бұрын

    a very good video, explains beautifully the why stack works and how to exploit a buffer overflow

  • @mad7227
    @mad72276 ай бұрын

    His best yet IMO. Love the level of detail and honesty enthusiasm of the topic 😁

  • @eliausi9696
    @eliausi96967 жыл бұрын

    Welldone on explaining this so well

  • @xSCOOTERx2
    @xSCOOTERx28 жыл бұрын

    Had this for a homework assignment. It was quite hard to understand how to manipulate the stack at first, but this video helped a lot.

  • @itissmallagain8002

    @itissmallagain8002

    2 жыл бұрын

    currently have this as assignment

  • @smtkumar007
    @smtkumar0072 жыл бұрын

    youtube algorithms are like now this guy has just finished watching bootstrap in 1 hours & that more than enough to recommend him buffer overflow attack videos

  • @chris_1337
    @chris_13378 жыл бұрын

    This was AWESOME! More, more, more please! Dr Pound is a great teacher

  • @another-person-on-youtube
    @another-person-on-youtube4 жыл бұрын

    "Can't type while people are watching." I'm not the only one!

  • @athanoslee
    @athanoslee7 жыл бұрын

    I like his playful manners and smiles. I think I have a crush.

  • @nofrag25

    @nofrag25

    6 жыл бұрын

    He s married bro

  • @firstnamelastname7319

    @firstnamelastname7319

    5 жыл бұрын

    I want him to overflow my buffer 😍

  • @jscorpio1987

    @jscorpio1987

    4 жыл бұрын

    Thibaud so? Are we supposed to intensively research a person’s personal life now to make sure they’re absolutely 100% single before we’re allowed to have an innocent crush on them? It’s not as if you can control such feelings and it’s not like OP was exactly sending the guy a marriage proposal.

  • @kbs1212

    @kbs1212

    4 жыл бұрын

    J T Maybe OP isn’t but I am. Marry me Mr. Pound

  • @untilted9126

    @untilted9126

    4 жыл бұрын

    I do as well

  • @cup-of-char
    @cup-of-char7 жыл бұрын

    Greetings! I watched this video to help me understand buffer overflows in my binary exploitation class in university and it was really helpful. Thank you so much!

  • @hypernova2906
    @hypernova29064 ай бұрын

    the stack content visualization and the no-op sled animation were really awesome

  • @hellterminator
    @hellterminator8 жыл бұрын

    And this, kids, is why you should always sanitize your inputs.

  • @michaeltorres1263

    @michaeltorres1263

    8 жыл бұрын

    +hellterminator HAHAHAHAAHA!

  • @SUFHolbek

    @SUFHolbek

    8 жыл бұрын

    +hellterminator Little Robby Drop Tables

  • @hellterminator

    @hellterminator

    8 жыл бұрын

    Simon WoodburyForget Interesting language. I'm probably gonna stick with C/C++, but Rust is definitely interesting.

  • @HavelockBanana
    @HavelockBanana8 жыл бұрын

    yeah! A technical video :-) Nice to see some actual code on this channel (even though it's being explained in a simple way :) )

  • @Tithis
    @Tithis5 жыл бұрын

    Studying for a security certificate and was having a hard time understanding exactly what was going on with the way they explained it in their videos. Your video really helped me understand it better, mostly by visualizing how the memory is laid out.

  • @nikhilnarayanan5949
    @nikhilnarayanan59494 жыл бұрын

    This channel is by far one of the best....I made a computer application similar to chain reaction using the swing framework of java....I got a stackOverFlow error because of infinite recursion....this video really sorted me out....thanks!!!😁😁😊

  • @GenGariczek
    @GenGariczek8 жыл бұрын

    More on similar topics please :)

  • @user-eh5wo8re3d
    @user-eh5wo8re3d8 жыл бұрын

    very nice Video. would love to See more of this sort in the future

  • @gegdim9307

    @gegdim9307

    8 жыл бұрын

    Fear not my friend! Botnets and iPhone decryption coming soon!

  • @user-eh5wo8re3d

    @user-eh5wo8re3d

    8 жыл бұрын

    Well that is a truly marvelous thing to hear. Am looking forward to it!

  • @DirkArnez
    @DirkArnez3 жыл бұрын

    Very clearly explained... I have been looking for a tutorial like this for about ten years.

  • @SaeedAlFalasi
    @SaeedAlFalasi3 жыл бұрын

    Iv seen a bunch of videos on the same topic BUT THIS BY FAR is the best explanation !

  • @Tommus1997
    @Tommus19975 жыл бұрын

    "I'm assuming you know what a stack is." *defines function*

  • @Juasml

    @Juasml

    4 жыл бұрын

    When you know a lot about something, sometimes it's hard to tell when you're being overwhelming and when you're going too slow. I guess he just randomizes it to keep going.

  • @dderudito

    @dderudito

    4 жыл бұрын

    Hahaha

  • @jag831

    @jag831

    3 жыл бұрын

    Haha that's why I love this kind of videos. "Look at this ebp register, for example. B stands for base and B is the second letter of the latin alphabet. It is allocated in 0x6404whatever5A in memory"

  • @fetchstixRHD

    @fetchstixRHD

    3 жыл бұрын

    To be fair, there was the video on stacks which anyone who wasn't familiar with could go and watch, so there isn't [wasn't] much point of repeating what's been done already.

  • @navalkumarshukla9447
    @navalkumarshukla94472 жыл бұрын

    I really liked the way he taught, didn't get it,but liked it xD

  • @Nekology87
    @Nekology872 жыл бұрын

    wow! such an insightful glimpse at how computers "think" and Dr. Pound you are so charimastic ^___^ thank you Computerphile for this video!! I'm just begining my programing education and this fills my cup with drive to push through learning the basics knowing later i will be able to excecute as my will wills

  • @lumin0l161
    @lumin0l161 Жыл бұрын

    Best explanation of a buffer overflow I’ve ever seen.

  • @VaultRaider
    @VaultRaider8 жыл бұрын

    These types of videos are better than the robots/drones stuff

  • @anujmchitale

    @anujmchitale

    5 жыл бұрын

    Not for a person who isn't interested in SW security or programming in general.

  • @saultube44
    @saultube447 жыл бұрын

    The guy is quite smart and he knows his stuff

  • @fernandojackson7207
    @fernandojackson72072 жыл бұрын

    Ok, I was finally able to translate from Brit: "Buffalo, Buffalo at Work" =="Buffer Overflow Attack" Great video and explanation.

  • @anyonetube
    @anyonetube25 күн бұрын

    the first 3 minutes of video give me more efficient information than any other videos i watched about this title

  • @5upl1an
    @5upl1an5 жыл бұрын

    The real question is, how can someone be so damn motivated at 7 in the morning?!

  • @RonaldMcPaul

    @RonaldMcPaul

    5 жыл бұрын

    Eating healthy breakfast cereals and grains.

  • @xxxXXXCH04XXXxxx

    @xxxXXXCH04XXXxxx

    2 жыл бұрын

    @@RonaldMcPaul yummy

  • @ttttt_
    @ttttt_7 жыл бұрын

    "there is nothing you can't do as root" except makepkg on arch :(

  • @nik123true

    @nik123true

    7 жыл бұрын

    nice one xD

  • @sauron1427

    @sauron1427

    7 жыл бұрын

    but you can create a user with whatever password you like, su into that user and run makepkg. you can still get ANYTHING done if you have root access.

  • @pedro.raimundo

    @pedro.raimundo

    6 жыл бұрын

    I LOLed.

  • @cybrhckr

    @cybrhckr

    6 жыл бұрын

    and some programmes does not allow you to run on root :D for security reasons

  • @Reth_Hard

    @Reth_Hard

    6 жыл бұрын

    You can't run VLC on root :( But you can patch it easily :)

  • @michalski9141
    @michalski91412 жыл бұрын

    this is genuinely great content, very informative and well made

  • @CryptoJones
    @CryptoJones5 жыл бұрын

    Dr. Pound, thank you for the brilliant explanation of this. I wish I had you to explain these things to me as an undergrad.

  • @harleyspeedthrust4013
    @harleyspeedthrust40136 жыл бұрын

    Ignorant friend: "Why would you ever use Assembly?" Me: "..."

  • @tiannimyers1204
    @tiannimyers12044 жыл бұрын

    The more I learn about computers, the more I realize how easy they are. Great video.

  • @__-to3hq
    @__-to3hq5 жыл бұрын

    I love how much this guy loves talking about all of these topics its awesome :]

  • @Piotr3kM
    @Piotr3kM8 жыл бұрын

    Great stuff, I love videos that actually show something working in practice, rather than just the theory. Moar pls!

  • @rchandraonline
    @rchandraonline8 жыл бұрын

    On the original diagram: Functions do not (normally) go on the stack. The stack is only data (including return addresses). With architectures having hardware support for not executing data (often called an "NX" bit), such as a lot of the Intel processors, trying to execute a function on the stack with the NX bit set would cause an exception, which in Linux in turn would generate a signal (something like SIGSEGV), and without a signal handler would kill the process. (Yay, memory protection!) oh...and I think you mean backslash x ninety.

  • @Computerphile

    @Computerphile

    8 жыл бұрын

    +rchandraonline I've a feeling that's what Mike was talking about at the end.... >Sean

  • @rchandraonline

    @rchandraonline

    8 жыл бұрын

    ***** , oh, yeah... As Mike says (paraphrasing), there are so many things which would make great videos on what goes on in GDB and assembly...simply fascinating how all that stuff was developed over the years.

  • @JAN0L

    @JAN0L

    8 жыл бұрын

    +rchandraonline Function code doesn't, but all the local variables used by the function go on stack, otherwise recursive functions wouldn't be possible.

  • @stensoft

    @stensoft

    8 жыл бұрын

    +rchandraonline For running shell (or other simple tasks), NX bit is quite easy to workaround with return-to-libc attack. But that can be hardened with address randomization.

  • @GegoXaren

    @GegoXaren

    8 жыл бұрын

    gcc -fstack-protector-strong -std=c11 foo.c -o foo

  • @GegoXaren
    @GegoXaren8 жыл бұрын

    and this, kids, is why strcpy is removed from C11. Many of the string functions were removed and replaced with safe versions in C11.

  • @GegoXaren

    @GegoXaren

    8 жыл бұрын

    also use -fstack-protector, -fstack-protector-all or -fstack-protector-strong with gcc for non-time-critical stuff.

  • @anujmchitale

    @anujmchitale

    5 жыл бұрын

    strncpy is the replacement. The n is a parameter asking how much to copy. If more than the buffer length being used, the function itself won't compile.

  • @darksociety8210
    @darksociety82107 жыл бұрын

    Excellent video, helped me massively to understand how these exploits work, subscribed!

  • @IrishH2
    @IrishH24 жыл бұрын

    Fun fact, buffer overflows are where most of the famous glitches in the original Pokemon games come from. From Missingno. to fighting Professor Oak, to getting a Mew in Cerulean City. All done through buffer overflowing and putting numbers where they shouldn't be.

  • @williamdrum9899

    @williamdrum9899

    11 ай бұрын

    Interesting. Those games were coded directly in assembly though so I don't think they used stack-allocated buffers.

  • @timt.4040
    @timt.40406 жыл бұрын

    Very helpful! What is the gdb command (not shown on screen) to list the 200 registers at the stack point of -550?

  • @jbrhsn8406

    @jbrhsn8406

    4 жыл бұрын

    Google it Pal!

  • @abindieflasche100

    @abindieflasche100

    4 жыл бұрын

    @@jbrhsn8406 what is it

  • @zerozone1412

    @zerozone1412

    3 жыл бұрын

    @Tim Thompson did you find out what the command was? I need it😫 ..... thanks

  • @jag831

    @jag831

    3 жыл бұрын

    Something like "x/500xw $esp -550" could work. I may be wrong

  • @taubrafi
    @taubrafi8 жыл бұрын

    Kali!

  • @Aemilindore
    @Aemilindore8 жыл бұрын

    I truly love the method Cumputerphine explains things. These are very advanced concepts explained so simply. Hats off for your effort. I am a researcher in the field of WSN. But I truly love this type of work. I would love to know what research field are related to this type of work. Once again. Great explanation. Love your videos!

  • @supermegauberful
    @supermegauberful8 жыл бұрын

    That's actually very well explained! Keep up the good work.

  • @anirudhsarma4233
    @anirudhsarma42337 жыл бұрын

    Can anyone explain why 10 duplicates of the return address was needed as "padding"?

  • @Calin42
    @Calin428 жыл бұрын

    when a video on the ROP chains? with ASLR on and nX :p

  • @Bigfootmandude
    @Bigfootmandude8 жыл бұрын

    That was an excellent explanation! Really interesting and nicely detailed.

  • @kamoroso94
    @kamoroso948 жыл бұрын

    This was an awesome video! I remember learning about this in class but not how to exploit it and see it in action.

  • @Dusk-MTG
    @Dusk-MTG4 жыл бұрын

    *Segmentation fault* Me: "Oh damn, I fcked up." Peter Parker: "That's exactly what we wanted."

  • @ryanofarrell186
    @ryanofarrell1867 жыл бұрын

    Video is 17:29 long. Mathematicians, unite!

  • @tennicktenstyl

    @tennicktenstyl

    7 жыл бұрын

    What's so special about this? I'm not familiar with numbers and stuff

  • @Keithfert490

    @Keithfert490

    7 жыл бұрын

    It's the smallest "taxi cab number": a positive integer expressible as the sum of two positive integer cubes in two different ways (1729=12^3+1^3=9^3+10^3).

  • @tennicktenstyl

    @tennicktenstyl

    7 жыл бұрын

    Oh, that's nice.

  • @sadrien

    @sadrien

    7 жыл бұрын

    Don't worry if you don't understand why that is important, because it really isn't.

  • @Quantumoprh

    @Quantumoprh

    7 жыл бұрын

    The quotient 0.58620689655 is used 731 times in this txt document: ftp://ftp.sanger.ac.uk/pub/1000genomes/zd1/ctcf/chip_seq_quantitation/rel_2012-09-21/cl.txt

  • @jasonford2877
    @jasonford28774 жыл бұрын

    This video explains it better than a $2000 course I've been doing in Cyber Security (which goes into far more than just BOF) Drawing it tremendously helped me understand it!

  • @johnconnor7978
    @johnconnor79786 жыл бұрын

    The only truly knowledgeable bunch of geeks on the internet that also know how to explain what they know. You sirs earned by EIP hi5

  • @woutervandenputte1356
    @woutervandenputte13565 жыл бұрын

    at 13:40 which command exactly do you use to list those 200 registers at the stack pointer minus 550

  • @nahue345

    @nahue345

    5 жыл бұрын

    x/200xg $rsp (i think)

  • @chaoluncai4300

    @chaoluncai4300

    3 ай бұрын

    i dont get why stack ptr minus 550 but not just 508 if the program stopped at the return address, can anyone explain it please ?

  • @bluekeybo
    @bluekeybo6 жыл бұрын

    How would the "hacker" get the correct return address? They'd have to run gdb and list the addresses like in the video? How'd they do it automatically without root access?

  • @aneeshjoshi6641

    @aneeshjoshi6641

    5 жыл бұрын

    I think: Since every process works assuming it has the full RAM and in C you can get the address of anything using & you can probably get it.

  • @chasehiatt5595

    @chasehiatt5595

    4 жыл бұрын

    Gdb doesn't require root access

  • @bluekeybo

    @bluekeybo

    4 жыл бұрын

    @@chasehiatt5595 interesting

  • @rrestoring_faith

    @rrestoring_faith

    3 жыл бұрын

    gdb is just a debugging tool. Can run it on any executable if you have permissions to execute that executable.

  • @lexmarkbites
    @lexmarkbites4 жыл бұрын

    He is a genius and easily explained how stack diagram works! I easily understood it! Thank you!

  • @OxTongue0
    @OxTongue02 жыл бұрын

    lots of passion in the explanation, thanks for the content and knowledge sharing

  • @marsgal42
    @marsgal428 жыл бұрын

    I'm guess I'm showing my age when I mention that this was how the Morris worm back in 1988 infected systems. :-)

  • @jag831

    @jag831

    3 жыл бұрын

    Cool! I was wondering on actual, real cases in which this has happened

  • @amine250
    @amine2503 жыл бұрын

    who's watching this after the discovery of the sudo exploit ? x)

  • @loneranger4282

    @loneranger4282

    3 жыл бұрын

    what is the sudo exploit ?

  • @amine250

    @amine250

    3 жыл бұрын

    @@loneranger4282 Barron Samedit

  • @stephana7785
    @stephana77854 жыл бұрын

    Best explanation of shell code injection by far!

  • @jongeduard
    @jongeduard3 жыл бұрын

    Really nice educational video! Learned new things here. Even as an experienced developer like me. So basically, this is in fact just yet another example of a "code injection", probably the most important thing that exists in the art of hacking.

  • @supernaturalswampaids8083
    @supernaturalswampaids80838 жыл бұрын

    Cover the iPhone/Apple/FBI issue!

  • @Computerphile

    @Computerphile

    8 жыл бұрын

    +Reck Tominvayed Can you wait til Friday.... :) >Sean

  • @supernaturalswampaids8083

    @supernaturalswampaids8083

    8 жыл бұрын

    +Computerphile Yay! Thanks for the reply as well! I'm a huge fan! ....but I used to be a small air conditioner. Had to :P

  • @jasonneu81

    @jasonneu81

    7 жыл бұрын

    +Player Name If you used to be a small air conditioner and now you're a huge fan then you must have been an intermediate ventilation system at some point, right :D ?

  • @riyaz4455
    @riyaz44557 жыл бұрын

    +Computerphile What is the GDB command used here "kzread.info/dash/bejne/Y4dkw6SPXbrHldI.html" What is the GDB command to list some blocks of memory..??? I have a session on the same topic and I really wanna use this example.....

  • @ugaaga198
    @ugaaga19810 ай бұрын

    I think its not possible to explain it better! EXCELLENT

  • @Zeldon567
    @Zeldon5672 жыл бұрын

    As a frequent viewer of videogame speedruns, I know quite a bit about the uses of buffer overflow/underflow. Fun stuff.

  • @umarsalmanrao5
    @umarsalmanrao54 жыл бұрын

    13:53 which command did he use here? x/200x $(ebp-100) Was it this?

  • @pratheeps3972

    @pratheeps3972

    4 жыл бұрын

    Same doubt bro

  • @yuvalweber5946

    @yuvalweber5946

    4 жыл бұрын

    i think he used this : x/200x $esp - 550

  • @CreativeVery
    @CreativeVery5 жыл бұрын

    You know you're 1337 when you use Kali.

  • @aeinarrkrigsson

    @aeinarrkrigsson

    5 жыл бұрын

    Black arch ftw

  • @mustafakhalid9348

    @mustafakhalid9348

    5 жыл бұрын

    Newbies think it's cool

  • @alejandroflores7565

    @alejandroflores7565

    4 жыл бұрын

    Actually it's very handy, i've been pentesting and bug hunting for a long time and Kali is always my go-to.

  • @FF-xc9ug
    @FF-xc9ug2 жыл бұрын

    *I am very grateful for the information you provide*

  • @pierreaupeix
    @pierreaupeix8 жыл бұрын

    This was very interesting. More of this please!