C# 加密文件时,如何防止文件';图标被加密了吗?

C# 加密文件时,如何防止文件';图标被加密了吗?,c#,.net,encryption,icons,C#,.net,Encryption,Icons,我正在编写一个简单的软件保护工具,它将输入文件读取为字节数组,然后使用AES对该字节数组进行加密,并将结果存储到另一个负责自身解密的文件中 到目前为止,这个软件工作起来很有魅力,但只有一个问题,就是当我加密一个文件时,输出文件(受保护的文件)会丢失它的图标,我想这是因为所有文件的资源都被加密了。因此,该图标不再可用 我尝试在加密文件后使用更改文件的图标,但它似乎不适用于加密文件,即使它适用于任何其他exe文件 因此,为了使这项工作,我决定首先更改输入文件的图标,然后加密文件,而不加密其图标 如果

我正在编写一个简单的软件保护工具,它将输入文件读取为字节数组,然后使用AES对该字节数组进行加密,并将结果存储到另一个负责自身解密的文件中

到目前为止,这个软件工作起来很有魅力,但只有一个问题,就是当我加密一个文件时,输出文件(受保护的文件)会丢失它的图标,我想这是因为所有文件的资源都被加密了。因此,该图标不再可用

我尝试在加密文件后使用更改文件的图标,但它似乎不适用于加密文件,即使它适用于任何其他exe文件

因此,为了使这项工作,我决定首先更改输入文件的图标,然后加密文件,而不加密其图标

如果我只能将图标的资源从加密中剥离,那么这应该可以工作

如何防止输入文件的图标被加密?

来自输入文件

将其存储在内存中

加密文件


并将加密文件添加到新的exe中。

您可以对.exe进行加密,并将加密数据附加到具有相同图标的现有.exe中。该图标也可以执行解密。您应该从外部提供密钥。

那么您想提取exe的图标,以便对exe进行加密,然后设置图标吗?为什么要为一个图标做这么多额外的工作?@AdamD即使我提取了文件的图标,我也无法在加密文件后再次设置图标。我建议你看看我之前的问题,看看原因。唯一可行的解决方案是在加密之前设置一个文件图标,然后加密该文件,并将图标从加密中移除(保留图标)。或者直接保存文件的图标(如果文件已经有图标),您不能加密exe,然后将其附加到具有相同图标的现有.exe吗?该.exe甚至可能进行解密(当然,在从外部给它密钥之后)。@owlstead非常感谢。你的解决方案工作起来像个圣诞老人!请转寄它作为答复&我会接受的。谢谢,嗯,这可能和我刚才评论的想法相同,也许可以使用“将你的图标和加密文件添加到一个新的.exe”?请尽量用完整的句子。我在写答案时没有看到你的评论。请回复你的评论作为回答,OP已经提到他会接受。