使用exeinfo查壳
是一个无壳32位的程序

直接上ida
直接看main函数
将用户的输入保存到buffer[]
使用sub_401260函数处理buffer[]
Str1指向处理之后sub_401260的返回值
最后比较Str1和Str2的值

跟进sub_401260函数查看
瞅一眼代码 发现很眼熟 看着像base64
继续往下看

看到了byte_413000 双击进去查看
发现了对base64的编码表进行了修改

到这里题目的逻辑已经很清晰了
直接写脚本跑flag
import base64
def main():
string1 = "ZYXABCDEFGHIJKLMNOPQRSTUVWzyxabcdefghijklmnopqrstuvw0123456789+/"
string2 = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/"
encode = "x2dtJEOmyjacxDemx2eczT5cVS9fVUGvWTuZWjuexjRqy24rV29q"
print(base64.b64decode(encode.translate(str.maketrans(string1,string2))))
if __name__ =="__main__":
main()flag{sh00ting_phish_in_a_barrel@flare-on.com}