一.[WUSTCTF2020]level3
打开IDA反汇编,发现就是base64加密
这里rand就是与&搭配设置奇偶数2分随机
但是根据提示不是标准base64加密
首先想到魔改密码表,追踪进去,发现没有什么变化啊
尝试对Base64字符串解码也不对
追踪密码表Ctrl+X发现了猫腻,原来改标不在main函数啊,然后发现是交换,写脚本再解密就行了
补充:魔改不一定在主函数中,可能在Start阶段
脚本:
key0 = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/"
key = list(key0)
for i in range(10):key[i],key[19-i] = key[19-i],key[i]
print("".join(key))
解密:随波逐流,将新的密码表放在密钥,Base64解码
得到wctf2020{Base64_is_the_start_of_reverse}
补充:调试查看在Base加密时的密码表也可以知道密码表
ELF文件,IDA Linux远程调试,下断点
找到正确密码表