1、启动计算机,启动到Windows10 开机LOGO时就按住电源键强制关机;
2、重复步骤3次左右启动后出现“自动修复”界面,我们点击 高级选项 进入;
3、接下来会到选择一个选项界面,我们再点击“疑难解答”;
4、接下来,我们选择“启动设置”;
5、接下来在启动设置中,我们可以看到多选项,这时是不能选择的,Windows需要我们先重启来激活这些选项,我们点击重启即可。
6、重启后,我们就可以看到众多的特殊启动模式选项了,其中也包括“启用低分辨率视频”,我们按下 3 就可以进入了,这个模式会以最小的分辨率启动;
7、接下来,你再设置一个合适的分辨率。重启进正常模式即可。
这个。。。。。。有点难,我给你个封面吧.版本 2
.支持库 spec
.程序集 窗口程序集1
.程序集变量 i
.程序集变量 k
.程序集变量 fh
.子程序 __启动窗口_创建完毕
.局部变量 cFonts
fh = AddFontMemResourceEx (#font, 取字节集长度 (#font), 0, cFonts)
i = 57426 ' 57547
标签1.字体.字体名称 = “Setup”
推迟调用子程序 (3000, &载入需要的窗口, , , )
.子程序 载入需要的窗口
信息框 (“本人亲测有效!更新时间为2014年4月14日(xp取消技术支持之时)”, 0, )
载入 (窗口1, , 假)
_启动窗口.可视 = 假
.子程序 _时钟1_周期事件
标签1.标题 = W2A (到字节集 (i))
i = i + 1
.如果真 (i > 57547)
i = 57426
标签1.标题 = “ ”
时钟2.时钟周期 = 250
时钟1.时钟周期 = 0
.如果真结束
.子程序 _时钟2_周期事件
时钟1.时钟周期 = 30
时钟2.时钟周期 = 0
.子程序 W2A, 文本型, 公开, 将Unicode转成Ansi
.参数 参数_Unicode文本, 字节集
.局部变量 Ansi长度, 整数型
.局部变量 返回值, 文本型
Ansi长度 = WideCharToMultiByte (0, 0, 参数_Unicode文本, -1, “”, 0, 0, 0)
返回值 = 取空白文本 (Ansi长度)
WideCharToMultiByte (0, 0, 参数_Unicode文本, -1, 返回值, Ansi长度, 0, 0)
返回 (返回值)
.子程序 __启动窗口_将被销毁
RemoveFontMemResourceEx (fh)
.子程序 _标签1_反馈事件, 整数型
.参数 参数一, 整数型
.参数 参数二, 整数型
.子程序 _标签3_反馈事件, 整数型
.参数 参数一, 整数型
.参数 参数二, 整数型
--------------(不用复制)—————————————————
FetionVM.exe是中国移动飞信软件的进程。首先要说的是,飞信是用Microsoft Visual C# / Basic .NET所编写的,有人指出飞信内存占用了30多MB,甚者虚拟内存100多MB,原因见下文:对编程有一定了解的人会知道,.NET 程序需要.NET Framework的支持,这就类似于Java程序要有JRE(Java Runtime Environment,Java运行环境)支持,所以内存占用就大了而且所占用的内存大部分是与系统所共享的,实质上进程占用的私有内存是比较小的。但是飞信的框架实现了脱离 .Net framework运行,目录中的 VMDotNet 目录,就是虚拟.Net framework环境需要的文件。Feition.exe是一个启动程序,首先检查本地系统是否安装了 .Net framework,如果有直接调用主程序FeitionFX.exe运行,如果没有则使用虚拟环境运行。这个我们从文件大小就可以看出来,Fetion.exe(436kb)FetionFX.exe(3584kb) .Net 框架目前逐步在普及了,仍然有很多人在寻找如何让.NET程序脱离.NET框架的方法。现成的工具有 Xenocode 的postbuidle或者vas,还有 Salamander .NET Linker .另外还有 MaxToCode 作者以前做的 framework linker. 以及一些支持注册表模拟和文件模拟的打包工具molebox,thinstall等. Salamander .Net Linker ,Remotesoft的一个产品,其兼容性似乎很不错。“飞信”就利用了它的核心。上述工具实际上分两类:一、伪编译就是把磁盘上的 dotNet程序转换成 win32 的程序,但运行后在内存中实际上还是dotNet程序,只是使用了一个win32 loader,把dotNet程序整体打包嵌入到了这个 win32 的loader中。二、ngen编译ngen 是 dotNet提供的将IL编译成native的工具。这种可以算是真实的编译吧。但是它们有一个共同的特点,依然不能脱离dotNet框架单独运行,当然可以使用虚拟框架运行。其中飞信框架有两个主要文件 FetionVM.exe 和FetionVM.srm 这个两个是框架的loader程序,用来加载待运行的dotNet程序。FetionVM.exe是native的win32程序,它实际上只是调用了rsdeploy.dll 里面的三个函数来启动 fetionvm.srm。srm这个文件其实是一个最简单的。net程序,在这个srm文件里面它会用反射启动 参数传递进来的那个 。net程序。FetionVM.exe很简单,反汇编看看就清楚了。fetionvm.srm是DotNet程序,如果用reflector等工具查看会发现它只是一个“空壳”,里面啥都没有。真正的实体在\C\WINDOWS\assembly\NativeImages_v2.0.50727_32\FetionVM\6e39d95b1cb7d342a0ad2b892350dc65\FetionVM.ni.exe 中。FetionVM.ni.exe 就是 ngen生成的native文件。fetionvm.srm实际上使用了 native compile方式的保护。fetionvm.srm这个文件的存在只是用来欺骗framework,框架在加载 fetionvm.srm 后,根据其程序集名称在 nativeimages中查找是否存在 native code,如果有就会加载 native code版本的。native compile 方式就是将dotNet程序编译成native的本地代码,有代表性的相关工具有xenocode, themida 和 remotesoft。 Net 框架目前逐步在普及了,仍然有很多人在寻找如何让.Net程序脱离.NET框架的方法。现成的工具有 Xenocode 的postbuidle或者vas,还有 Salamander .NET Linker .另外还有 MaxToCode 作者以前做的 framework linker. 以及一些支持注册表模拟和文件模拟的打包工具molebox,thinstall等.最后还有一个实现方法.Jason做的 framework linker,以前我也使用过, 他的实际上是利用了 Remotesoft的内核文件,然后自己实现了一个loader。好像是使用的早期的内核文件,兼容性也不太好。Salamander .Net Linker ,Remotesoft的一个产品,没有可以下载的,但是其兼容性似乎很不错。移动的飞信软件就利用了它的核心。这个方法似乎是利用remotesoft的核心和飞信的框架,因为他并没有免费公开方法,从样例可以看到有remotesoft的核心文件以及飞信的框架程序。这里要介绍的方法是直接利用飞信的框架来实现脱离 .Net framework运行。首先下载一个飞信的程序安装。在安装目录中会有 VMDotNet 目录。这个就是.Net框架虚拟环境需要的文件。直接把整个目录提取出来。使用方法: FetionVM.exe pathtoyoureexe。就是直接把你的 .Net 程序 作为命令行参数传递给 FetionVM.exe 就可以在这个虚拟环境中执行你的.net程序了。最好再自己写一个启动程序,首先检查系统是否安装了.Net框架,如果有直接运行。没有调用虚拟环境运行。这个启动程序飞信也有,如果不想自己写就直接拿飞信安装目录中的 Feition.exe,但是这样的话 你自己的.Net程序的名字必须叫 FeitionFX.exe 。把它和Feition.exe 放在同一目录下,直接执行 Feition.exe 即可。另外,如果你对.Net程序使用了加密保护,需要注意一下,目前市面上的大部分。Net加密工具加密后的程序集不能在这个虚拟环境中运行的。这个东西除了能实现脱离.net框架运行外,还有另外一个副作用--让.net程序运行在指定版本的.net 框架中。欢迎分享,转载请注明来源:内存溢出
评论列表(0条)