pwnable.kr-collision

pwnable的第二题
题目是这个样子滴然后正常联接,查看.c文件
不算很难的c程序
简单分析一下,他大概是要输入20字节的参数,然后在check_password里强制转换为五个int类型的数(一个int 类型刚好是4个字节,4x5=20,所以传得参数刚好用完)。
之后,if(hashcode…)那一句告诉我们:转换过的数要== 0x21DD09EC
又因为我们输入的字符在在内存中是16进制保存的。0x21DD09EC(16)==568134124(10);
这里我们不能简单的提供参数"\x21\xDD\x09\xEC"+"\x00"x16就行了,因为长度的问题,所以我们拆分这个数
我们可以用一个大数加上后面四个相等的数就行了,即A+4xB的和就行了。
假定B为"\x01\x01\x01\x01",得到B = 16843009(10)这个数,将hashcode-4xB就可以的到A的值了,将A的值转换为4个16进制的数据,
得到A = “\xe8\x05\xd9\x1d”, 所以我们可以提供参数"\xe8\x05\xd9\x1d\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01"
好了,分析到此结束,百度了一下输入的方式(是真的菜QAQ)
得知输入:
在这里插入图片描述flag get√

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值