首页
社区
课程
招聘
未解决 [求助]CTF dice题
发表于: 2020-4-13 09:38 3054

未解决 [求助]CTF dice题

2020-4-13 09:38
3054
各位大佬求助一题Dice题啊,顺着思路往下做但是拿到的flag不对,有没有大佬帮看下是什么问题

题目是一题骰子题,无壳,查看字符串找到flag输出的地方

需要连续掷骰子掷出制定的数达到判定条件

取1-6随机数然后和6取余,再进行取值加和运算sum

拖进Wdb发现第一个比较函数处第一次骰子和2比较,跳转是jne跳转(之后的跳转全是jne)
nop掉之后顺序执行,跳过比较步骤,程序继续执行

按照这个思路把所有需要投掷骰子、比较的地方都nop掉以后程序输出flag

但是flag不正确,在大佬们的提示下发现自己在执行时忽略了在第1-3次和最后一次投掷骰子时会有异或算法,直接把原始字符串输出出来了

最后一次和sum异或后得到flag:

自己写了个验证脚本,把每一次异或的结果和最后的flag输出出来


再次感谢评论区@一谷米粒@kittener两位大佬指点

[招生]系统0day安全班,企业级设备固件漏洞挖掘,Linux平台漏洞挖掘!

最后于 2020-4-15 15:44 被Deepo编辑 ,原因: 完成题目
上传的附件:
收藏
免费 1
支持
分享
最新回复 (7)
雪    币: 575
活跃值: (586)
能力值: ( LV3,RANK:20 )
在线值:
发帖
回帖
粉丝
2
交叉引用看flag字符串被哪些地方改过
2020-4-13 14:08
0
雪    币: 4313
活跃值: (1534)
能力值: ( LV5,RANK:75 )
在线值:
发帖
回帖
粉丝
3
前三次摇骰子,每次都进行了异或操作,共进行了三次。之后进入关键函数后,还进行了一次异或。也就是说这个字符串总共进行了四次异或,然后才可以得出正确的答案。
最后于 2020-4-13 14:27 被一谷米粒编辑 ,原因:
2020-4-13 14:09
0
雪    币: 500
活跃值: (25)
能力值: ( LV2,RANK:15 )
在线值:
发帖
回帖
粉丝
4
你输出的这个字符串是原字符串,也就是说未进行任何异或操作。。。
2020-4-13 14:26
0
雪    币: 202
活跃值: (223)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
5
一谷米粒 前三次摇骰子,每次都进行了异或操作,共进行了三次。之后进入关键函数后,还进行了一次异或。也就是说这个字符串总共进行了四次异或,然后才可以得出正确的答案。
感谢大佬 重新做了以后找到了前三次投掷和最后一次投掷里 原字符串和sum进行异或计算 
最后于 2020-4-14 11:22 被Deepo编辑 ,原因:
2020-4-14 09:14
0
雪    币: 202
活跃值: (223)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
6
kittener 你输出的这个字符串是原字符串,也就是说未进行任何异或操作。。。
感谢大佬 重新做了以后找到了前三次投掷和最后一次的异或计算
最后于 2020-4-14 10:17 被Deepo编辑 ,原因:
2020-4-14 09:14
0
雪    币: 0
活跃值: (14)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
7
我怎么做也做不出来,能否指导一下?
2020-9-10 15:47
0
雪    币: 202
活跃值: (223)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
8
我不想把微信名字取的太长 我怎么做也做不出来,能否指导一下?
指导说不上 可以一起交流呀 我很菜的
2020-9-28 16:21
0
游客
登录 | 注册 方可回帖
返回
//