[VNCTF2025] Hook Fish

加密逻辑
hook_fish.dex这个文件需要联网下载

通过这个文件就能够找到加密后的字符串
`
点击查看代码
decode_map = {
"iiijj": 'a',
"jjjii": 'b',
"jijij": 'c',
"jjijj": 'd',
"jjjjj": 'e',
"ijjjj": 'f',
"jjjji": 'g',
"iijii": 'h',
"ijiji": 'i',
"iiiji": 'j',
"jjjij": 'k',
"jijji": 'l',
"ijiij": 'm',
"iijji": 'n',
"ijjij": 'o',
"jiiji": 'p',
"ijijj": 'q',
"jijii": 'r',
"iiiii": 's',
"jjiij": 't',
"ijjji": 'u',
"jiiij": 'v',
"iiiij": 'w',
"iijij": 'x',
"jjiji": 'y',
"jijjj": 'z',
"iijjl": '1',
"iiilj": '2',
"iliii": '3',
"jiili": '4',
"jilji": '5',
"iliji": '6',
"jjjlj": '7',
"ijljj": '8',
"iljji": '9',
"jjjli": '0',
}
def decode_message(encoded_message):
decoded_message = ''
for i in range(0, len(encoded_message), 5):
encoded_char = encoded_message[i:i + 5]
decoded_message += decode_map[encoded_char]
return decoded_message
def code(a, index):
if index >= len(a) - 1:
return a
a[index] = (a[index] ^ a[index + 1])
a[index + 1] = (a[index] ^ a[index + 1])
a[index] = (a[index] ^ a[index + 1])
return code(a, index + 2)
enc = "jjjliijijjjjjijiiiiijijiijjiijijjjiiiiijjjjliiijijjjjljjiilijijiiiiiljiijjiiliiiiiiiiiiiljiijijiliiiijjijijjijijijijiilijiijiiiiiijiljijiilijijiiiijjljjjljiliiijjjijiiiljijjijiiiiiiijjliiiljjijiiiliiiiiiljjiijiijiijijijjiijjiijjjijjjljiliiijijiiiijjliijiijiiliiliiiiiiljiijjiiliiijjjliiijjljjiijiiiijiijjiijijjjiiliiliiijiijijijiijijiiijjjiijjijiiiljiijiijilji"
res = list(decode_message(enc).encode())# .encode()编码为字节序列
for i in range(len(res)):
tmp = (res[i] + ord('1') - (i % 4)) & 0xff
if tmp >= ord('a') and tmp <= ord('f'):
res[i] = (res[i] + ord('1') - (i % 4)) & 0xff
else:
res[i] = ((res[i] - ord('7') - (i % 10))) & 0xff
code(res, 0)
for i in bytes.fromhex(bytes(res).decode()):
print(chr(i - 68), end='')
#VNCTF{u_re4l1y_kn0w_H0Ok_my_f1Sh!1l}

浙公网安备 33010602011771号