这里是backdoor的逆天解,在群主大人的解析里也有提到,这个代码是对FLAG
的所有字符构建了一个置换映射,只需还原出这个置换表即可。但是,如果我们不会用Pytorch,或者电脑安装不了Pytorch,该怎么做这个题目呢?很简单,我们只需要把这个置换表猜出来就好了。(doge)
我们可以看到,pred_flag = '0kRs34Rc2lta!a!!!aggg}t_BaUDyBs!yBVyCBfBMCBhRYVHtt{{{{gu'
,也就是flag
里面是有
!0234BCDHMRUVY_acfghklstuy}{
这28种字符的。接下来我们开始猜测这个置换表:
首先,众所周知,Flag的前10个字符必是ucatflags{
,最后一个字符必是}
,因此,就有了:
0—u k—c R—a s—t 3—f 4—l c—g 2—s l—{ u—}
这已经出来10组对应关系了,还剩18组。然后我们在做了这么多题后,也得到了一个结论,Flag
里面经常会使用_
这个字符作为单词之间的分隔符,然后我们观察这个pred_flag
,这其中最像代替_
的字符显然是出现了多次,每两次之间都有一定间隔的B
。此外,我们知道原Flag中是有!
的,那么大概率倒数第二个字符会是!
,注意到pred_flag
中倒数第二个字符是g
,而g
在pred_flag
中另一次出现是连着出来了3个,连着3个感叹号很合理,因此我们可以猜测g
代表的就是!
,于是就有:
B—_ g—!
接下来,注意到pred_flag
在其中两个B之间夹了一个s!y
,其中s
已经确定是代表t
了,在frequecy那道题中,我们学习了频率分析法,其中有一个很重要的点,就是the这个词出现的频率会比较高。那么我们可以大胆假设这个s!y
就是表示的the,注意到字符表中同时有大写H
和小写h
,先不妨猜测!
表示的是小写h
,然后注意到字符表中没有E
或者e
,但是有3
,已知Flag
中经常使用3
代替e
,故猜测y
表示的是3
,于是就有:
!—h y—3
注意到在连着三个g(!)
前面是ta!a!!!a
,已知!
对应的是h
,且在连着的三个g(!)
前面大概率会是一个感叹词,那么有h
的感叹词很可能会是oh
。那么t
就对应的是0
(因为字符表中没有o
),那么为什么后面又有a
又有!
呢?最有可能的情况就是这是大小写的H
混在了一起,之前假设的!
对应h
,那么a
对应的就应该是H
,于是就有:
t—0 a—H
我们现在注意到最后一个B(_)
和倒数第二个字符u(!)
之间有hR(a)YVHt(0)t(0){{{{
,结合这道题目的名字叫backdoor,我们可以去猜测h
对应B
,Y
对应C
,V
对应k
,H
对应D
,{
对应R
,刚好组成了一个backdoor
,十分合理,于是就有:
h—B Y—C V—k H—D {—R
接着注意到在前两个B(_)
中间夹了一个a(H)UDy(3)
,以h
开头,e
结尾的长度为4个字母的单词第一反应就是have
吧,那么D
就对应V
,但是已经确定了对应a
的是R
了,U
对应的一定不是a
,而字符表中又没有A
,怎么办呢?结合之前的经验,Flag
中常使用4
代替A
,那么我们就可以假设U
对应的是4
,于是就有:
U—4 D—V
根据英文中的语法,这个have
后面一个词是the
,那么这个have
就一定不是助动词,那就大概率会是实义动词,前面就应当有个主语。而前面一个单词是}t(0)_
,长度为3个字母,中间为o
的主语,也就只能是you
了,但是现在同时有大写Y
和小写y
,这个}
只出现了这一次,是大写Y
的概率会大得多,于是就有:
}—Y _—U
这时注意第三、四个B(_)
中间的那个单词V(k)y(3)C
,显然是key
,于是就有:
C—y
现在已经出来26组对应关系了,还差2组,此时我们的Flag
是
ucatflags{0HhHhhhH!!!Y0U_H4V3_th3_k3y_(f)_(M)y_BaCkD00RRRR!}
还差f
和M
没找到对应了,此时映射的右边也只有2
和M
没有被对应了,然后我们注意到,如果让M
对应M
,就组成了单词my
,剩下的f
夹在key
和my backdoor
之间,那么f
表示2
,也就是to
,十分合理,于是就有:
M—M f—2
那么我们的Flag
就是
ucatflags{0HhHhhhH!!!Y0U_H4V3_th3_k3y_2_My_BaCkD00RRRR!}
提交到网站上是错误的,我们反思一下可能是哪里出现了问题。目前最有可能有问题的就两点,一点是H
和h
搞反,另一点是Y
和y
搞反,相比之下显然是H
和h
搞反概率更大,于是我们将Flag
中的H
和h
全部对调一下,就成了:
ucatflags{0hHhHHHh!!!Y0U_h4V3_tH3_k3y_2_My_BaCkD00RRRR!}
提交到网站上,Correct!