首页
社区
课程
招聘
[求助]CTF dice题
2020-4-13 09:38 2713

[求助]CTF dice题

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

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

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

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

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

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

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

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

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


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

[培训]内核驱动高级班,冲击BAT一流互联网大厂工 作,每周日13:00-18:00直播授课

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