Overflow main function
14-02-2008,15:29 door
Veel buffer overflow's die geschreven worden worden worden
geschreven vanuit een functie in veel voorbeelden. BV. Zoals
voorbeeld van http://www.linuxjournal.com/article/6701
http://rafb.net/p/wCsJhs69.html
Waarbij de void function gebruikt wordt voor een buffer overflow.
In dit voorbeeld zijn er maar twee buffers waar waarden voor zijn
gedeclareerd. En er dus een crash zou moeten op treden.
Wat veel niet weten is dat main zelf ook een functie is en kwets
baar kan zijn voor overflows. Om een simpel voorbeeld te geven
http://rafb.net/p/Qlweac30.html
Niemand zou verwachten dat ( * main) gedeclareerd zou kunnnen
worden in main zelf. Laat staan dat de pointer weg geschreven zou
kunnen worden in combinatie met int main. Dit zelfde proces
kan je ook toepassen bij een van de meest bekende buffer overflows
van strcpy. Een voorbeeld van strcpy overflow is :
http://rafb.net/p/hmtXzJ25.html
Door dat de pointer van *ptr te groot is onstaat er een buffer overflow.
Dit zelfde type kan je ook toepassen op main. Door main zelf als
functie te gebruiken. En de pointer van main te gebruiken.
http://rafb.net/p/PAUvES92.html
=================================================
Error!
=====
Microsoft visual c++ libary
program c:debugcpp1.c
module:I368
File:I368/chkesp.c
line 42
The value of ESP was not properly saved across a function call. This
is usually a
result of calling a function with one calling convention with a function
pointer
declared with a diffrent calling convention.
(press retry to debug the application)
geschreven vanuit een functie in veel voorbeelden. BV. Zoals
voorbeeld van http://www.linuxjournal.com/article/6701
http://rafb.net/p/wCsJhs69.html
Waarbij de void function gebruikt wordt voor een buffer overflow.
In dit voorbeeld zijn er maar twee buffers waar waarden voor zijn
gedeclareerd. En er dus een crash zou moeten op treden.
Wat veel niet weten is dat main zelf ook een functie is en kwets
baar kan zijn voor overflows. Om een simpel voorbeeld te geven
http://rafb.net/p/Qlweac30.html
Niemand zou verwachten dat ( * main) gedeclareerd zou kunnnen
worden in main zelf. Laat staan dat de pointer weg geschreven zou
kunnen worden in combinatie met int main. Dit zelfde proces
kan je ook toepassen bij een van de meest bekende buffer overflows
van strcpy. Een voorbeeld van strcpy overflow is :
http://rafb.net/p/hmtXzJ25.html
Door dat de pointer van *ptr te groot is onstaat er een buffer overflow.
Dit zelfde type kan je ook toepassen op main. Door main zelf als
functie te gebruiken. En de pointer van main te gebruiken.
http://rafb.net/p/PAUvES92.html
=================================================
Error!
=====
Microsoft visual c++ libary
program c:debugcpp1.c
module:I368
File:I368/chkesp.c
line 42
The value of ESP was not properly saved across a function call. This
is usually a
result of calling a function with one calling convention with a function
pointer
declared with a diffrent calling convention.
(press retry to debug the application)









