EasyXorReverse 未解决

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

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

回复 2
TTxyz 1年前

作者的小心机

回复 0

findbaicha 1年前

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))

回复 3
ballice 1年前

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

回复 0

Clear2 1年前

反汇编可以看到最终需要让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

回复 4

零基础110 1年前

Susctf{*****}

回复 0

零基础110 1年前

0基础怎样看得懂

回复 0

dikei 1年前

奶位真能选摩西女吗

回复 1

典狱长 1年前

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

回复 0

dreamyacht2 1年前

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)

回复 1

azcvcza 1年前

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

回复 0
CherryLanterns 1年前

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

回复 0

erxpa 1年前

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

回复 0

hengdonghui 2年前

没用到IDA深层次的功能。

回复 0

WriteUp

image
heyile

1 金币

评分(3)

解题动态

jixiang 攻破了该题 8小时前
daylight123 攻破了该题 20小时前
yy921107 攻破了该题 21小时前
505666692 攻破了该题 1天前
yunjing 攻破了该题 1天前
hshs 攻破了该题 1天前
霖月 攻破了该题 1天前
12150 攻破了该题 2天前
cxy..... 攻破了该题 2天前
yangchunxue 攻破了该题 3天前
zmjjkk..... 攻破了该题 3天前
Menlian 攻破了该题 3天前
zzz122 攻破了该题 3天前
itsjimo 攻破了该题 4天前
wbug 攻破了该题 4天前
花开花落 攻破了该题 4天前
悦山居 攻破了该题 5天前
badleo 攻破了该题 5天前
lyp123 攻破了该题 6天前
qqz 攻破了该题 6天前
问题反馈