for following function:
void say_hello (void) { char name[5]; gets(name); //this unsafe function use. results in stack overflow printf("hello %s\n", name); } 
i know rbp+var_5 argument gets() function , rbp+var_10 argument printf function. rbp+var_14? , why being moved eax register?
you read backwards. assembly language code in intel syntax, looks instruction destination, source.
the line mov dword [ss:rbp:var+14], eax copies eax, contains return value calling printf(), temporary variable on stack. variable thrown away (no code afterwards reads it).
Comments
Post a Comment