EasyXorReverse 未解决

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

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

Susctf{*****}

回复 0

零基础110 2月前

0基础怎样看得懂

回复 0

dikei 2月前

奶位真能选摩西女吗

回复 1

tuyue八 5月前

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

回复 0

dreamyacht2 6月前

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 7月前

签到题,发现判断条件 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 3月前

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

回复 0

hengdonghui 10月前

没用到IDA深层次的功能。

回复 0

hengdonghui 10月前

WriteUp 1、下载题目的附件后,发现附件没有后缀,不能确定文件的类型,于是使用软件010Editor打开附件“EasyXor_”。 发现文件头是: 7F 45 4C 46 对应的字符串是:“ELF” 是一个ELF文件,是一个可执行文件。 根据题目中的Reverse单词,提示我们:该题需要反汇编。 既然需要反汇编,就使用反汇编软件ida打开该文件。

回复 4
lvshuoqi 6月前

@2509048118 文件后缀改成.elf,放进ida里找到主函数main,按F5生成c伪代码

回复 1

2509048118 7月前

我的ida打不开这个

回复 0

whiteHaves 10月前

又是整体累积增码,字符转ASCII码之后每次xor上递增后缀就可以了 while(c[i]){c[i]=c[i]^i,i++}。

回复 0

WriteUp

image
heyile

1 金币

评分(1)

解题动态

lumia143 攻破了该题 11小时前
bugkaren 攻破了该题 1天前
渴死的鱼 攻破了该题 1天前
15963115656 攻破了该题 1天前
1345736679 攻破了该题 1天前
白灵 攻破了该题 1天前
udgryy 攻破了该题 1天前
15069910582 攻破了该题 1天前
1563247890 攻破了该题 1天前
sssm 攻破了该题 1天前
liujiazheng 攻破了该题 1天前
3158570006 攻破了该题 1天前
15650558936 攻破了该题 1天前
19558925692 攻破了该题 1天前
shuibian 攻破了该题 1天前
19558925664 攻破了该题 1天前
19558925616 攻破了该题 1天前
2176397593 攻破了该题 1天前
YuzikiYukari 攻破了该题 1天前
XG230272 攻破了该题 1天前
问题反馈