思路:
使用exeinfo查壳
是一个无壳32位的程序
直接上ida
直接看main函数
将用户的输入保存到buffer[]
使用sub_401260函数处理buffer[]
Str1指向处理之后sub_401260的返回值
最后比较Str1和Str2的值
跟进sub_401260函数查看
瞅一眼代码 发现很眼熟 看着像base64
继续往下看
看到了byte_413000 双击进去查看
发现了对base64的编码表进行了修改
到这里题目的逻辑已经很清晰了
直接写脚本跑flag
exp:
import base64
def main():
string1 = "ZYXABCDEFGHIJKLMNOPQRSTUVWzyxabcdefghijklmnopqrstuvw0123456789+/"
string2 = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/"
encode = "x2dtJEOmyjacxDemx2eczT5cVS9fVUGvWTuZWjuexjRqy24rV29q"
print(base64.b64decode(encode.translate(str.maketrans(string1,string2))))
if __name__ =="__main__":
main()


