在内存中,地址是上低下高,利用内存时是从内存高位开始利用。但在已经定义了的内存小块内存中,内存却是从上到下(即从低址向高址)利用。
在完成实验的过程中,要注意地址的情况,内存数据与数值数据是不同的。在数值数据中,我们从左到右读,但在内存数据中,它是从右到左两个一读。比如数值数据0x12345678,转变为内存数据就是0x78563412。
这个实验实际上就是巧用字符串截断符null。
在实验中要弄清楚地址,地址一搞通,实验就差不多完成了
栈帧布局:
覆盖邻接变量:
修改邻接变量成功:
在这个实验中,如果你的输入字符串字符小于1234567,那么strcmp()函数会返回 -1,-1会将authenticated的内存改为0xFFFFFFFF,这时字符数组再溢出的话,authenticated的内存会被改为0xFFFFFF00,这样将不能通过验证,显示incorrent password!
免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。