BUUCTF reverse2

在这里插入图片描述

BUUCTF reverse2

查壳

解压完zip文件后发现是一个不知道是什么格式的文件
在这里插入图片描述
还是拖进exeinfope去看看
在这里插入图片描述
原来不是一个win exe文件,是一个elf文件,elf文件是linux平台上常见的可执行文件

IDA打开静态分析

接着在ida里打开该文件
在这里插入图片描述
直接F5反编译吧
在这里插入图片描述
在这里插入图片描述
__readfsqword这种前面是两个下划线的一般是系统函数,pid是进程号,fork()是创建进程的函数,if函数体里边我判断是判断进程中断之类的,不是题目的关键,只要大概明白这是啥,以便更好的往下分析就好了。
在这里插入图片描述
把数字转化成字符看看
在这里插入图片描述
这里我们先双击flag,看看flag对应的内存空间放了什么东西
在这里插入图片描述
(注意地址是16进制表示的)从601080到601091正好是18个字节,提醒一下不要被把flag的数值78h迷惑了,转换成字符看看
在这里插入图片描述
{hacking_for_fun}这是不是有些眼熟了。
再回到反编译界面接着分析

&flag是去flag的地址,&flag+i有没有觉得和数组有些相似了(flag[i]),这个推理是没有错的,这里把flag当作首地址,每次循环地址加1,外边套一个*号,取这个地址保存的数据,这样是不是就明白了,如果这个值是‘i’或者‘r’,就把它改成1,这样就变成了{hack1ng_fo1_fun},
在这里插入图片描述
printf和scanf函数

比较strcmp字符串比较函数比较flag和s2,相同则返回值为0,从而输出结果“this is the right flag!”,那么s2一定和flag相同,所以s2等于{hack1ng_fo1_fun},得到flag咯!

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

chneft

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值