2026第十届御网杯数据安全赛道WP"

admin 2026-10-21 09:37:00 网络安全文章 来源:ZONE.CI 全球网 0 阅读模式

cover_image

python -m xdis.bin.pydisasm exfil_tool.pyc

from pathlib import Path
from PIL import Image

def arnold_inv(img, n=7):
    w = img.width
    cur = img.copy()
    for _ in range(n):
        old = cur.copy()
        ps = old.load()
        pd = cur.load()
        for x in range(w):
            for y in range(w):
                pd[(2 * x - y) % w, (-x + y) % w] = ps[x, y]
    return cur

def extract_lsb(img):
    px = img.load()
    w, h = img.size
    bits = []
    for y in range(h):
        for x in range(w):
            r, g, b = px[x, y][:3]
            bits += [r & 1, g & 1, b & 1]
            if len(bits) >= 32:
                size = 0
                for bit in bits[:32]:
                    size = (size << 1) | bit
                need = (size + 4) * 8
                if len(bits) >= need:
                    raw = bytearray()
                    for i in range(0, need, 8):
                        v = 0
                        for bit in bits[i:i + 8]:
                            v = (v << 1) | bit
                        raw.append(v)
                    return size, bytes(raw[4:])

img = Image.open(\"poster.png\").convert(\"RGB\")
size, payload = extract_lsb(arnold_inv(img, 7))

Path(\"1.png\").write_bytes(payload)

print(\"payload size:\", size)
print(\"payload head:\", payload[:8].hex())
print(\"saved: 1.png\")