BUUCTF中的JustRE 1

# 前言

       首先感谢师傅们的关注,小透明诚惶诚恐,如果在我成长的路上给师傅们带来一丢丢的帮助,将感到十分荣幸。

# JustRE 1

        

        这回是windows的软件,不如先不按套路出牌,点开看看是什么。

        

       软件说,Flag不在这,左上有个getflag,右边有个捷径,那做逆向肯定是要走捷径的嘛。

       作者你滴良心不会痛嘛,我 !@#¥%…… 

       看左上。

        师傅们我试过了啊,这“糟老作者”坏滴很!看来还是得按套路走。

        32位,C++,没加壳。那就不纠结,直接IDA。

        进来一看,也没有发现和flag相关的,我有点懵,一下子没了思路,只好shift+f12找找有没有flag相关的字符。     

         果然发现一串奇怪的字符,长的像flag,但是事情肯定没有这么简单。(我不会说我复制去试了的!)

        那接下来的问题就是找到是什么调用了这一串字符串,选中之后双击,再选中按下X追踪。

   

         看到左边发现调用函数,f5大法看反编译的伪代码。(f5真香)

         简单分析一下代码,如果dword_4099F0等于19999,输出字符串巴拉巴拉。printf() 函数用于将格式化的字符串输出到标准输出设备;sprintf() 函数用于将格式化的字符串写入到字符数组中。那也就是说,我当初要是点了19999次就会弹出flag。点。。。点个锤子我点!

        说正经的,从sprintf分析,正常写是“printf("%s", a);”,同理,sprintf的格式也是一样的,字符数组中有两个"%d",那按这个思路,写个脚本就应该有flag了。

        加上题目的格式,flag{1999902069a45792d233ac} 。

# 总结

        这道题确实是很开眼界,比如说X跳转这个功能,sprintf和printf的区别等等。发现技术增长还是挺开心的,然后就应该可以看看不知道哪年放在电脑里的一道题了,希望能顺利解题。

P.S.再次感谢师傅们的支持和鼓励!(手动鞠躬)

  • 7
    点赞
  • 10
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值