[WP]XCTF-流浪者

1、查壳

 2、运行程序

当我们不输入任何字符时

输入错误字符串时

3、载入 IDA 中,查看字符串,根据这些信息可以将部分函数重命名以方便进一步分析

 

 4、进入到 main 函数中,分别处理数字字符、小写字符、大写字符,初步运算后将结果传入 encode() 函数进一步处理

直接查看 aAbcdefghiabcde 为一代换表,而下标即是上一步所传递的参数,之后将代换后的字符串与 "KanXueCTF2019JustForhappy" 相比对

5、逆向写出 EXP,运行得到 flag

 1 s = 'KanXueCTF2019JustForhappy'
 2 str1 = 'abcdefghiABCDEFGHIJKLMNjklmn0123456789opqrstuvwxyzOPQRSTUVWXYZ'
 3 a1 = []
 4 for i in s:
 5     for j in range(len(str1)):
 6         if str1[j] == i:
 7             a1.append(j)
 8             break
 9 
10 print(a1)
11 
12 flag = ''
13 for i in a1:
14     if i <= 61 and i >= 36: i += 29
15     elif i <= 35 and i >= 10: i += 87
16     elif i <= 9 and i >= 0: i += 48
17     flag += chr(i)
18 
19 print(flag)

 

原文地址:https://www.cnblogs.com/Tsuiyields/p/13716281.html