[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)