如何以编程方式创建自解压存档?

问题描述

我试图创建一个实用程序来生成一个自解压可执行文件,其中包含一个生成的可执行文件一个动态生成的文本文件

我已经看过了,我可能找错了关键字,但我找不到任何有用的东西。

解决方法

又快又脏的方式

您可以将任何您想要的内容附加到一个 exe 文件中,它就会起作用。所以你有你预制的固定 exe 解包器。您将一个易于查找的字节序列附加到它,然后附加文件。或者更好的是,您将文件附加到存根,然后将长度附加为 int64。所以在解包器中,您查看最后 8 个字节,看看有效载荷有多大,然后读取有效载荷。不需要魔法序列。有关一些建议,请参阅 appending data to an exe

更好的方法

您使用 mono.cecil 修改 exe 存根并将压缩内容添加为资源。 Here 有一个关于论证的问题。