Charming_IDA
打开,之后找到入口:

然后找到main

很明显这里在获取输入了之后 调用了change函数,之后把change出来的东西交给check去比较
看change:

逐个字符遍历过去ASCII码-1
然后交给check检查,看看是否相等

这个 UHC@QzHC@0rm/s^b/lo0dw2c| 就是-1之后的结果
构造payload
cipher = "UHC@QzHC@^0r^m/s^b/lo0dw2c|"
flag = "".join(chr(ord(c) + 1) for c in cipher)
print("Correct input should be:", flag)
flag VIDAR{IDA_1s_n0t_c0mp1ex3d}
运行断点调试 发现程序运行的时候 aGZLzLgVlxvjgZL 从GLzLg{vLxvjGLzLg{vLxvjxvj22 变成了 This_is_the_keyThis_is_the_keykey!!
这是为什么呢?
找到相关的字符串 设置断点 并动态调试


正文完