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

在 php unpack 函数中搜索正确的格式

使用 struct.unpack_from 解析时,特定图像返回奇怪的值

使用 unpack php 将文件保存在数据库中