[HNCTF 2022 WEEK2]TTTTTTTTTea

主要是代码的转换

这里是主要的xtea算法的加密过程

 然后逆向解密代码如下

复制代码
#include <stdio.h>
int main(){
    unsigned int l,r;
    unsigned int v4[6]={-1054939302,-1532163725,-165900264,853769165,768352038,876839116};
    int flag[6]={0};
    unsigned int delta;
    unsigned int key[4]={0x00010203,0x04050607,0x08090a0b,0x0c0d0e0f};
    int i,j;
    for(i=0;i<6;i+=2){
        l=v4[i];
        r=v4[i+1];
        delta=-32*1640531527;
        for(j=0;j<32;j++){
            r -= (((l >> 5) ^ (l*16)) + l) ^ (key[(delta>>11)&3]+ delta);//*16==<<4 
            delta += 1640531527;
            l -= (((r >> 5) ^ (r*16)) + r) ^ (key[delta&3]+ delta);
        }
        flag[i]=l;
        flag[i+1]=r;
    }
    char *p = (char*)flag;
    for(i=0;i<24;i++){
        printf("%c",*p);
        p++;
    }
}
复制代码

主要是这里的数据的转换

 a2是传入的key

 key的值为

 这里是需要转换为四个八位的数,因为一个int是四个字节,一个字节是八位,所以就是要写成四个八位的数组,即

 然后要注意逻辑的转换,操作的是数组里面的数据

 最后得到flag

NSSCTF{Tea_TEA_TeA_TEa+}

posted @   努力的大魔王  阅读(262)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· 地球OL攻略 —— 某应届生求职总结
· 周边上新:园子的第一款马克杯温暖上架
· Open-Sora 2.0 重磅开源!
· 提示词工程——AI应用必不可少的技术
· .NET周刊【3月第1期 2025-03-02】
点击右上角即可分享
微信分享提示