XCTF-simple unpack
Posted helloctf
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了XCTF-simple unpack相关的知识,希望对你有一定的参考价值。
题目提示这是一个加壳的二进制文件,拖到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
以上是关于XCTF-simple unpack的主要内容,如果未能解决你的问题,请参考以下文章
如何使用 struct.unpack 并将其转换为 Objective-c 中的值
@,x,X 指令如何与 Ruby pack()/unpack() 方法一起使用?
将 .unpack 从 Python 2.7 翻译到 3.9