EasyXorReverse 未解决

分数: 0 金币: 0
所属赛事: SusCTF 2017
题目作者: 未知
一血奖励: 0金币
解  决: 1181
提  示:
描  述:
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 9月前

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

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

解题动态

2495280533 攻破了该题 4小时前
changli 攻破了该题 1天前
linatiny 攻破了该题 3天前
fg 攻破了该题 3天前
lplum 攻破了该题 3天前
wjywjy 攻破了该题 3天前
wangyuanshen 攻破了该题 4天前
MADAYAN 攻破了该题 5天前
heiye123 攻破了该题 5天前
harry2025 攻破了该题 5天前
sunshb07 攻破了该题 6天前
枫五2233 攻破了该题 7天前
18940001335 攻破了该题 7天前
youduck7 攻破了该题 7天前
szt 攻破了该题 8天前
潇洒哥 攻破了该题 10天前
2025300019 攻破了该题 10天前
联通安抚载 攻破了该题 13天前
Spreng 攻破了该题 13天前
mianhttt 攻破了该题 14天前
问题反馈