buuctf reverse3

我们先进行查壳和查位数,发现是32位无壳。

之后我们进行ida解析,进行字符串的查询

我们可以看到有ABCDEFG..........的字符串,这是很明显的base64的编码。这很重要!

然后我们看主函数

我们发现他是先对我们的输入进行base64加密,然后我们可以看他又对base64的加密做了一个for循环进行了二次加密最后destination与str2做比较,从中我们可以得知,str2即为最终的机密结果。

我们可是逆向,先对str2进行处理将他还原成base64加密后的状态。

int main()
{
    char c[] = { 101, 51, 110, 105, 102, 73, 72, 57, 98, 95,67, 64, 110, 64, 100, 72 };
   
    for (int i = 0; i < 16; i++)
    {
        c[i] -= i;
     }
    for (int i = 0; i < 16; i++)
    {
        printf("%c", c[i]);
    }
    return 0;
}

解码之后我们得到了e2lfbDB2ZV95b3V9

在进行base64解码我们就得到了flag{i_l0ve_you}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值