weixin_54770018 2021-11-19 12:00 采纳率: 0%
浏览 65

一个关于缓冲区溢出的问题

有如下的代码

int login() { 
    char username[8]; 
    char password[8]; 
    gets(username); 
    gets(password); 
    return check_match_in_database(username, password); 
} 


上面函数的部分汇编代码:
Pushl %ebp
movl %esp, %ebp
subl $40, %esp
leal -16(%ebp), %eax
movl %eax, (%esp)
call _gets
leal -24(%ebp), %eax
movl %eax, (%esp)
call _gets

题目要求:
如果用户名和密码都正确,就会调用login_ok函数,已知login_ok的地址为0x804013da,请构造一个input,使login_ok被调用.
(原文:In the normal process, if the username and the password are both ok, the function ‘login_ok’ will be called to indicate login success. We’ve already known that the address of ‘login_ok’ is 0x804013da. Can you construct an input to make the function ‘login_ok’ be called after ‘login’ returns? You need to specify the key bytes and their positions rather than the complete input. And give one brief explanation about your input. )

  • 写回答

2条回答 默认 最新

  • CSDN专家-link 2021-11-19 12:10
    关注

    用函数指针吧

    评论

报告相同问题?

问题事件

  • 创建了问题 11月19日

悬赏问题

  • ¥15 电视版的优酷可以设置电影连续播放吗?
  • ¥50 复现论文;matlab代码编写
  • ¥30 echarts 3d地图怎么实现一进来页面散点数据和卡片一起轮播
  • ¥15 数字图像的降噪滤波增强
  • ¥15 心碎了,为啥我的神经网络训练的时候第二个批次反向传播会报错呀,第一个批次都没有问题
  • ¥15 MSR2680-XS路由器频繁卡顿问题
  • ¥15 VB6可以成功读取的文件,用C#读不了
  • ¥15 如何使用micpyhon解析Modbus RTU返回指定站号的湿度值,并确保正确?
  • ¥15 C++ 句柄后台鼠标拖动如何实现
  • ¥15 有人会SIRIUS 5.8.0这个软件吗