About_TKHASH

第一次打线下赛,会的太少了,实在是坐牢。

0x01 Misc签到

简单的base转换,丢进cyberchef即可

0x02 连连看

web签到提,要在60秒内完成连连看。我的做法是将源码中更新时间的函数注释掉,再慢慢连

QTX7XEGT___P5DZX_K5~2QF.png

完成游戏得到flag

0x03 套娃

打开压缩包发现4个txt文档和一个jpg,都进行了加密。提示crc爆破,发现txt文档大小很小,都是4,于是用代码进行爆破
I69RU_H3OR_C__Q~I_X_KMP.png
crc32爆破代码为:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
# coding:utf8
# python3

from binascii import crc32
from itertools import product

dic = 'abcdefghijklmnopqrstuvwxyz0123456789_'

def crack(content_len, wanted):
print('start cracking...')
tuple_iter = product(dic, repeat=content_len)
for char_tuple in tuple_iter:
char_str = ''.join(char_tuple)
crc32_value = crc32(char_str.encode())
if crc32_value == wanted:
print(char_str, hex(crc32_value))


if __name__ == '__main__': #使用方法:有几n字节,crc码为XXXXXXXX,就加入一行crack(n,0xXXXXXXXX)
crack(4, 0xCE70D424)
crack(4, 0x0AEA5617)
crack(4, 0xA47083A4)
crack(4, 0x8AE5542D)

代码来自[https://blog.csdn.net/xuqi7/article/details/120389212](https://blog.csdn.net/xuqi7/article/details/120389212)

得到密码opendoor,打开图片
M5___@_MW`___3F_FQ@P@WM.png
然后又给了提示,提示图片高度,于是加高图片高度得到:
MN08SJSQA6B0_NZ_DY~_IXD.png

jpg更改高度的方法为:用winhex打开jpg图片,在标志FFC0之后前四位为长度,然后两位为精度,然后四位为高度,把高度改大就行
J_V_@YNSR_Q52J5__~E2__9.png

444 7777 33 2 7777 999 777 444 4 44 8

这时又卡住了,然后就上网搜索类似文段,最后再外网搜到了相似的提问,解答是用老式手机打字时,一个数字对应多个字母,按几次就是第几个字母

键盘

于是对应得到

iseasyright