GFSJ0417-【deedeedee】
签到
动调题目給了一个hex 我们去解密
676c60677a74326d716c6074325f6c6575347172316773616c6d686e665f68735e6773385e345e3377657379316e327d
gl`gzt2mql`t2_leu4qr1gsalmhnf_hs^gs8^4^3wesy1n2}
能看到这个非常像是flag 但是我们又不知道这个进行了哪些操作 我们尝试第一个就是xor
一般都是xor头部
a = b'gl`gzt2mql`t2_leu4qr1gsalmhnf_hs^gs8^4^3wesy1n2}'
b = b'flag{'
for i in range(0,len(b),2):
for j in range(100):
if a[i]^j == b[i]:
print(j)
break
运行结果都是1
那么exp
a = bytearray(b'gl`gzt2mql`t2_leu4qr1gsalmhnf_hs^gs8^4^3wesy1n2}')
for i in range(len(a)):
if i % 2 == 0:
a[i] ^= 1
print(a.decode())
flag
flag{t3mplat3_met4pr0gramming_is_gr8_4_3very0n3}
那么有人会说了 这个.d文件是什么呀 当然是这个从程序的源码了 当然 flag也在里面 d语言
D 语言是一门编译型语言,可以理解成“带很多高级特性的 C/C++ 风格语言”。
它长得像 C/C++,但语法更现代,标准库也更方便。
import std.stdio;
import std.range;
import std.algorithm;
import std.string;
import std.traits;
import std.conv;
template enc(string key) {
string enc(string s) pure @safe {
pragma(msg, "encrypting with key...", key);
char enc_add = cast(char) (s.length.to!int);
string output = "";
foreach(a,b; cycle(key).zip(s)) {
output ~= a ^ b ^ enc_add;
}
return output;
}
}
mixin template ForeachUnrolled(string F, int N, int MIN=1) {
pragma(msg, "ForEach...", N, " to ", MIN);
static if (N > 1) {
mixin ForeachUnrolled!(F, N-1, MIN);
}
mixin MakeFunction!(F, N);
}
mixin template MakeFunction(string F, alias T) {
// Convert $ and %
mixin(translate(F, ['$' : T.to!(string), '%' : (T-1).to!string]));
}
string encrypt(string s) pure @safe {
const int n = 499; // 500 is DMD's template recursion limit
//const int n = 30;
string output_0 = s; // base case with our string
mixin ForeachUnrolled!("string output_$ = enc!($$$.to!string)(output_%);", n);
mixin("return output_" ~ n.to!string ~ ";");
}
string hexencode(string s) {
string encoded = "";
foreach (c; s) {
encoded ~= format("%02x", c);
}
return encoded;
}
string enc_flag = encrypt("flag{t3mplat3_met4pr0gramming_is_gr8_4_3very0n3}");
void main() {
writeln("Your hexencoded, encrypted flag is: ", enc_flag.hexencode);
writeln("I generated it at compile time. :)");
writeln("Can you decrypt it for me?");
}
评论