BUUCTF逆向题luck_guy

一、工具:

        1、IDA

二、解题过程:

①、载入64位IDA

②、在函数窗口中找到 main 函数

 分析后发现 patch_me 这个函数是关键点

 进去后发现 get_flag 这个函数

 浏览分析代码得知这个函数就是解出flag的关键函数

③、代码详解

         strcat((char *)&s, f1);
         strcat((char *)&s, &f2);
         printf("%s", &s);

由代码 s = f1 + f2

f1 可以找到,而 f2 却不行:

 虽然前面代码无法直接找到 f2 ,但往下分析代码发现

 s => f2 所以 f2 = icug`of  (这里要注意大小端存储问题,在之前的文章SimpleRev里我已经分析过了) ,因此猜测这里的 f2 经过下面循环处理后得到的字符串与 f1 拼接即为正确的 flag

④、写脚本分析

 所以最终 f2 = hate_me

所以正确的flag :flag{do_not_hate_me}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值