TypechoJoeTheme

霍雅的博客

登录
用户名
密码
/
注册
用户名
邮箱

2025御网杯逆向

2025-05-12
/
1 评论
/
136 阅读
/
正在检测是否收录...
05/12

ez_js

打开html搜索f1ag

sign in

查壳发现elf

直接upx -d 拖
分析主函数没东西,猜测可能是考elf执行流

果然在_init_array找到一个可疑函数

点进去rc4,因为是在ini这个位置,直接下断点调试

ez math

用pyinstxtractor.py反编译enc.exe

使用在线工具反编译pyc

https://pylingual.io/view_chimera?identifier=1d5585833d62270aa805768295264b9f0beed51393479abc99bec578466ba0d7

得到


# Decompiled with PyLingual (https://pylingual.io)
# Internal filename: enc.py
# Bytecode version: 3.12.0rc2 (3531)
# Source timestamp: 1970-01-01 00:00:00 UTC (0)
if __name__ == '__main__':
    openFile = 'eq'
    outputFile = 'eqEnc'
    with open(openFile, 'rb') as f:
        d = f.read()
        key = 'eq verySimple'
        enc = []
        for index, item in enumerate(d):
            enc.append(item ^ ord(key[index % len(key)]))
        with open(outputFile, 'wb') as f2:
            f2.write(bytes(enc))

分析发现就是把eq这个文件给亦或一个值然后输出eqenc

直接用这个文件还原eqenc得到一个z3方程

直接用z3求解

from z3 import *
solver = Solver()
solver.set("threads", 16)  # 使用4个线程
# 创建求解器实例


# 定义变量,假设x是整数变量
x=[BitVec(str(i),16)  for i in range(38)]  # 根据方程中出现的最大索引37,创建38个变量(x[0]到x[37])

for var in x:
    solver.add(var >= 32, var <= 126)

known_prefix = "flag{"
for i in range(len(known_prefix)):
    solver.add(x[i] == ord(known_prefix[i]))  # 例如:x[0] = ord('f')=102
solver.add(x[37] == ord('}'))
# 添加方程约束
solver.add(8 * (x[0] * x[10]) - 6 * (x[0] * x[9]) + 10 * (x[1] * x[29]) + 5 * x[10] + 3 * (x[12] * x[18]) + 7 * (x[13] * x[15]) + 8 * (x[15] * x[33]) + 10 * (x[18] * x[30]) - 10 * (x[19] * x[36]) - 4 * (x[22] * x[4]) - 4 * (x[28] * x[7]) + 5 * (x[31] * x[36]) - 5 * (x[35] * x[4]) + 2 * (x[35] * x[8]) - 5 * x[37] - 142252 == 0)
solver.add(8 * (x[0] * x[3]) + 10 * (x[0] * x[32]) + 8 * (x[0] * x[6]) + 5 * (x[1] * x[4]) + 6 * x[1] - 5 * (x[10] * x[11]) - x[10] * x[33] - 6 * (x[12] * x[36]) + 10 * (x[18] * x[26]) - 8 * (x[2] * x[27]) - 8 * (x[21] * x[31]) - 2 * (x[22] * x[29]) - 2 * (x[24] * x[35]) + 9 * (x[24] * x[36]) + 3 * (x[25] * x[27]) + 5 * (x[26] * x[3]) + 10 * (x[3] * x[33]) + 3 * (x[31] * x[32]) - 9 * (x[31] * x[4]) + 2 * (x[32] * x[34]) - 314730 == 0)
solver.add(2 * (x[0] * x[27]) - 5 * (x[0] * x[37]) - 9 * (x[1] * x[22]) - 6 * (x[10] * x[5]) + 6 * (x[12] * x[24]) - 5 * (x[14] * x[15]) - 3 * (x[14] * x[37]) - 5 * (x[19] * x[26]) + 9 * (x[20] * x[27]) + 6 * (x[21] * x[24]) + 7 * (x[21] * x[29]) - 3 * (x[23] * x[26]) + 4 * (x[24] * x[36]) + 8 * (x[35] * x[8]) + 160358 == 0)
solver.add(-8 * (x[10] * x[19]) + 8 * (x[14] * x[5]) - x[15] * x[15] - 9 * (x[18] * x[27]) + 7 * (x[19] * x[32]) - 4 * (x[23] * x[6]) - 9 * (x[31] * x[7]) + 5 * x[32] + 9 * (x[4] * x[6]) - 80559 == 0)
solver.add(-2 * (x[1] * x[2]) - 2 * (x[10] * x[32]) - 7 * (x[11] * x[2]) - 6 * (x[11] * x[31]) + 9 * (x[15] * x[9]) + 2 * (x[19] * x[34]) + 7 * (x[19] * x[6]) + 9 * (x[22] * x[37]) + 3 * (x[23] * x[34]) + 9 * (x[28] * x[8]) - 9 * (x[5] * x[9]) - 59775 == 0)
solver.add(-8 * (x[0] * x[2]) + 5 * (x[1] * x[29]) - 9 * (x[10] * x[9]) + 3 * (x[11] * x[18]) - 9 * (x[12] * x[16]) + 6 * (x[12] * x[23]) - 3 * (x[12] * x[24]) - 5 * (x[14] * x[5]) - x[15] * x[23] + 6 * x[16] + 4 * (x[17] * x[33]) - 4 * (x[17] * x[6]) - 3 * (x[19] * x[23]) - 10 * (x[20] * x[26]) + 7 * (x[22] * x[3]) + 9 * (x[23] * x[24]) - 6 * (x[7] * x[9]) + 170365 == 0)
solver.add(-9 * (x[0] * x[18]) + 5 * (x[0] * x[29]) + 10 * (x[1] * x[8]) - 2 * (x[10] * x[22]) - 8 * (x[10] * x[30]) - 7 * (x[13] * x[32]) + 4 * (x[16] * x[4]) - 3 * x[16] + 7 * (x[19] * x[9]) - 8 * (x[2] * x[20]) + 2 * (x[21] * x[24]) - 7 * (x[23] * x[9]) - 8 * (x[27] * x[28]) + 4 * (x[28] * x[30]) - 10 * (x[29] * x[3]) + 7 * x[29] + 3 * (x[32] * x[33]) - 4 * (x[36] * x[5]) + 77631 == 0)
solver.add(4 * (x[0] * x[31]) - 4 * (x[10] * x[7]) - 9 * (x[11] * x[6]) + 10 * (x[12] * x[5]) - 3 * (x[13] * x[27]) + 3 * (x[16] * x[26]) + 8 * (x[17] * x[21]) - 3 * (x[17] * x[27]) - 9 * (x[18] * x[2]) + x[19] * x[32] - 2 * (x[19] * x[34]) + 10 * (x[2] * x[22]) - x[20] * x[8] + 10 * (x[24] * x[36]) + 5 * (x[3] * x[5]) + x[31] * x[34] - 2 * (x[32] * x[37]) - 7 * (x[36] * x[4]) - 143640 == 0)
solver.add(10 * (x[1] * x[34]) - 6 * (x[1] * x[9]) - 9 * (x[13] * x[32]) + 7 * (x[19] * x[24]) + x[2] * x[25] - 3 * (x[21] * x[9]) - 5 * (x[22] * x[23]) + 7 * (x[25] * x[3]) - 2 * (x[25] * x[7]) - 9 * (x[27] * x[31]) - 10 * x[27] + 2 * (x[28] * x[34]) - 8 * (x[28] * x[9]) + 10 * (x[31] * x[36]) + 6 * (x[33] * x[9]) - 10 * (x[34] * x[37]) - x[34] * x[8] + 7 * (x[35] * x[36]) - 4 * (x[36] * x[6]) - 7 * x[9] * x[9] + 113502 == 0)
solver.add(-9 * (x[1] * x[18]) - 6 * (x[10] * x[29]) - 4 * (x[12] * x[25]) + x[16] * x[21] + 6 * (x[16] * x[23]) - 6 * (x[16] * x[32]) - x[17] * x[21] - 8 * (x[18] * x[20]) + 9 * (x[18] * x[31]) + 8 * (x[2] * x[9]) + 4 * (x[22] * x[33]) + x[27] * x[31] - 2 * (x[28] * x[6]) - 5 * (x[29] * x[7]) - x[35] * x[8] - 9 * (x[4] * x[9]) + 8 * (x[6] * x[7]) + 103759 == 0)
solver.add(9 * (x[0] * x[1]) - 2 * x[0] - 6 * (x[10] * x[29]) - 6 * (x[11] * x[5]) - 4 * (x[13] * x[22]) - 6 * (x[15] * x[36]) + 3 * (x[16] * x[6]) + 7 * (x[18] * x[25]) - 8 * (x[20] * x[5]) + 7 * (x[23] * x[5]) - x[25] * x[28] + 9 * (x[26] * x[8]) - 7 * (x[29] * x[36]) - 3 * (x[30] * x[9]) + 6 * (x[35] * x[5]) - 70353 == 0)
solver.add(-5 * (x[0] * x[4]) - 8 * (x[1] * x[27]) - 7 * (x[1] * x[34]) + 7 * (x[11] * x[22]) + 4 * (x[14] * x[5]) - 5 * (x[17] * x[31]) + 10 * (x[20] * x[21]) - 7 * (x[20] * x[23]) - 2 * (x[22] * x[8]) - 7 * x[29] * x[29] + 6 * (x[29] * x[3]) + 9 * (x[30] * x[34]) + 3 * (x[31] * x[6]) - 9 * x[5] * x[5] + 82184 == 0)
solver.add(6 * (x[0] * x[28]) - x[1] * x[2] - 4 * (x[10] * x[35]) + 3 * (x[13] * x[32]) - 2 * x[17] - 2 * (x[19] * x[33]) + x[20] * x[29] - 4 * (x[21] * x[29]) - 5 * (x[24] * x[26]) + x[25] * x[26] - 5 * (x[26] * x[8]) - 6 * (x[33] * x[6]) - 8 * (x[36] * x[4]) + 113024 == 0)
solver.add(8 * (x[0] * x[24]) - 4 * (x[17] * x[2]) + 7 * (x[2] * x[37]) + 6 * (x[2] * x[7]) - 2 * (x[23] * x[5]) + x[33] * x[35] - 8 * x[9] - 133962 == 0)
solver.add(-5 * (x[0] * x[11]) - x[13] * x[21] - 7 * (x[16] * x[2]) + 9 * (x[18] * x[29]) - 2 * (x[18] * x[30]) - 7 * (x[20] * x[27]) - 5 * (x[24] * x[7]) + 10 * x[25] + 6 * (x[28] * x[29]) - 5 * (x[29] * x[4]) - 8 * (x[3] * x[34]) + 9 * (x[31] * x[33]) - 9 * x[33] * x[33] + 10 * (x[4] * x[5]) + 79412 == 0)
solver.add(-2 * (x[10] * x[8]) + 9 * (x[14] * x[20]) - 4 * (x[15] * x[21]) + 5 * (x[16] * x[2]) + x[17] * x[4] - 8 * (x[18] * x[4]) - 3 * (x[2] * x[21]) + 3 * (x[20] * x[31]) - 10 * (x[21] * x[27]) - 5 * (x[22] * x[31]) - 6 * (x[27] * x[33]) + 10 * (x[27] * x[36]) - 8 * x[35] + 29485 == 0)
solver.add(-6 * (x[0] * x[14]) - 8 * (x[1] * x[14]) + 2 * x[11] * x[11] + 4 * (x[12] * x[18]) + x[15] * x[6] + 9 * (x[16] * x[18]) - 7 * (x[18] * x[25]) - x[20] * x[20] - 8 * (x[3] * x[33]) + 10 * (x[31] * x[37]) - 10 * (x[35] * x[36]) + 7 * x[35] - 6 * (x[8] * x[9]) + 108571 == 0)
solver.add(x[10] * x[35] - 10 * (x[10] * x[37]) + 8 * (x[10] * x[7]) - 5 * (x[12] * x[30]) - 2 * (x[15] * x[34]) - 7 * (x[16] * x[22]) - 2 * (x[18] * x[31]) + 8 * (x[2] * x[33]) - 3 * (x[22] * x[5]) + 4 * (x[23] * x[27]) - 7 * (x[3] * x[35]) + 4 * (x[33] * x[8]) - x[35] * x[6] - x[6] + 169501 == 0)
solver.add(-7 * (x[0] * x[37]) - 8 * (x[1] * x[24]) + 6 * (x[11] * x[15]) - 10 * (x[11] * x[32]) - 4 * (x[13] * x[17]) - 8 * (x[14] * x[17]) - 2 * (x[14] * x[26]) + 9 * (x[16] * x[20]) + 7 * (x[16] * x[29]) - 5 * (x[16] * x[36]) - 6 * (x[18] * x[20]) + 7 * (x[20] * x[22]) + 4 * x[22] * x[22] - 8 * (x[22] * x[24]) + 7 * (x[24] * x[3]) + 5 * x[25] * x[25] - 9 * (x[25] * x[26]) - 4 * x[26] * x[26] - 6 * x[29] - 6 * (x[3] * x[37]) - x[35] * x[36] + 304140 == 0)
solver.add(-7 * (x[1] * x[11]) + 5 * (x[1] * x[37]) - x[10] * x[31] - 2 * (x[11] * x[35]) - 8 * (x[12] * x[5]) + 3 * (x[15] * x[29]) + 2 * (x[17] * x[29]) + 2 * (x[17] * x[37]) - 6 * (x[2] * x[22]) + x[2] * x[9] + 6 * (x[20] * x[25]) - 3 * (x[20] * x[26]) - 9 * (x[21] * x[34]) - 3 * (x[22] * x[27]) - 5 * (x[22] * x[4]) + 9 * (x[22] * x[7]) - 6 * (x[23] * x[34]) - 3 * (x[23] * x[6]) - 6 * (x[31] * x[5]) - 6 * (x[32] * x[8]) + x[35] * x[35] + 281492 == 0)
solver.add(5 * (x[0] * x[36]) - 9 * (x[10] * x[6]) - 5 * (x[12] * x[29]) + 6 * (x[12] * x[31]) - 7 * (x[12] * x[7]) + 8 * (x[13] * x[8]) - 5 * (x[16] * x[17]) + 8 * (x[17] * x[2]) - 5 * (x[23] * x[35]) - 3 * (x[27] * x[7]) + 8 * (x[28] * x[36]) + 8 * x[3] - 3 * (x[30] * x[9]) + 10 * (x[31] * x[8]) - 2 * (x[32] * x[5]) - 8 * (x[36] * x[8]) - 39234 == 0)
solver.add(6 * (x[1] * x[6]) - 4 * (x[10] * x[5]) + 5 * (x[11] * x[26]) + 2 * (x[14] * x[24]) + 7 * (x[15] * x[23]) - 9 * (x[16] * x[24]) + 7 * (x[18] * x[21]) - 4 * x[18] - 10 * (x[2] * x[36]) - 5 * (x[20] * x[31]) + 7 * (x[21] * x[35]) + 5 * (x[25] * x[8]) - 3 * (x[26] * x[31]) - 6 * (x[27] * x[34]) + 9 * (x[29] * x[3]) - 10 * x[31] * x[31] - 48106 == 0)
solver.add(-5 * (x[0] * x[29]) - 8 * (x[1] * x[15]) + 7 * (x[12] * x[30]) + 8 * (x[14] * x[24]) + 7 * (x[15] * x[17]) - 3 * (x[15] * x[31]) - 5 * (x[15] * x[7]) - 3 * (x[16] * x[33]) + 6 * (x[18] * x[26]) + 7 * (x[19] * x[26]) - x[20] * x[7] - 10 * (x[21] * x[6]) - 3 * (x[22] * x[29]) - 6 * (x[23] * x[25]) - 6 * (x[23] * x[3]) - 7 * (x[23] * x[33]) - 4 * (x[29] * x[31]) + 2 * (x[3] * x[35]) + 8 * (x[33] * x[8]) - 8 * (x[4] * x[6]) + 84594 == 0)
solver.add(10 * (x[1] * x[31]) - 10 * x[11] * x[11] + 6 * (x[11] * x[24]) + 4 * (x[12] * x[17]) + 8 * (x[22] * x[31]) + 9 * (x[3] * x[32]) + 5 * (x[3] * x[7]) + 9 * (x[30] * x[7]) + 5 * (x[31] * x[5]) + 8 * x[9] - 250665 == 0)
solver.add(8 * (x[1] * x[29]) + 6 * (x[1] * x[3]) + 7 * (x[11] * x[15]) - 3 * (x[11] * x[22]) - 10 * (x[12] * x[24]) + 7 * (x[12] * x[28]) + 4 * (x[12] * x[29]) + 5 * (x[13] * x[22]) + 4 * (x[13] * x[34]) - 7 * x[13] - 3 * (x[16] * x[19]) - 9 * (x[16] * x[28]) - 4 * (x[18] * x[35]) + 8 * (x[19] * x[26]) - 6 * (x[23] * x[34]) - 4 * (x[23] * x[6]) + x[23] * x[9] + 2 * (x[24] * x[9]) + 9 * (x[25] * x[31]) + 9 * (x[29] * x[33]) - 2 * (x[29] * x[6]) - 9 * (x[3] * x[5]) + x[30] * x[31] + 4 * (x[30] * x[32]) - 9 * (x[34] * x[7]) - 136458 == 0)
solver.add(7 * (x[12] * x[20]) - 2 * (x[13] * x[27]) + 7 * (x[15] * x[29]) - 5 * (x[15] * x[3]) - 7 * (x[15] * x[31]) + 2 * (x[15] * x[6]) - 7 * (x[16] * x[17]) - 6 * (x[16] * x[28]) - x[18] * x[20] - x[19] * x[32] + x[21] * x[30] + 9 * (x[23] * x[4]) + x[25] * x[35] + 5 * (x[26] * x[29]) - 9 * (x[30] * x[32]) - 4 * (x[32] * x[7]) + 9 * x[34] + x[37] * x[4] - 8 * (x[8] * x[9]) + 134345 == 0)
solver.add(-8 * (x[0] * x[19]) - 8 * (x[1] * x[21]) - x[10] * x[13] - x[15] * x[4] - 4 * (x[21] * x[22]) - 8 * x[24] * x[24] - 7 * (x[26] * x[8]) - 5 * (x[28] * x[32]) + 8 * (x[29] * x[3]) - 3 * (x[35] * x[4]) + 8 * x[36] + 226409 == 0)
solver.add(4 * (x[0] * x[23]) + 8 * (x[0] * x[34]) + 2 * (x[1] * x[27]) - 5 * (x[10] * x[11]) - 3 * (x[10] * x[13]) - 6 * (x[21] * x[22]) + 8 * (x[21] * x[34]) - 6 * (x[22] * x[37]) + 8 * (x[23] * x[28]) + 6 * (x[3] * x[8]) - 3 * (x[36] * x[8]) - x[37] * x[37] - x[5] * x[8] + 7846 == 0)
solver.add(-9 * (x[0] * x[27]) + 10 * x[0] + 5 * (x[13] * x[25]) - 4 * (x[15] * x[29]) - 9 * (x[15] * x[30]) - 9 * (x[16] * x[17]) - x[17] * x[32] + 9 * (x[17] * x[4]) + 6 * x[19] * x[19] + 6 * (x[2] * x[20]) + 3 * (x[20] * x[33]) + 2 * x[21] - 9 * x[25] - 4 * (x[26] * x[31]) + 7 * (x[29] * x[35]) - 7 * (x[30] * x[35]) - 7 * x[31] - x[4] * x[4] - 3 * (x[8] * x[9]) + 129180 == 0)
solver.add(6 * (x[0] * x[20]) + 10 * (x[17] * x[29]) - 9 * (x[2] * x[7]) + 6 * (x[21] * x[22]) - 10 * (x[21] * x[33]) - 9 * (x[21] * x[34]) - 8 * x[26] * x[26] + 8 * (x[3] * x[36]) + x[30] * x[8] + 5 * (x[33] * x[8]) - 2 * x[33] - 3 * x[34] * x[34] + x[35] + 6 * (x[36] * x[9]) + 6904 == 0)
solver.add(10 * (x[0] * x[5]) - 3 * x[1] + 2 * (x[10] * x[26]) + 10 * (x[11] * x[23]) + 10 * x[13] * x[13] - x[14] * x[5] + 2 * (x[14] * x[8]) + 8 * (x[15] * x[20]) + 3 * (x[15] * x[21]) - 10 * (x[15] * x[8]) - 6 * (x[18] * x[2]) + 7 * (x[19] * x[24]) - 7 * (x[2] * x[24]) + 4 * (x[2] * x[28]) - 4 * (x[2] * x[5]) + x[21] * x[21] - 6 * x[26] * x[26] - 6 * x[32] * x[32] + 2 * (x[33] * x[8]) - 9 * (x[34] * x[9]) + 7 * x[5] * x[5] - 10 * x[7] - 99502 == 0)
solver.add(-4 * (x[10] * x[26]) - 8 * (x[12] * x[32]) - 10 * (x[14] * x[29]) - 7 * (x[24] * x[9]) + 10 * (x[28] * x[32]) - 6 * (x[28] * x[34]) + 2 * x[28] - 8 * (x[36] * x[4]) + 182526 == 0)
solver.add(-x[1] * x[8] - 9 * (x[10] * x[32]) - 6 * (x[11] * x[33]) - x[13] * x[22] + x[14] * x[32] - x[15] * x[32] + 7 * (x[17] * x[24]) - 4 * x[19] * x[19] + 8 * (x[2] * x[5]) + 3 * (x[20] * x[6]) + 10 * (x[21] * x[7]) - 6 * (x[26] * x[5]) - 9 * (x[34] * x[8]) - 10 * (x[35] * x[36]) + 110094 == 0)
solver.add(-5 * (x[12] * x[24]) - 9 * (x[16] * x[18]) - 6 * (x[16] * x[22]) + 2 * (x[16] * x[36]) - x[17] * x[3] + 6 * x[17] - 2 * (x[18] * x[4]) + 2 * (x[19] * x[28]) - 6 * (x[23] * x[37]) - 2 * (x[25] * x[29]) - x[26] * x[30] + 7 * (x[28] * x[7]) + 9 * (x[29] * x[5]) - 2 * (x[30] * x[32]) + 4 * (x[30] * x[33]) + 6 * x[31] * x[31] - 4 * (x[34] * x[35]) + 110939 == 0)
solver.add(-2 * (x[0] * x[24]) + x[0] * x[36] - 10 * (x[1] * x[26]) - 8 * (x[10] * x[7]) + 2 * x[10] - 6 * (x[11] * x[37]) + 10 * (x[2] * x[33]) - 4 * x[2] + x[20] * x[25] - 5 * (x[21] * x[24]) - 8 * (x[25] * x[32]) - 2 * (x[28] * x[6]) - 10 * (x[3] * x[35]) + 6 * (x[32] * x[34]) + 8 * (x[5] * x[9]) + 211248 == 0)
solver.add(-4 * (x[11] * x[7]) + 3 * (x[12] * x[3]) - 6 * (x[12] * x[5]) - 10 * (x[13] * x[14]) + 10 * (x[14] * x[24]) + 7 * (x[16] * x[8]) - 2 * (x[17] * x[22]) + 8 * (x[2] * x[21]) + x[25] * x[37] + 3 * (x[25] * x[4]) - 7 * (x[26] * x[34]) - 2 * x[27] * x[27] - x[27] * x[37] + 8 * (x[27] * x[6]) + 7 * (x[4] * x[9]) - 52034 == 0)
solver.add(-x[0] * x[15] - 2 * (x[0] * x[18]) + 6 * (x[0] * x[9]) - 7 * (x[1] * x[34]) - 7 * (x[11] * x[8]) + 8 * x[14] * x[14] + 7 * (x[14] * x[29]) + 4 * (x[18] * x[34]) + 4 * (x[23] * x[27]) + 9 * (x[24] * x[30]) - x[3] * x[34] + x[30] * x[5] - 5 * (x[31] * x[34]) - 7 * (x[7] * x[9]) - 3 * x[9] - 46825 == 0)
solver.add(-6 * (x[1] * x[23]) + x[10] * x[18] - 8 * (x[12] * x[14]) + 3 * (x[13] * x[37]) - 3 * (x[15] * x[24]) + 3 * (x[18] * x[21]) + 9 * (x[22] * x[31]) + 8 * (x[26] * x[8]) + 10 * x[3] * x[3] + x[31] * x[33] + 6 * (x[4] * x[7]) - 197975 == 0)

if solver.check() == sat:
    # 获取模型
    model = solver.model()
    # 打印所有变量的解
    solution = []
    for i in range(38):
        val = model[x[i]].as_long()
        solution.append((i, val, chr(val)))  # 存储索引、数值和对应字符

    # 按格式打印结果
    print("找到满足条件的解:")
    for idx, num, char in solution:
        print(f"x[{idx}] = {num} (ASCII: '{char}')")

    # 也可以打印为连续字符串
    flag = ''.join([chr(model[x[i]].as_long()) for i in range(38)])
    print("\n拼接后的字符串:")
    print(flag)
else:
    print("未找到满足所有约束的解")

拼接后的字符串:

flag{b79e08ddaaab41356a468d271a5e3435}

ez vm

分析主函数
用户输入一个内容,然后输入一个key,经过两个vm的函数最后和flag这个文件的内容比较

看vm调用的缓冲区和代码可以看到一些256的特征


ai分析也可能是rc4之类的流加密,但是输入的值和key根据常规rc比较,发现不一样,猜测是有魔改,所以想爆破key是不可能的
经过调试和分析,可以断定一个就是rc4的s盒,一个是加密函数

然后就是疯狂的找key中
然后找不到,不会了
有大佬解出这题的话,还请教教我

朗读
赞(0)
版权属于:

霍雅的博客

本文链接:

https://6666345.xyz/bk/index.php/archives/514/(转载时请注明本文出处及文章链接)

评论 (1)
  1. 1 作者
    Windows 10 · Google Chrome

    爆破

    2025-05-29 回复

人生倒计时

今日已经过去小时
这周已经过去
本月已经过去
今年已经过去个月