攻防世界逆向高手题之76号

99 篇文章 33 订阅

攻防世界逆向高手题之76号

继续开启全栈梦想之逆向之旅~
这题是攻防世界逆向高手题的76号
在这里插入图片描述
.
.
下载附件,解压,照例扔入exeinfope中查看信息,这里是32位ELF文件,无壳,这里几个?号可能就对应了IDA中没有main函数的原因把。
在这里插入图片描述
.
.
照例先运行一下程序,看一下主要回显信息:
在这里插入图片描述
.
.
照例扔入IDA32中查看伪代码信息,没有main函数,在strings窗口跟踪一下password,然后就跳转到汇编代码中了,一开始没发现是main函数,按F5也生成不了伪代码,然后我就想到动调了。
在这里插入图片描述
在这里插入图片描述
.
.
.
(这里积累第一个经验)
只有汇编代码的动态调试中,我参考的是前面做过的serial-150,运行程序,因为不知道在哪里下断点,所以在输入的时候按暂停来下断,然后单步执行到从7F地址跳出到真实的40地址为止。
在这里插入图片描述
.
.
(这里积累第二个经验)
的确弹出到真实的执行地址了,因为一开始不知道这里是main函数的范围~。。。。额,现在知道了,所以可以直接在这里分析了。
函数作用注释都写好了,_getline是获取用户输入,然后js short loc_804848F也没有跳转。eax什么的在动态中发现前后赋值为用户输入的字符数和用户输入的字符串
然后在跳转到输出Incorrect!字符串之前就只剩下call sub_8048580函数了,这个函数就是关键了,毕竟用户输入存在了eax的寄存器中作为参数传给了它嘛。
在这里插入图片描述
.
.
(这里积累第三个经验)
双击跟踪sub_8048580函数,根据前面传入的参数重命名了一下形参,函数逻辑很简单,就是不断switch判断,其中_0形参是在判断中自己修改的,没有递增。

.
.
只能手动一个个去推了,注意v5的下标要对应,因为有一两个混淆项,最终flag:

flag{09vdf7wefijbk}

.
.
.
总结:

1:
(这里积累第一个经验)
只有汇编代码的动态调试中,我参考的是前面做过的serial-150,运行程序,因为不知道在哪里下断点,所以在输入的时候按暂停来下断,然后单步执行到从7F地址跳出到真实的40地址为止。

2:
(这里积累第二个经验)
的确弹出到真实的执行地址了,因为一开始不知道这里是main函数的范围~。。。。额,现在知道了,所以可以直接在这里分析了。
函数作用注释都写好了,_getline是获取用户输入,然后js short loc_804848F也没有跳转。eax什么的在动态中发现前后赋值为用户输入的字符数和用户输入的字符串
然后在跳转到输出Incorrect!字符串之前就只剩下call sub_8048580函数了,这个函数就是关键了,毕竟用户输入存在了eax的寄存器中作为参数传给了它嘛。

3:
(这里积累第三个经验)
双击跟踪sub_8048580函数,根据前面传入的参数重命名了一下形参,函数逻辑很简单,就是不断switch判断,其中_0形参是在判断中自己修改的,没有递增。

解毕!敬礼!

  • 2
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

沐一 · 林

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

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

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

打赏作者

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

抵扣说明:

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

余额充值