第六篇博客

题目信息

  • 比赛:SWPUCTF 2021 新生赛
  • 题目:fakebase
  • 类型:Reserve(逆向工程)

1. 查壳

将下载好的文件拖入exeinfope中进行查壳,结果无壳
alt text


2. 逆向分析

发现是一个python文件,直接点开
alt text


3. 解码

代码如下:
s_box = ‘qwertyuiopasdfghjkzxcvb123456# $ ‘
cipher = “u#k4ggia61egegzjuqz12jhfspfkay”

char_to_idx = {c: i for i, c in enumerate(s_box)}

num_low = 0
for c in reversed(cipher):
num_low = num_low * 31 + char_to_idx[c]

for high in range(31):
full_num = num_low + high * (31 ** len(cipher))

binary = bin(full_num)[2:]
if len(binary) % 8 != 0:
    binary = '0' * (8 - len(binary) % 8) + binary

try:
    flag = ''.join(chr(int(binary[i:i+8], 2)) for i in range(0, len(binary), 8))
    if all(32 <= ord(c) <= 126 for c in flag):  
        print("Flag:", flag)
        break
except:
    continue

else:
print(“No valid flag found.”)


4. Flag

NSSCTF{WHAt_BASe31}


第六篇博客
http://jrr411.github.io/2026/02/12/第六篇博客/
作者
Lisianthus
发布于
2026年2月12日
许可协议