@TOC

这次绿城杯又被大师傅带飞了,我又明明白白的躺了一次,比赛一共3个re +一个安卓
我只做了两个,其他被师傅们秒了

easy_re

(二血)
ida打开 发现是rc4算法
里面有一点小改变 中间异或了0x37
在这里插入图片描述

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
#include<stdio.h>
#include<stdlib.h>
#include<string.h>
int b[300];
int s[300];
char key[10]="tallmewhy";//(变)
char data[1000]={
0xF5, 0x8C, 0x8D, 0xE4, 0x9F, 0xA5, 0x28, 0x65, 0x30, 0xF4,
0xEB, 0xD3, 0x24, 0xA9, 0x91, 0x1A, 0x6F, 0xD4, 0x6A, 0xD7,
0x0B, 0x8D, 0xE8, 0xB8, 0x83, 0x4A, 0x5A, 0x6E, 0xBE, 0xCB,
0xF4, 0x4B, 0x99, 0xD6, 0xE6, 0x54, 0x7A, 0x4F, 0x50, 0x14,
0xE5, 0xEC
};//(变)
int main(){
int j,q,n;
for(int i=0;i<256;i++){
b[i]=key[i%9]; //8是密钥的长度 (变)
s[i]=i;
}
for(int i=0;i<256;i++){
j=(j+s[i]+b[i])%256;
q=s[i];
s[i]=s[j];
s[j]=q^0x37;
}
for(int i=0;i<256;i++){
printf("%d ",s[i]);
}
printf("\n");
int i=0,t;
j=0;
for(int w=0;w<42;w++){ //32是data的长度 (变)

i=(i+1)%256;
j=(j+s[i])%256;

q=s[i];
s[i]=s[j];
s[j]=q; //交换

t=(s[i]+s[j])%256;
data[i-1]^=s[t];//s[t]是最后的密钥
}
puts(data);


return 0;
}

Helloworld

代码含有大量花指令,去除后可以定位到主要加密代码
在这里插入图片描述
这里有flag加密后的比较数据,加密算法都在loc_330里面
因为花指令没有除干净(太菜了,不会除了),可以配合着汇编代码看
在这里插入图片描述
这里会对flag异或0x22
在这里插入图片描述
下面的sub_379里会对flag加3操作
写脚本

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
#include<stdio.h>
#include<string.h>
char a[100]={188,10,187,193,213,134,127,10,201,185,81,78,136,10,130,185,49,141,10,253,201,199,127,185,17,78,185,232,141,87};
int main(){
for(int i=0;i<30;i++){
for(int j=0;j<30;j++){
a[i]-=3;
a[i]^=0x22;
}
}
puts(a);



return 0;
}

在这里插入图片描述
到时候要再复习一下画指令,老弄得不漂亮

抛石机

null-404师傅解出来的,我直接copywp(嘻嘻
上课前大致浏览了一下题目,难点在于小数和16进制的转化,以前在buu上做过一道这种类似的题

⾸先打开ida,定位主函数:
⾸先进⾏逻辑判断,判断是否是flag{xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx}的格式,x的取值为1-9
或者a-f
判断如下:
在这里插入图片描述
在这里插入图片描述
接着,将输⼊的值,不包括flag{-},转换为double类型,转换⽅式为每8个字符的⼆进制变为⼀个
double。然后进⾏解⽅程:
在这里插入图片描述
解出后进⾏⼆进制转化:
在这里插入图片描述
在这里插入图片描述
转化后取前8位,⼤⼩写转换:3FF14A45 40114CF7 BFDEE41E 3FFFA457
然后进⾏倒叙输出:454AF13F F74C1140 1EE4DEBF 57A4FF3F
然后进⾏调式,根据出错的位置对精度进⾏调整,调整后得到:
454AF13F F64C1140 1EE4DEBF 58A4FF3F
然后根据格式调整为:
flag{454af13f-f84c-1140-1ee4-debf58a4ff3f}

clockin

安卓题 由0xK4ws解出 (看到真机羡慕了!!)下面是师傅的wp

1
adb install -r -t myApk.apk

⾸先安装程序 ⽤以上命令安装程序⽅可安装成功
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在Android killer上搜索字符串not admin
把not admin改成admin重新打包
在这里插入图片描述
在这里插入图片描述
然后启动该APP 输⼊地址和端⼝ 点击打卡拿到flag
在这里插入图片描述

总结

要学习的东西还是很多,做题的速度也应该提高,多学习学习别人的wp