EasyXorReverse 未解决

分数: 0 金币: 0
所属赛事: SusCTF 2017
题目作者: 未知
一血奖励: 0金币
解  决: 1131
提  示:
描  述:
Susctf{}
其  他: EasyXor
评论
jianyi 26天前

是我喜欢的签到题,直接开秒

回复 0

ballice 1月前

为什么算出来的答案是Susctf{******},而正确答案是Susctf{***}呢

回复 1
TTxyz 1月前

作者的小心机

回复 0

findbaicha 2月前

values = [83, 116, 113, 96, 112, 99, 125, 78, 87, 103, 57, 110, 104, 82, 102, 106, 113, 32, 123, 125, 115, 104] flag = ''.join(chr(i ^ value) for i, value in enumerate(values))

回复 1
ballice 1月前

怎么个思路啊,讲解一下呗

回复 0

Clear2 4月前

反汇编可以看到最终需要让v4为真,我们发现关键代码 if ( v8[i] != (i ^ s[i]) ),如果满足这个条件,v4就为假,所以需要v8[i] == (i ^ s[i]) ,所以,我们需要根据异或的可逆性反推出正确的输入,举个例子,如果A^B==C 则A==B^C B==A^C (顺序无所谓,A^B==B^A ) 所以,s[i] = v8[i] ^ i

回复 0

零基础110 6月前

Susctf{*****}

回复 0

零基础110 6月前

0基础怎样看得懂

回复 0

dikei 6月前

奶位真能选摩西女吗

回复 1

tuyue八 9月前

while(c[i]){c[i]=c[i]^i,i++}。

回复 0

dreamyacht2 11月前

v8 = [83, 116, 113, 96, 112, 99, 125, 78, 87, 103, 57, 110, 104, 82, 102, 106, 113, 32, 123, 125, 115, 104] correct_string = ''.join(chr(v8[i] ^ i) for i in range(len(v8))) print(correct_string)

回复 0

azcvcza 1年前

签到题,发现判断条件 v8[i]!=i^s[i],则s[i]=v8[i]^i,写循环异或得到s[]数组,进行ascii转换即得flag

回复 0
CherryLanterns 5月前

@erxpa 伪代码采用异或加密,异或加密是一种简单的对称加密方式,具有可逆性,伪代码里面验证条件为 v8[i] == (i ^ s[i]),是异或加密,可通过 s[i] = i ^ v8[i] 直接计算出原始字符串 s。

回复 0

erxpa 8月前

刚入门,这个怎么发现的,麻烦说一下可以吗?哈哈,谢谢

回复 0

WriteUp

image
heyile

1 金币

评分(1)

解题动态

浪浪山鸠摩智 攻破了该题 3小时前
烟雨江叶 攻破了该题 3小时前
benx4899 攻破了该题 2天前
鲫鱼豆腐虾 攻破了该题 4天前
BeiZzzhou 攻破了该题 4天前
jc11459487 攻破了该题 5天前
3944883822 攻破了该题 6天前
xjuqq 攻破了该题 7天前
zuohuaya111 攻破了该题 8天前
wanna 攻破了该题 8天前
啦啦啦7 攻破了该题 12天前
fyc2866 攻破了该题 14天前
小拨不会逆向 攻破了该题 15天前
sirlddf 攻破了该题 16天前
243134739 攻破了该题 16天前
13612180109 攻破了该题 17天前
xiaoyu网安 攻破了该题 18天前
Aerelin 攻破了该题 18天前
changjuan 攻破了该题 19天前
yanhuo 攻破了该题 19天前
问题反馈