????????????——Buffer overrun

????????BO??

????BO?????????????????C??????????????????????????棬???????????????????棬??????????????????????????????????磬

void foo(char* input)
{
char buf[100];
strcpy(buf?? input);
}

??????н??г????飬?????????????input????????д????????????????????????

???????BO????????????

??????copy???????????stack??????buffer??????buffer??overwritten?????????????stack??buffer overrun????stack?????????λ???????????????????????????????????д??????BO??ж??????????????????

X86 EBP Stack Frame
Highest address
Arguments
Return address
Previous EBP
Saved rigisters
local storageLowest address

??????C?????У????????????????????????????????level????????????????????????foo??????????stack???????±??????????????????????????????????????????????????????????????????return address?? ?????EBP????????????????????????????????????????????????100??????????BO?????????????????buf??????棬??????????return address????????????????????return address??????????buf????????????????????buf[0]???????????buf??????????????????????????????????????????????return address??????????????????????

????????????

?????????????????????????????????С???к??в????????????????????????????????????????????????в????????????п??????????????????????в?????????????????????????????????????????????в?????????в????????????????????????????????????????????????????

??????в?????????????????????????????????????????????????????????????????Щ???????????????????????????????????????????????????

??????в?????????????????????в????????????????????????(RE)?????????????????????????????(RCE)??????????????????????????????????????£?????????????????????????????????а?????????????????????????а?????????????????????????????????????(binary auditing)??????????????????????”????????”????????о?????????????????????????????????????????????????????????????????????????????????á?

??????????????????ó????????????CPU???????????????????Win32???μ????е?????????OllyDbg18????????????????????????????Microsoft WinDbg(????????”wind bag”)19??WinDbg??Windows???????????20?е??????????Microsoft???????????????OllyDbg???????Oleh Yuschuk??????????????????????????WinDbg???????????????????????????????????????????????????????????????????OllyDbg?????21??UNIX????????и???????????????GNU Project Debugger22(GDB)?????е?????????????????????GDB??????????е??????????UNIX/Linux????ж????????????????

????????к?в?????????????????????????в???????С??????????????????????С?