加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 百科 > 正文

c# – 在运行时创建可执行文件

发布时间:2020-12-15 23:54:25 所属栏目:百科 来源:网络整理
导读:好吧,所以我想知道如何创建一个程序,创建第二个程序(就像大多数压缩程序可以创建自我提取自我提取,但这不是我需要的). 说我有2个程序.每一个都包含一个类.我将使用一个程序来修改和填充数据类.第二个文件是一个程序,它也有类,但是空的,它的唯一目的是以特定
好吧,所以我想知道如何创建一个程序,创建第二个程序(就像大多数压缩程序可以创建自我提取自我提取,但这不是我需要的).

说我有2个程序.每一个都包含一个类.我将使用一个程序来修改和填充数据类.第二个文件是一个程序,它也有类,但是空的,它的唯一目的是以特定的方式访问这些数据.我不知道,我在想是否序列化特定类,然后“注入”第二个文件.但是如何才能做到这一点呢?我发现修改已编译的文件很有吸引力,但我从来没有能够进行不会导致错误的更改.

这只是一个想法.我不知道解决方案会是什么,这只是让我想到的东西.

我更喜欢c或c中的一些跨平台信息.我接受的唯一其他语言是c#.

我不是在寻找第三方图书馆,或者像Boost这样的东西.如果有任何正确方向的推动可能是我所需要的.

??也

我不想使用编译器.

Jalf实际上读了我写的内容

这正是我想知道该怎么做的.我认为上面提到的内容相当明显.我没有说过编译文件或编写脚本.

引用“我发现修改已经编译过的文件非常吸引人”

请在发布前先阅读并理解问题.

谢谢.

解决方法

从头开始构建可执行文件很难.首先,您需要为程序执行的操作生成机器代码,然后您需要将此类代码封装在可执行文件中.除非你想为一种语言编写一个编译器,否则这太过分了.

生成自解压可执行文件的这些实用程序实际上并不是从头开始生成可执行文件.它们具有预生成的可执行文件,并且数据文件仅附加到它的末尾.由于Windows可执行格式允许您将数据放在文件的末尾,仅关注“真正的可执行文件”部分(exe标题告诉它有多大 – 其余部分被忽略).

例如,尝试生成两个自解压zip,并对它们执行二进制diff.你会看到他们的第一个X KB字节完全相同,其余的是什么变化,根本不是可执行文件,它只是数据.执行文件时,它会查看文件末尾的内容(数据)并将其解压缩.

看一下维基百科条目,转到外部链接部分深入挖掘:
http://en.wikipedia.org/wiki/Portable_Executable

我这里只提到了Windows,但同样的原则适用于Linux.但是不要指望有跨平台的结果,你必须重新实现它到每个平台.我无法想象比可执行文件更依赖平台的东西.即使您使用C#,您也必须生成本机存根,如果您在Windows(在.net下)或Linux(在Mono下)运行,则会有所不同.

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读