题目提示这是一个加壳的二进制文件,拖到exeinfope,是UPX壳。
这里我们用linux命令upx -d脱壳。
脱完壳之后拉入ida64中分析。找到main函数,可以看到这一句可以是输出flag的。
puts("Congratulations!", flag);
跟进flag
flag是拿到了,但是这不是我们的根本目的,作为一个逆向小白,里面有些东西不太清楚。再补充一下。
什么是壳?为什么要加壳?
壳就是软件里面一段保护软件不被非法篡改和反编译的程序,先于其他程序运行,拿到控制权,保护软件。
壳分为私密壳和压缩壳。压缩壳主要目的是减小程序体积,如ASPacK、UPX和PECompact等。保护壳是保护程序,用上了各种反跟踪技术保护程序不被调试、脱壳等,其加壳后的体积大小不是其考虑的主要因素,如ASProtect、Armadillo、EXECryptor等。
参考链接
https://www.cnitom.com/experience/200802/50874.html