EasyXorReverse 未解决

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

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

回复 0
CherryLanterns 6月前

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

回复 0

erxpa 8月前

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

回复 0

hengdonghui 1年前

没用到IDA深层次的功能。

回复 0

hengdonghui 1年前

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

回复 7
lvshuoqi 11月前

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

回复 2

2509048118 1年前

我的ida打不开这个

回复 0

whiteHaves 1年前

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

回复 0

Mr.J 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

GaMi 1年前

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

回复 0

13720959380 1年前

#include <iostream> int main() { char str1[] = "stq`pc}NWg9nhRfjq {}sh"; for ( int i = 0; i < 22; ++i) { str1[i] = i ^ str1[i]; } printf("%s&

回复 0

ADCC千月 1年前

我用的是radare2, main() 里面是16进制的,需要转一次10进制,其他都一样。

回复 0

bugkufz 1年前

wp真水

回复 1

Superyang 1年前

#!/usr/bin/python3 a=[83,116,113,96,112,99,125,78,87,103,57,110,104,82,102,106,113,32,123,125,115,104] b='' for i in range(len(a)): b += chr(a[i]^i) print (b)

回复 0

WriteUp

image
heyile

1 金币

评分(1)

解题动态

潇洒哥 攻破了该题 2天前
2025300019 攻破了该题 2天前
联通安抚载 攻破了该题 4天前
Spreng 攻破了该题 5天前
mianhttt 攻破了该题 5天前
1164302985 攻破了该题 6天前
Ethan552525 攻破了该题 8天前
flaglspursuer 攻破了该题 9天前
归澜4645 攻破了该题 9天前
kkg 攻破了该题 10天前
11223 攻破了该题 10天前
1131728156 攻破了该题 10天前
ndaygril 攻破了该题 10天前
为她学ctf 攻破了该题 11天前
CRCR 攻破了该题 13天前
98岁单身带两娃 攻破了该题 14天前
nagatoyuuki 攻破了该题 14天前
Champeon 攻破了该题 14天前
君子难言旧梦 攻破了该题 15天前
wentiny 攻破了该题 16天前
问题反馈