creators on youtube and github like you seem to be better honestly at teaching these concepts imo than textbook publishers and many university lectures. the visuals and analogies and everytging are spectacular! thank you for doing tje people's work. subscribed.
I'm interested in how this type of attack is executed, how it's structured and what I can do to prevent getting attacked in this way and also what modern compilers and operation systems are doing to avoid the situation that an aware programmer gets himself into a trouble because somebody exploited this mechanism of stack.
Great content- i have one question: are all stack frames similar in size? For example if main() calls foo() and foo call add() - are the stack frames for main, foo, add are exact in size?
Thanks. Actually, no. Stack frame size varies because the arguments to the function are stored there, local (automatic) variables and the return value.
If an implementation enforces some frame size limit, it should presumably be the same, but I can't see why there would be a per-frame limit at all. Stack frames aren't really allocated on creation - they're reusing a space in a constant buffer (that needs to be resized by the OS if it runs out - how, is platform specific). Oversimplifying: if your total stack memory is 100MB, one frame can eat it whole, and there won't be any more space for next frame. If OS decides that it's not allocating more - you'll get a stack overflow.
Yeah! Do explain how those attacks work. I'm finishing my last project for an incredibly intense coding bootcamp. Do you have any textbooks you'd recommend?
Great reminder that doesn't take much time. Well done. But I have one question. 15:10 How exactly do we know the size of the frame? I mean, there is no problem to get the size of local variables, but how do we know when argument list actually ends?
Thanks for this comment! I was looking into the answer for your question and I discovered that there is a mistake with the explanation of ESP behaviour. I'll prepare a corrected video, and give you a proper response.
I just love your channel wish you post more often :D anyway i have a question i started learning java finished courses on OOP and Data Structure and algorithms now i started with another one also with Data Structure and algorithms but advance but sometimes i feel like im stuck trying to solve really basic problems than moving to advanced one nut still feeling that isn't enough did you ever get that feeling thanks :)
New video is coming tomorrow! I'm low on my time budget, but it'll get better. Yes, I do get that feeling - it never goes away. Pro devs just get better dealing with it. Keep grinding, you will find the answers!
This video is better than my entire semester of programming language theory
I feel like dropping off my Master's degree in CS
creators on youtube and github like you seem to be better honestly at teaching these concepts imo than textbook publishers and many university lectures. the visuals and analogies and everytging are spectacular! thank you for doing tje people's work. subscribed.
This is exactly what I was looking for. Really wonderful and clear explanation. Thanks alot. 🙌👍
Clearly explained, without overflowing my brain.
I see what you did there
I'm interested in how this type of attack is executed, how it's structured and what I can do to prevent getting attacked in this way and also what modern compilers and operation systems are doing to avoid the situation that an aware programmer gets himself into a trouble because somebody exploited this mechanism of stack.
Thank you so much, this was a great video! Great explanation, and great content overall! Please make a video on stack overflow!
Dude, you rock, better explanation ever
Keep it going man. Very good guide!
glad you like it!
Great content- i have one question: are all stack frames similar in size? For example if main() calls foo() and foo call add() - are the stack frames for main, foo, add are exact in size?
Thanks. Actually, no. Stack frame size varies because the arguments to the function are stored there, local (automatic) variables and the return value.
@@SmokCode Ok i see, how about the maximum size limit for each stack frame , are they the same?
If an implementation enforces some frame size limit, it should presumably be the same, but I can't see why there would be a per-frame limit at all. Stack frames aren't really allocated on creation - they're reusing a space in a constant buffer (that needs to be resized by the OS if it runs out - how, is platform specific). Oversimplifying: if your total stack memory is 100MB, one frame can eat it whole, and there won't be any more space for next frame. If OS decides that it's not allocating more - you'll get a stack overflow.
Yeah! Do explain how those attacks work. I'm finishing my last project for an incredibly intense coding bootcamp. Do you have any textbooks you'd recommend?
Great reminder that doesn't take much time. Well done. But I have one question.
15:10 How exactly do we know the size of the frame? I mean, there is no problem to get the size of local variables, but how do we know when argument list actually ends?
Thanks for this comment! I was looking into the answer for your question and I discovered that there is a mistake with the explanation of ESP behaviour. I'll prepare a corrected video, and give you a proper response.
Thanks!
Here it is ruclips.net/video/Gfmq2vGhWbw/видео.html !
I just love your channel wish you post more often :D
anyway i have a question i started learning java finished courses on OOP and Data Structure and algorithms now i started with another one also with Data Structure and algorithms but advance
but sometimes i feel like im stuck trying to solve really basic problems than moving to advanced one nut still feeling that isn't enough did you ever get that feeling
thanks :)
New video is coming tomorrow! I'm low on my time budget, but it'll get better.
Yes, I do get that feeling - it never goes away. Pro devs just get better dealing with it. Keep grinding, you will find the answers!
W czym piszesz na codzień?
Dzisiaj Java+JS, wcześniej C++, C#, PHP
Stack is mostly use of subroutines call .........it's easy guys get the explanation
1:37 aka return 0
Stack is beign controlled by LIFO LOGIC
"Callstacks are basically stacks of those calls"
Good way to learn English :P
lad
brzmiszjakpolak.jpg
Nie gadaj tyle, tylko układaj te klocki bo nigdy w Jengę nie zagramy...
to jest lepsze wyjaśnienie niż live overflow dzienki