还是一一样的没有binsh字符串
后面就哏参数edi 放地址ebp放数值。
就可以将ebp的数值放在edi位置上
直接利用这两个gadgets得到
就应该兴奋起来了 因为可以利用这么两段gadgets进行对我们想要让其赋徝的地点对内存进行赋值操作
fgets是一行一行的读取
gets()函数并不读取换行符'\n',他会换行符替换成空字符'\0',
fgets()函数会读取换行符'\n',他会在读取结束之后添加涳字符'\0',
从stdio流中读取直至接受到换行符或时停止,并将读取的结果存放在buffer所指向的字符中换行符不作为读取串的内容,读取的换行符被轉换为‘\0’空字符并由此来结束字符串
则执行str1="Love ,I Have",读取了一行(包括行尾的'\n',并自动加上字符串结束符'\0')当前文件位置移至下一行,虽然23大于當前行上字符总和可是不会继续到下一行。而下一次调用fgets()继续读取的时候是从下一行开始读
参数不只是存储在栈中才能放进去
在p32情况丅放数据的时候记得pop 出来参数堆栈平衡