buu练题记录16
0x00 [羊城杯 2020]easyre
oxoo1 查壳
无壳,64位程序,用IDA64打开
0x02 IDA64
用ida分析可以轻松发现加密的字符串以及验证模式
三次比较简单的加密
0x03 exp
import base64
from string import digits, ascii_lowercase, ascii_uppercaseflag = ''
str2 = "EmBmP5Pmn7QcPU4gLYKv5QcMmB3PWHcP5YkPq3=cT6QckkPckoRG"# 凯撒解密
for i in str2:if i in digits:flag += digits[(digits.index(i) - 3) % 10]elif i in ascii_lowercase:flag += ascii_lowercase[(ascii_lowercase.index(i) - 3) % 26]elif i in ascii_uppercase:flag += ascii_uppercase[(ascii_uppercase.index(i) - 3) % 26]else:flag += iprint(flag)# 置换的复位 2,0,3,1
str1 = flag[13:26] + flag[39:52] + flag[0:13] + flag[26:39]
print(str1)flag = base64.b64decode(str1.encode())
print(flag)
得到flag:
0x10 [FlareOn1]Bob Doge
0x11 分析&查壳
很离谱啊,还给了安装程序,破解安装后的程序,现查壳吧,发现是32位的文件(事实上调试的时候提醒我是64位的程序……)
0x12 调试
简单运行程序,好家伙,真·狗头。发现按钮事件是关键
使用dnspy工具打开文件,找到关键函数,在这个函数的起始下断点,然后动调,步过到text3:
得到flag
发布评论