Hi,kann mir jemand sagen wie ich diesen Code,wenn ich die Stack Adresse kenne exploiten kann,damit ich die cin.get() Anweisung überspringen kann?Wenn man unter cout<<*ka schreibt *ka += 9,dann wird die cin.get() Anweisung übersprungen!Wie kann man das schaffen ohne diese Anweisung zu schreiben?
Betriebssystem:Windows,Compiler DevC++
Ich habe versucht bei cin>>ka folgendes einzugeben:
buffer vollschreiben: 12345678 ,dann Stack Pointer schreiben (Adresse von cout<<*ka um 9 erhöht)
Funktioniert aber nicht???
Normalerweise müsste doch nach "12345678" buffer voll sein und der andere Teil wird in den Stack Pointer geschrieben?
Wenn jemand das weiß,bitte Quellcode schicken.
Betriebssystem:Windows,Compiler DevC++
Code:
#include <iostream.h>
void fuckn(char *s)
{
char buffer[8];
int *ka = (int*)&s-1;
cout << *ka;
strcpy(buffer,s);
}
int main()
{
char ka[100];memset(ka,0,sizeof(ka));
cin >> ka;
fuckn(ka);
cin.get();
cin.get();
cout << "\a\a\a";
system("PAUSE");
return 0;
}
Ich habe versucht bei cin>>ka folgendes einzugeben:
buffer vollschreiben: 12345678 ,dann Stack Pointer schreiben (Adresse von cout<<*ka um 9 erhöht)
Funktioniert aber nicht???
Normalerweise müsste doch nach "12345678" buffer voll sein und der andere Teil wird in den Stack Pointer geschrieben?
Wenn jemand das weiß,bitte Quellcode schicken.
Zuletzt bearbeitet: