[SIZE="4[FONT="System [URL="https://tik.lat/z0YnL"] WEBSITE[/URL]" sitemizin, protostar, bir diger degisle baslangic seviyesini bitirip, Nabula, Fushion diye tek tek gitmeyi planliyorum.
Sozu cok uzatmadan sorulara geceyim.
Soru -> stack0:
Soru bizden basitce, stack overflow yapip modified degiskeninin degerini degistirmemizi istiyor.
Basitce aciklamam gerekirse, koda baktigimiz anda buffer 64 karakterden daha uzun bir input aldiginda overflowa sebep olacak ve amacimiza ulasacagiz. Baslangic seviyesi icin gayet basit ve sevklendirici bir soru. Lakin gelin ben size bu soruyu nasil cozdugumu anlatayim.
Oncelikle stacki debugger ile actim. Main'e break point atip bi runladim. Daha sonra bu yetmedi tabii ki,
executablei hemen disassemble ile iyice actim.
[COLOR="SeaGreen
Sozu cok uzatmadan sorulara geceyim.
Soru -> stack0:
Kod:
#include <stdlib.h>
#include <unistd.h>
#include <stdio.h>
int main(int argc, char **argv)
{
volatile int modified;
char buffer[64];
modified = 0;
gets(buffer);
if(modified != 0) {
printf("you have changed the 'modified' variable\n");
} else {
printf("Try again?\n");
}
}
Basitce aciklamam gerekirse, koda baktigimiz anda buffer 64 karakterden daha uzun bir input aldiginda overflowa sebep olacak ve amacimiza ulasacagiz. Baslangic seviyesi icin gayet basit ve sevklendirici bir soru. Lakin gelin ben size bu soruyu nasil cozdugumu anlatayim.
Oncelikle stacki debugger ile actim. Main'e break point atip bi runladim. Daha sonra bu yetmedi tabii ki,
executablei hemen disassemble ile iyice actim.
[COLOR="SeaGreen