山石-Ultrasonic-好久不见45

.exe.config

<?xml version="1.0" encoding="utf-8" ?>
<configuration>
    <startup> 
        <supportedRuntime version="v4.0" sku=".NETFramework,Version=v4.7.2" />
    </startup>
</configuration>

这段配置文件的作用是:

  • 指定应用程序运行时依赖的 .NET Framework 版本为 .NET Framework 4.7.2

  • 确保应用程序在启动时加载正确的运行时环境。

  1. 检查是否有原始图像。

  2. 弹出一个保存文件对话框,让用户选择保存加密图像的位置。

  3. 将图像保存为PNG格式,然后对图像数据进行加密。

  4. 将加密后的图像数据保存到用户指定的文件路径。

  1. 遍历图像的每个字节。

  2. 对每个字节执行以下操作:

    • 减去1。

    • 将字节的高3位右移5位,低5位左移3位,然后将它们按位或。

    • 对结果取反(按位取反)。

  3. 返回加密后的字节数组。

逆向还原图片

def decrypt_image_bytes(encrypted_bytes):

    decrypted_bytes = bytearray(len(encrypted_bytes))  # 创建与加密数据等长的字节数组

    for i, b in enumerate(encrypted_bytes):  # 遍历每个字节
        b = ~b & 0xFF  # 按位取反并确保结果为一个字节
        b = ((b & 0xF8) >> 3) | ((b & 0x07) << 5)  # 恢复高低位顺序
        b = (b + 1) & 0xFF  # 加1并确保结果为一个字节
        decrypted_bytes[i] = b  # 存入解密后的字节

    return bytes(decrypted_bytes)  # 返回解密后的字节数据


# 主程序:读取加密图像文件,解密并保存为新的图像文件
if __name__ == "__main__":
    # 读取加密图像文件
    encrypted_file_path = "enc.png"  # 加密图像文件路径
    decrypted_file_path = "dec.png"  # 解密后保存的文件路径

    try:
        with open(encrypted_file_path, "rb") as f:  # 以二进制模式读取文件
            encrypted_data = f.read()  # 读取加密数据

        # 调用解密函数
        decrypted_data = decrypt_image_bytes(encrypted_data)

        # 保存解密后的图像文件
        with open(decrypted_file_path, "wb") as f:  # 以二进制模式写入文件
            f.write(decrypted_data)

        print(f"解密成功!解密后的图像已保存为:{decrypted_file_path}")

    except FileNotFoundError:
        print(f"错误:文件 {encrypted_file_path} 未找到。")
    except Exception as e:
        print(f"解密过程中发生错误:{e}")

flagf62ead9d005bbf8fe4b7a5e9c2f56cc56}

相关推荐
予安灵6 分钟前
《白帽子讲 Web 安全》之文件操作安全
前端·安全·web安全·系统安全·网络攻击模型·安全威胁分析·文件操作安全
“向阳的蛋”3 小时前
奇安信网闸面试题
网络·安全
旭华智能4 小时前
泵吸式激光可燃气体监测仪:快速精准守护燃气管网安全
人工智能·物联网·安全
Aishenyanying334 小时前
Apache Shiro 反序列化漏洞全解析(Shiro-550 & Shiro-721)
安全·apache·shiro·反序列化漏洞
黑客Jack5 小时前
机场网络安全安全运营体系
安全
黑客Ela7 小时前
网络安全月度报告
网络·安全·web安全
D-river7 小时前
【入门Web安全之前端学习的侧重点和针对性的建议】
学习·安全·web安全
D-river7 小时前
【Web安全方向编程语言学习顺序推荐】
学习·安全·web安全·网络安全
予安灵15 小时前
《白帽子讲 Web 安全:点击劫持》
前端·网络·安全·web安全·网络攻击模型·安全威胁分析·点击劫持