tpng.py 文件源码

python
阅读 18 收藏 0 点赞 0 评论 0

项目:ructf-2017-tasks 作者: HackerDom 项目源码 文件源码
def write_idat_with_flag(encoded_flag, original_image_file_name, outfile):
    reader = png.Reader(filename=original_image_file_name)
    width, height, pixels, meta = reader.read()
    if height != len(encoded_flag):
        raise Exception(f"Encoded flag length {len(encoded_flag)} is not equal to height {height}")
    scanlines = list(pixels)
    filtered_scanlines = []
    for i in range(0, height):
        filtered_scanlines.append(
            png.filter_scanline(encoded_flag[i], scanlines[i], meta['planes'], scanlines[i - 1] if i > 0 else None))
    compressed = zlib.compress(b''.join(filtered_scanlines))
    png.write_chunk(outfile, b'IDAT', compressed)
评论列表
文章目录


问题


面经


文章

微信
公众号

扫码关注公众号