4 ms·
> Of the top of my head (not my primary space), a gadget is a piece of code at a known or guessable location that provides specific functionality. > Consequent
by _kbh_ 4y ago
> Of the top of my head (not my primary space), a gadget is a piece of code at a known or guessable location that provides specific functionality.
> Consequently, modern exploits tend to look like: (1) figure out how memory is laid out, or close enough, (2) calculate where a useful function is, that you can call with arbitrary parameters (aka a gadget), (3) abuse that function to do your bidding by controlling its parameters and the instruction pointer.
This is all correct, but generally a gadget is what a snippet of assembly / machine code that you call to get the CPU into a state to call a function. So its less a function and more a set of instructions (anywhere) that are useful.
So for example, you might have a gadget to set specific registers with values off the stack so you can call malloc with the correct size, etc.
- P5fRxh5kUvp2th 4y agoWell back in my day ... slips in dentures* a gadget was just a generic thing you played around with and did a thing. Now get the hell off my lawn you whippersnappers, before I throw my teef at you.
- ethbr0 4y agoThanks for the clarification! I figure if someone is curious enough + looks up links on their own, giving them a good answer is only fair. :)