0%

Position

经调试判断流程为:

进入关键函数sub_401740,发现要求对flag的长度要求为4,要求flag的每一位都是小写的英文字母,并且每一位互不相同。其关键算法如图

关键对比算法为

而Serial已给;直接逆推即可,自己写的实现算法如下:

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
for  Name_0 in range(97,123):
for Name_1 in range(97,123):
v8 = (Name_0 & 1) + 5;
v59 = ((Name_0 >> 4) & 1) + 5;
v53 = ((Name_0 >> 1) & 1) + 5;
v55 = ((Name_0 >> 2) & 1) + 5;
v57 = ((Name_0 >> 3) & 1) + 5;
v45 = (Name_1 & 1) + 1;
v51 = ((Name_1 >> 4) & 1) + 1;
v47 = ((Name_1 >> 1) & 1) + 1;
v10 = ((Name_1 >> 2) & 1) + 1;
v49 = ((Name_1 >> 3) & 1) + 1;
if v8 + v10 == 7 and v57 + v49 ==6 and v53 + v51==8 and v55 + v45 ==7 and v59 + v47 ==6:
print(chr(Name_0),chr(Name_1))

for Name_2 in range(97,123):
v27 = (Name_2 & 1) + 5
v60 = ((Name_2 >> 4) & 1) + 5
v54 = ((Name_2 >> 1) & 1) + 5
v56 = ((Name_2 >> 2) & 1) + 5
v58 = ((Name_2 >> 3) & 1) + 5
v46 = (112 & 1) + 1
v52 = ((112 >> 4) & 1) + 1
v48 = ((112>> 1) & 1) + 1
v29 = ((112 >> 2) & 1) + 1
v50 = ((112 >> 3) & 1) + 1
if v27 + v29 ==7 and v58 + v50==7 and v54 + v52==7 and v56 + v46==7 and v60 + v48==6:
print (chr(Name_2))