c#

位置:IT落伍者 >> c# >> 浏览文章

让.Net 程序脱离.net framework框架运行


发布日期:2020年01月09日
 
让.Net 程序脱离.net framework框架运行

Net框架目前逐步在普及了仍然有很多人在寻找如何让NET程序脱离NET框架的方法现成的工具有 Xenocode 的postbuidle或者vas还有 Salamander NET Linker

另外还有 MaxToCode 作者以前做的 framework linker 以及一些支持注册表模拟和文件模拟的打包工具moleboxthinstall等最后还有某网友兜售的一个实现方法

Xenocode的是使用了一个虚拟机环境模拟框架需要的 注册表信息和文件信息Xenocode号称的生成native代码功能实际上就是指的这个功能我测试了几个程序打包兼容性似乎不怎么好 不知道是不是因为机器上已经安装了框架的原因

Jason做的 framework linker以前我也使用过 他的实际上是利用了 Remotesoft的内核文件然后自己实现了一个loader好像是使用的早期的内核文件兼容性也不太好

Salamander Net Linker Remotesoft的一个产品没有可以下载的但是其兼容性似乎很不错移动的飞信软件就利用了它的核心

某网友的方法似乎是利用remotesoft的核心和飞信的框架因为他并没有免费公开方法从他给出的样例可以看到有remotesoft的核心文件以及飞信的框架程序

这里要介绍的方法是直接利用飞信的框架来实现脱离 Net framework运行

首先下载一个飞信的程序安装在安装目录中会有 VMDotNet 目录这个就是Net框架虚拟环境需要的文件

直接把整个目录提取出来

如何利用这个虚拟环境运行 自己的 Net 程序呢?很简单一个命令行搞定在 VMDotNet 目录里面会找到一个 FetionVMexe 这个是虚拟环境的loader

使用方法 FetionVMexe pathtoyoureexe就是直接把你的 Net 程序 作为命令行参数传递给 FetionVMexe 就可以在这个虚拟环境中执行你的net程序了

最好再自己写一个启动程序首先检查系统是否安装了Net框架如果有直接运行没有调用虚拟环境运行

这个启动程序飞信也有如果不想自己写就直接拿飞信安装目录中的 Feitionexe但是这样的话 你自己的Net程序的名字必须叫 FeitionFXexe 把它和Feitionexe 放在同一目录下直接执行 Feitionexe 即可

另外如果你对Net程序使用了加密保护需要注意一下目前市面上的大部分Net加密工具加密后的程序集不能在这个虚拟环境中运行的

这个东西除了能实现脱离 net框架运行外还有另外一个副作用--让net程序运行在指定版本的net框架中(虽然机器上安装了net框架仍然可以让net程序在这个虚拟框架下运行)

上一篇:.NET Framework 3.5 SP1正式版发布

下一篇:C#中COM操作(一)---实例化[1]