[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+}
 
                    
                     
                    
                 
                    
                
 
                
            
         
         浙公网安备 33010602011771号
浙公网安备 33010602011771号