buuoj reverse3 writeup

题目(七):
【题型】Reverse
【题目】reverse3
【来源】(buuoj)https://buuoj.cn/challenges#reverse3
【思路】先检查是否带壳,然后进行逆向分析。
【具体步骤】
Step1:打开程序。
在这里插入图片描述

Step2:用exeinfoPE先查看是否带壳,not packed,没有加壳。
在这里插入图片描述

Step3:将程序放在IDApro这个逆向分析软件下进行逆向分析。
在这里插入图片描述

Step4:先找到main_0函数,然后按下F5查看伪代码(如果键被占用,用Ctrl+F5)。
在这里插入图片描述

Step5:观察伪代码发现当Destination与str2相等时,得到flag。
又因为Destination经历了一个循环得到的改变后的为str2。点击str2,看到str2的字符串。
在这里插入图片描述

Step6:先编写脚本得到Destination,即将反向经历循环。
源码:

#include <stdio.h>
int main()
{
	char str[] = "e3nifIH9b_C@n@dH";
	int i;
	for (i = 0;i < 16;i++)
	{
		str[i] = str[i] - i;
	}
	printf("%s", str);
	return 0;
}

在这里插入图片描述

Step7:又因为Destination是由v4来的,所以我们进入sub_4110BE函数,查看发现函数是base64加密,所以我们需要进行base64解密。
在这里插入图片描述

Step8:将字符串放到在线网页下进行解码,得到flag,在线网页为:
https://www.toolhelper.cn/EncodeDecode/Base64EncodeDecode
在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值