flag - pwnable

flag - pwnable

1.获取题目

题目给出下载链接:程序

2. 运行程序、查看文件类型、保护措施

直接运行输出提醒 将flag变量在放在什么地方了,要求我们去找。

是一个64位动态链接的elf

发现Packer是UPX

3.分析源码

将题目所给程序放入IDA中分析,导入之后发现函数异常的少,注意一点没有运行时提示给我们的malloc()函数

结合前面查看到程序有一条Packer属性,我们怀疑程序是有壳的。也就是说我们不能直接查看程序本体,需要脱壳。

我们也在汇编代码中发现了 UPX 的代码段

UPX是一款可执行文件的压缩器,我们可以在linux下对程序解压后,再使用IDA分析

#没有安装UPX,执行下行命令安装
sudo apt-get install upx
#解压文件
ups -d [filepath] -o[newfilename]

将解压程序放入IDA中,可以发现非常多的函数

在main函数的伪c代码中,发现flag变量,(双击变量)查看值

flag指向了aUpxSoundsLikeA,那我们就继续查看其值

aUpxSoundsLikeA的值是一个字符串’UPX…? sounds like a delivery service[这里替换为一个空格]:)’

所以答案就是UPX…? sounds like a delivery service[这里替换为一个空格]:)

4. 总结

  • IDA分析程序时,发现函数异常少或者缺失关键函数,则可能程序有壳或被压缩
  • UPX压缩标志:程序文件属性有Packer UPX;汇编代码接近结尾处,有aUpxSfnet代码
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值