​(61)[HNCTF 2022 WEEK2]TTTTTTTTTea​

(61)[HNCTF 2022 WEEK2]TTTTTTTTTea

image-20250314131002498

我们可以看到,v4是关键数据。

然后再tea_这个加密函数里面,我们可以获得key

而flag是我们输入v4[8]后面的

而且tea加密一般是需要两个32位的数据来进行

所以接下来我们需要知道key,而下面的v4[0---]

等等,他们都是我们加密后的enc,所以我们可以写出来脚本根据一下函数内容

image-20250314131154490

然后我们直接呈现脚本

其中v4,我们不知道,我写了一个c语言脚本来获得的值

image-20250314131232901

#include <stdio.h>
#include <stdint.h>
​
​
int main() {
    uint32_t key[4] = { 0x10203, 0x4050607, 0x8090A0B, 0x0C0D0E0F };
    uint32_t enc[6] = { 0xC11EE75A, 0xA4AD0973, 0xF61C9018,  0x32E37BCD, 0x2DCC1F26,  0x344380CC,
    };
    unsigned int flag[6] = { 0 };
​
​
    for (int i = 0; i < 6; i = i + 2) {
​
        unsigned int v4 = 0xC6EF3720;
​
        for (int k = 0;k <= 31;k++) {
​
            enc[i + 1] -= (((enc[i] >> 5) ^ (16 * enc[i])) + enc[i]) ^ (key[((v4 >> 11) & 3)] + v4);
            v4 += 0x61C88647;
            enc[i] -= (((enc[i + 1] >> 5) ^ (16 * enc[i + 1])) + enc[i + 1]) ^ (key[(v4 & 3)] + v4);
​
​
        }
        flag[i] = enc[i];
        flag[i + 1] = enc[i + 1];
    }
    char* p = (char*)enc;
    for (int k = 0;k < 24;k++)
    {
        printf("%c", *p);
        p++;
    }
}
​
​

NSSCTF{Tea_TEA_TeA_TEa+}

评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值