逆向 xxtea
v14 不知道
v29 +个初始 的 i 往后 都是 填充 0
长度是16
v14 是 0
v14 第一位 第二位 第三位 4
0
1
2
3
v14 = 4
v29 = *v6;
v6 = v4
v4 = v8
v9 = *((_BYTE *)v8 + (char *)Code - (char *)v4);
code是输入的
v9就是输入
v8就是 输入 一位一位的
看循环几次
1
v8 1
2 v8 2
3 v8 3
4 v8 4
flag
前四位
v2是19
v29 是 16长度 flag000000000000000000000…
v16 = sub_140001AB0((__int64)Code, v2, (unsigned __int8 *)&v29, &Size);
开辟空间
v19 = sub_140001E5C(Size);
v16 加密之后的串
v18 = v16
v19[1] = *v18;
v19[3] = v18[1];
*v19 = v18[2];
v21 = v19 + 1;
v19[1] = *v18;
v19[2] = v18[3];
v19[3] = v18[1];
v19[4] = v18[6];
v19[5] = v18[4];
v19[6] = v18[7];
v19[7] = v18[5];
v19[8] = v18[10];
v19[9] = v18[8];
v19[10] = v18[11];
v19[11] = v18[9];
v19[12] = v18[14];
v19[13] = v18[12];
v19[14] = v18[15];
v19[15] = v18[13];
v19[16] = v18[18];
v19[17] = v18[16];
v19[18] = v18[19];
v19[19] = v18[17];
v19[20] = v18[22];
v19[21] = v18[20];
v19[22] = v18[23];
映射
v19
长度24
v21是25
0 1 。。。。 23
012
12
v19 加密之后的 - v29
v29,v29+1,v30,v31在栈上存放的位置相连
转hex
C0953A7C6B40BCCE
3502F79120209BEF
C8021823
FA5656E7
小端序
# C0953A7C6B40BCCE
# 3502F79120209BEF
# C8021823
# FA5656E7
a = 'FA5656E7C80218233502F79120209BEFC0953A7C6B40BCCE'
print a.decode('hex')[::-1].encode("hex")
大小端序转换
v31 + v30 + v29 +1 + v29
v21 = v19 + 1;
v20 = 1;
v22 = 0i64;
v23 = *v21;
第一位和第二位xor
v17 24
012
345