upx脱壳以“buu re 新年快乐”题目为例。
首先将题目解压后拖进Exeinfope
可发现题目文件为32位,且加了upx壳,其实upx脱壳比较简单,但是我总是忘记步骤,因而记录一下。
我们再cmd打开控制台,由于题目文件和upx脱壳工具保存在D盘中,故先输入“D:”进入D盘,再输入“cd upx脱壳工具的地址”。此时已经进入了upx脱壳工具的文件夹,文件夹里有upx.exe文件,故可输入“upx -d 目标文件所在位置”。
完成脱壳后下方显示“Unpacked 1 file.”,表示脱壳成功。
此时再把题目文件拖入Exeinfope中,显示无壳。
再将其拖入ida,进入主函数。
发现可疑字符串,strncmp函数的含义为下图:
故题目意思是将输入字符串与str2比较,若相等时返回0,故可知flag为str2。
flag{HappyNewYear!}