Skip to content

Commit 514c23f

Browse files
committed
add a re of w2
1 parent 392051a commit 514c23f

File tree

5 files changed

+64
-0
lines changed

5 files changed

+64
-0
lines changed
83.8 KB
Loading
51.8 KB
Loading
38.7 KB
Loading
Lines changed: 62 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,62 @@
1+
---
2+
titleTemplate: ':title | WriteUp - NewStar CTF 2024'
3+
---
4+
5+
# drink_tea
6+
7+
逆向的第一步永远都是先用DIE查看文件基本信息,发现无壳,文件为64位,用ida64打开
8+
9+
![DIE](/assets/images/wp/2024/week2/drink_tea_1.png)
10+
11+
主函数的逻辑很简单,就是先判读输入字符串的长度是否为32,然后再和key进入一个加密函数
12+
13+
![主函数](/assets/images/wp/2024/week2/drink_tea_2.png)
14+
15+
而这个加密就是大名鼎鼎的TEA算法,以后我们几乎会在所有比赛看到这个算法以及它的变形
16+
17+
![TEA](/assets/images/wp/2024/week2/drink_tea_3.png)
18+
19+
解密脚本
20+
21+
```c
22+
#include <stdio.h>
23+
#include <stdint.h>
24+
25+
//解密函数
26+
void decrypt (uint32_t* v, uint32_t* k) {
27+
uint32_t v0=v[0], v1=v[1], i;
28+
uint32_t delta=2654435769;
29+
uint32_t sum = (32)*delta;
30+
uint32_t k0=k[0], k1=k[1], k2=k[2], k3=k[3];
31+
for (i=0; i<32; i++) { //解密时将加密算法的顺序倒过来,+=变为-=
32+
v1 -= ((v0<<4) + k2) ^ (v0 + sum) ^ ((v0>>5) + k3);
33+
v0 -= ((v1<<4) + k0) ^ (v1 + sum) ^ ((v1>>5) + k1);
34+
sum -= delta;
35+
}
36+
v[0]=v0; v[1]=v1;//解密后再重新赋值
37+
}
38+
39+
40+
unsigned char keys[] = "WelcomeToNewStar";
41+
unsigned char cipher[] = { 0x78,0x20,0xF7,0xB3,0xC5,0x42,0xCE,0xDA,0x85,0x59,0x21,0x1A,0x26,0x56,0x5A,0x59,0x29,0x02,0x0D,0xED,0x07,0xA8,0xB9,0xEE,0x36,0x59,0x11,0x87,0xFD,0x5C,0x23,0x24 };
42+
int main()
43+
{
44+
unsigned char a;
45+
uint32_t *v = (uint32_t*)cipher;
46+
uint32_t *k = (uint32_t *)keys;
47+
// v为要加密的数据是n个32位无符号整数
48+
// k为加密解密密钥,为4个32位无符号整数,即密钥长度为128位
49+
50+
for(int i=0;i<8;i+=2)
51+
{
52+
decrypt(v+i, k);
53+
//printf("解密后的数据:%u %u\n",v[i],v[i+1]);
54+
}
55+
56+
for (int i = 0; i < 32; i++) {
57+
printf("%c",cipher[i]);
58+
}
59+
60+
return 0;
61+
}
62+
```

theme-config.yml

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -155,6 +155,8 @@ sidebar:
155155
link: /wp/2024/week2/reverse/upx
156156
- text: Ptrace
157157
link: /wp/2024/week2/reverse/ptrace
158+
- text: drink_tea
159+
link: /wp/2024/week2/reverse/drink_tea
158160
- text: Dirty_flowers
159161
link: /wp/2024/week2/reverse/dirty-flowers
160162
- text: Web

0 commit comments

Comments
 (0)