James Hoi's Blog

攻防世界逆向刷题

Word count: 409Reading time: 1 min
2021/02/06 Share

前言

有些题目之前就做完了,我不想再写WP了(手动滑稽保命)

666

ida放进去发现是普通的异或,直接秒
image.png

1
2
3
4
5
6
7
8
9
10
11
12
enflag = "izwhroz\"\"w\"v.K\".Ni"
key = 0x12
enflag = [ord(i) for i in enflag]

flag = []
for i in range(6):
flag.append(chr((enflag[3*i]^key)-6))
flag.append(chr((enflag[3*i+1]^key)+6))
flag.append(chr(enflag[3*i+2]^key^6))

print("".join(flag))
#unctf{b66_6b6_66b}

IgniteMe

找到验证以及加密位置,xor反解即得flag
image.pngimage.png

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
cipher = [
0x0D, 0x13, 0x17, 0x11, 0x02, 0x01, 0x20, 0x1D, 0x0C, 0x02,
0x19, 0x2F, 0x17, 0x2B, 0x24, 0x1F, 0x1E, 0x16, 0x09, 0x0F,
0x15, 0x27, 0x13, 0x26, 0x0A, 0x2F, 0x1E, 0x1A, 0x2D, 0x0C,
0x22, 0x04
]

enflag = "GONDPHyGjPEKruv{{pj]X@rF"
print("EIS{")
for i in range(len(enflag)):
tmp = ((ord(enflag[i])^cipher[i])-72)^0x55
if tmp <= 90: tmp += 32
else: tmp -= 32
print(chr(tmp),end="")
print("}")

debug

发现是.NET的exe,放进dnSpy定位到关键位置并且断点动态即得flag
image.pngimage.pngflag{967DDDFBCD32C1F53527C221D9E40A0B}

BabyXor

一开始看到pushad我以为加了个壳,然而脱壳后的文件运行不了,放进IDA看了个寂寞
image.png
所以只好自己直接动态调试看,谁知道是个假的Xor….,动调一下flag就生成出来了
image.png
flag{2378b077-7d6e-4564-bdca-7eec8eede9a2}

BABYRE

放进ida发现有个奇怪的变量异或后像函数一样调用,实际上是做了个异或加密防止静态分析,动调judge解密之后双击judge -> 在最上面右键->Create Function -> F5生成伪代码
image.pngimage.png
发现就是普通异或题目,导出后再异或即得flag

1
2
3
4
5
6
7
8
enflag = [
0x66, 0x6D, 0x63, 0x64, 0x7F, 0x6B, 0x37, 0x64, 0x3B, 0x56,
0x60, 0x3B, 0x6E, 0x70
]

for i in range(len(enflag)):
print(chr(enflag[i]^i),end="")
# flag{n1c3_j0b}
CATALOG
  1. 1. 前言
  2. 2. 666
  3. 3. IgniteMe
  4. 4. debug
  5. 5. BabyXor
  6. 6. BABYRE