[WP]XCTF-no-strings-attached

1、查看文件信息,32位

2、载入IDA中,发现有个decrypt函数需要注意。进入main等函数查看源码。

 

 

 

 

 

3、跟踪 authenticate() 函数中 if 语句 print() 函数发现了success 的字样。因此我们能知道当 authenticate() 函数中 ws 和 s2 相等时,会输出正确结果。

而 s2 是由 decrypt 函数加密后所得。

 

 

4、跟踪 s 和 dword 两个参数可以在rodata段查看到其值。

需要注意的是,这里 s 的实际上是 0x143A, 0x1436, 0x143B... 

同理的,dword 是 0x1401, 0x1402...

 

 

5、得到两个参数的值后,便可以根据 decrypt 函数编写 exp,运行得到 flag。

 1 a2 = [1, 2, 3, 4, 5]
 2 v7 = len(a2)
 3 s = [0x3a, 0x36, 0x37, 0x3b, 0x80, 0x7a, 0x71, 0x78, 0x63, 0x66, 0x73, 0x67, 0x62, 0x65, 0x73, 0x60, 0x6b, 0x71, 0x78, 0x6a, 0x73, 0x70, 0x64, 0x78, 0x6e, 0x70, 0x70, 0x64, 0x70, 0x64, 0x6e, 0x7b, 0x76, 0x78, 0x6a, 0x73, 0x7b, 0x80]
 4 v6 = len(s)
 5 v2 = v6
 6 dest = s
 7 i = 0
 8 while i < v6:
 9     dest[i] -= a2[i%5]
10     i += 1
11 
12 flag = ''
13 for x in dest:
14     flag += chr(x)
15 
16 print(flag)

 

 

posted @ 2020-09-11 17:37  祟役丶  阅读(344)  评论(0编辑  收藏  举报