托管代码与非托管代码的区别

托管代码与非托管代码的区别,第1张

1简单的说,就是代码被编译成MSIL后在.net的Framework下运行,同 *** 作系统底层的交互都交给framework去做。所谓非托管代码就是脱离了Framework的管制,直接同底层API打交道,自己管理自己的内存和安全机制等东西。而托管代码就不管这些,全都由Framework去完成

2“程序”一般都是在对 *** 作系统进行直接或者间接的 *** 作

“托管程序”是需要通过访问公共语言运行时(cls)才能访问 *** 作系统的程序

而“非托管程序”不用通过访问公共语言运行时(cls)可以直接访问 *** 作系统的程序

3vb.net,C#等写的程序是托管程序,VC++可以写托管程序,如果用到了内存管理,则只能编译为非托管程序这些东西MSDN上都写得很清楚的,如果真想深入了解的话LZ可以看看CLR via C#、.net框架设计、Effective C#之类的书籍

方法一:

1、在运行里输入gpedit.msc

2、选择计算机配置

3、安全设置

4、软件限制策略(如果右面没有内容,你用右健点软件限制策略再新建就行了)

5、安全级别,选择不允许的。

通过组策略禁止电脑安装软件步骤

方法二:

1、按下Win+R键,在运行中输入“gpedit.msc”后回车,打开本地组策略编辑器。

2、单击展开“管理模板”,单击打开“windows组件”,单击选中“windows installer”,双击“禁用ms installer"。

3、在“禁用Windows Installer”中,选择“已起用”,单击“仅用于非托管应用程序”,选择“始终禁用”,点击“确定”。

启动PE格式的文件必须要由 *** 作系统以CreateProcess的方式进行。

因为PE格式包含了OS需要知道的一些初始化的东西,需要在进入main函数之前完成初始化。

你可能会奇怪一个病毒不需要这么干也能够运行,赫赫,很简单,因为病毒代码通常比较简单,不需要复杂的初始化,不需要编译成PE格式(或者隐藏到其他PE各式的exe上面去)。

你的要求可以通过写临时文件,然后createprocess或者直接winexec来运行。


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/yw/11141786.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-13
下一篇 2023-05-13

发表评论

登录后才能评论

评论列表(0条)

保存