攻防世界 srm-50


title: 攻防世界 srm-50
date: 2021年8月11日 15点20分
tags: 攻防世界
categories: 攻防世界

今天做题的时候,碰到了一道很有趣的题目,一个软件,邮箱注册之后,弹窗给flag。

攻防世界高手进阶区的一道题 srm-50

自我分析过程是自己从拿到题目,开始一步一步的分析过程,记录了自己的不足之处,以及思考不到位,下次希望能有所提高。

自我分析

1、PE

在这里插入图片描述

2、IDApro分析

(1)还是先shift + F12 查看字符串窗口

字符串太多。没耐心寻找,直接拖到了最后面。

在这里插入图片描述

看到几个abcdef26个字母,感觉有可疑之处。

跟进之后,发现就是几个字母。

(2)找主main函数

既然字符串窗口没有找到有用信息,那么跳转主main函数去寻找。

在这里插入图片描述

反编译第一个函数。

在这里插入图片描述

并没有发现什么有用信息。

在这里插入图片描述

点开第二个函数,把注意都放在了粉红色字符上。

跟进之后,没有得到结果。

在这里插入图片描述

分析到这里的时候,分析不动了(其实还是自己思路没打开)

观看大哥的wp之后

发现问题所在。

这里突然有所感悟!!!

在自己打开程序,瞎乱输入之后,其实弹出来了一个弹窗。

在这里插入图片描述

在这里插入图片描述

但是并没有在字符串窗口搜索这个字符串。

我们在字符串窗口搜索一下。

在这里插入图片描述

可以看到在,最后,发现了这个字符串。我们跟进去。

在这里插入图片描述

交叉引用。再反编译。

在这里插入图片描述

找到关键函数所在。

以上是我突发奇想得到的经验,其实在自己的上一步找main函数的时候,仔细的一点也能找到这里。

在这里插入图片描述

这个函数就是关键函数。

下面分析这个函数。

if语句的前面。memset函数,百度一手,

memset函数的作用:将某一块内存中的内容全部设置为指定的值, 这个函数通常为新申请的内存做初始化工作。

也就是从if语句前面,应该都是初始化,if语句中,看到@和 .应该是在判断邮箱是否正确。

在这里插入图片描述

我们可以看到,strcpy函数把Success这个信息放到了Source里面,也就是Source里面存的就是flag

看到Source的前面是一串字符,一开始没注意顺序,直接写了CXZA9bd7mGq94gcg

但是不对,后面才注意,这个数组有顺序,按顺序再写一遍。得到

flag:CZ9dmq4c8g9G7bAX

总结

在程序中,最关键的函数或许不是main函数,其次,在寻找关键字符串的时候,不能毫无目的的去寻找,像这个题一样,一开始是毫无目的,但是在明有错误提醒的字符串之后,还没注意到问题的严重性,还是瞎猫撞耗子的寻找,最后还没找到。还是得多分析分析啊。

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值