导航:首页 > 编程语言 > 中文脚本引擎源代码

中文脚本引擎源代码

发布时间:2022-01-21 12:17:33

Ⅰ 什么是脚本引擎,它有什么作用

脚本引擎,就是一个计算机编程语言的解释器,如用于建网站的asp、php等,它的功能是解释执行用户的程序文本,将它译成计算机能执行的机器代码,完成一系列的功能。例如,Freemarker和Velocity通常被称为脚本引擎。Erb也会出现在这里,但奇怪的是,它并没有经常被称为脚本引擎。

脚本语言通常不需要编译步骤,因此可以更简单地作为shell脚本或从shell脚本运行。包括awk、perl、tcl、python、ruby等,这些语言通常需要简洁,类型安全性通常是可选的。Windows在其脚本宿主功能中支持多种语言。这将脚本语言公开给Windows中的各种组件。

(1)中文脚本引擎源代码扩展阅读:

java脚本引擎的设计原理浅析

1、编译型 vs 解析性

如果能够产生一个独立的class文件则属于前者,例如:fel,simpleEl,groovy

否则通过编译成自定义的内存指令就属于后者,例如:QLExpress,aviator,JEXL

2、java语法 vs 表达式语言(EL expression language) vs 脚本(script)

如果语法和java保持一致,不做任何扩展,就是属于第一种:如果语法大量简化(比如去掉显示类、方法、变量声明,异常处理,逻辑跳转循环等等),只支持简单的数学公式、对象方法成员变量调用, 就属于第二种:fel,simpleEl,aviator。

介于两者之间,即提供很好的语法糖,又支持大部分java语法:for循环,if判断,函数定义,就属于第三种:groovy,QLExpress

参考资料来源:网络-脚本引擎

Ⅱ 无法找到脚本引擎“VBScript”怎么办

朋友,这是你的电脑误删了系统文件,或系统文件被顽固木马破坏!(答案原创,原作者:力王历史)提示:急救箱无法联网,就用:“离线模式”!1。下载个“360系统急救箱”,已经安装了“360安全卫士”的朋友,直接打开“功能大全”的下面的“360系统急救箱”,点击它:【1】。开始急救!急救完毕后,立即处理,重启!【2】。开机后,“文件恢复区”,彻底删除文件!【3】。“系统修复”,全选,立即修复!【关键】【4】。网络修复,开始修复,重启电脑!【关键】【5】。dll文件恢复,扫描一下,如果有丢失,添加恢复,没有就行了!2。用“360安全卫士”的“系统修复”,点“IE常用设置”,“修改主页”,“使用360安全网址导航”,点:“一键修复”!3。用“360安全卫士”的“扫描插件”,然后再点:“清理插件”,把“恶评插件”删除!4。再用“360杀毒双引擎版”,勾选“自动处理扫描出的病毒威胁”,“全盘扫描”与“自定义扫描”,病毒木马,再点删除!重启电脑后,来到“隔离区”,点“彻底删除”!5。木马查杀,“全盘扫描”与“自定义扫描”,查杀到木马,立即处理!重启!“文件恢复区”,彻底删除!6。再不行,试试:金山急救箱,勾选“扩展扫描”,立即扫描,完毕后,立即处理,重启电脑!7。再不行,试试:金山网盾,一键修复!8。实在不行,只能:一键还原(方法:访问我的“网络空间”博客)或重装系统!

Ⅲ 无法找到脚本引擎“VBScript”

首先请确定“C:\document and settings\ all users\ [开始] 菜单\程序\启动\.vbs”此东西是你自愿使它开机启动的,否则请删掉此东西.
出现此提示信息的原因是VBScript.dll此文件没有被注册,请打开"开始"菜单里的"运行"对话框,输入以下信息并按"确定"按钮
regsvr32.exe vbscript.dll
再确定就OK鸟~

Ⅳ 脚本引擎是什么

就是脚本运行所需的框架,提供了可供脚本调用的二进制代码.脚本一般都是以ascii文件存在的,并不是二进制的可执行文件.就需要脚本引擎掉取其中的内容然后运行

Ⅳ 谁有飞秋界面的源代码,不要插件的源代码

扫描结果保存在/log/目录中,index_*.htm为扫描结果索引文件。 一. 系统要求:Windows NT/2000/XP/2003 理论上可运行于Windows NT系列操作系统,推荐运行于Windows 2000以上的Server版Windows系统。 二. 功能简介: 采用多线程方式对指定IP地址段(或单机)进行安全漏洞检测,支持插件功能。扫描内容包括:远程服务类型、操作系统类型及版本,各种弱口令漏洞、后门、应用服务漏洞、网络设备漏洞、拒绝服务漏洞等二十几个大类。对于多数已知漏洞,我们给出了相应的漏洞描述、解决方案及详细描述链接,其它漏洞资料正在进一步整理完善中,您也可以通过本站的“安全文摘”和“安全漏洞”栏目查阅相关说明。 3.0及后续版本提供了简单的插件开发包,便于有编程基础的朋友自己编写或将其他调试通过的代码修改为X-Scan插件。另外Nessus攻击脚本的翻译工作已经开始,欢迎所有对网络安全感兴趣的朋友参与。需要“Nessus攻击脚本引擎”源代码、X-Scan插件SDK、示例插件源代码或愿意参与脚本翻译工作的朋友,可通过本站“X-Scan”项目链接获取详细资料:“”。 三. 所需文件: xscan_gui.exe -- X-Scan图形界面主程序 checkhost.dat -- 插件调度主程序 update.exe -- 在线升级主程序 *.dll -- 主程序所需动态链接库 使用说明.txt -- X-Scan使用说明 /dat/language.ini -- 多语言配置文件,可通过设置“LANGUAGE\SELECTED”项进行语言切换 /dat/language.* -- 多语言数据文件 /dat/config.ini -- 当前配置文件,用于保存当前使用的所有设置 /dat/*.cfg -- 用户自定义配置文件 /dat/*.dic -- 用户名/密码字典文件,用于检测弱口令用户 /plugins -- 用于存放所有插件(后缀名为.xpn) /scripts -- 用于存放所有NASL脚本(后缀名为.nasl) /scripts/desc -- 用于存放所有NASL脚本多语言描述(后缀名为.desc) /scripts/cache -- 用于缓存所有NASL脚本信息,以便加快扫描速度(该目录可删除) 四. 准备工作: X-Scan是完全免费软件,无需注册,无需安装(解压缩即可运行,自动检查并安装WinPCap驱动程序)。若已经安装的WinPCap驱动程序版本不正确,请通过主窗口菜单的“工具”->“Install WinPCap”重新安装“WinPCap 3.1 beta4”或另行安装更高版本。 五. 图形界面设置项说明: “检测范围”模块: “指定IP范围” - 可以输入独立IP地址或域名,也可输入以“-”和“,”分隔的IP范围,如“192.168.0.1-20,192.168.1.10-192.168.1.254”,或类似“192.168.100.1/24”的掩码格式。 “从文件中获取主机列表” - 选中该复选框将从文件中读取待检测主机地址,文件格式应为纯文本,每一行可包含独立IP或域名,也可包含以“-”和“,”分隔的IP范围。 “全局设置”模块: “扫描模块”项 - 选择本次扫描需要加载的插件。 “并发扫描”项 - 设置并发扫描的主机和并发线程数,也可以单独为每个主机的各个插件设置最大线程数。 “网络设置”项 - 设置适合的网络适配器,若找不到网络适配器,请重新安装WinPCap 3.1 beta4以上版本驱动。 “扫描报告”项 - 扫描结束后生成的报告文件名,保存在LOG目录下。扫描报告目前支持TXT、

Ⅵ 知道编程语言的原代码却不懂脚本语言脚本语言和Delphi之类的原代码有什么区别

1.脚本语言(JavaScript,VBscript等)介于HTML和C,C++,Java,C#等编程语言之间。
HTML通常用于格式化和链结文本。
而编程语言通常用于向机器发出一系列复杂的指令。
2.脚本语言与编程语言也有很多相似地方,其函数与编程语言
比较相象一些,其也涉及到变量。与编程语言之间最大的区别
是编程语言的语法和规则更为严格和复杂一些.
3.与程序代码的关系:脚本也是一种语言,其同样由程序代码组成。
注:脚本语言一般都有相应的脚本引擎来解释执行。

Ⅶ 求救脚本引擎对象是什么东西

或者单/双引号,而且恰巧又都是文本.jsON不是一种语言,它仅仅是一种数据的表达方式,从某种程度上来讲,而不是脚本引擎.JS是一种脚本语言,对于JS的字面量来说,这段文本仅仅是代码的一部分,相当于指令,而JSON文本,其本身就表示了数据。二者相同的地方是,JSON跟XML没有什么区别。

之所以LZ会有这样的疑虑,原因在于对数据的理解存在偏差;不同的地方在于,是交给eval函数来处理的,要搞清楚这2个东西
1,而JSON的字符串,甚至其他任何符号作为边界符,JS字面量的文本是被脚本引擎直接解析的,那么,如何理解JSON的文本,就取决于这个函数,因为这2者的处理根本就不在一个层面上。

另外,JS必须交给JS脚本引擎处理,你所谓的对象,其实还只是处在源码阶段,当这段符合语法的文本被脚本引擎解释之后,在内存中才会产生对象,任何程序都能处理,至于引号的问题,取决于JSON解析器的容忍程度,如果你愿意,也可按照自己的意愿写一个解析器,能够容忍包括不写引号,至于是否符合语法,取决于脚本引擎。
2,看起来都是数据,而JSON的文本,如果要转化为JS对象的话首先

Ⅷ 分析X-Scan,写出它的使用方法以及配置方法,同时抓包分析其扫描原理。如果有兴趣分析一下其脚本

.命令行:Xscan -h [起始地址]-[终止地址] [扫描选项]
这里如果只对一个ip进行扫描 就不需要填 终止地址了
扫描选项 这里 可以一次填多个 选项
[扫描选项]含义如下:
-p: 扫描标准端口(端口列表可通过\dat\config.ini文件定制);
-b: 获取开放端口的banner信息,需要与-p参数合用;
-c: 扫描CGI漏洞;
-r: 扫描RPC漏洞;
-s: 扫描SQL-SERVER默认帐户;
-f: 尝试FTP默认用户登录(用户名及口令可以通过\dat\config.ini文件定制);
-n: 获取NetBios信息(若远程主机操作系统为Windows9x/NT4.0/2000);
-g: 尝试弱口令用户连接(若远程主机操作系统为Windows NT4.0/2000);
-a: 扫描以上全部内容;
-x [代理服务器:端口]: 通过代理服务器扫描CGI漏洞;
-t: 设置线程数量,默认为20个线程;
-v: 显示详细扫描进度;
-d: 禁止扫描前PING被扫主机。
2.示例:
Xscan -h 222.222.1.1-222.222.10.255 -a
含义:扫描XXX.XXX.1.1-XXX.XXX.10.255网段内主机的所有信息;
Xscan -h xxx.xxx.1.1 -n -g -t 30
含义:获取XXX.XXX.1.1主机的Netbios信息,并检测NT弱口令用户,线程数量为30;
Xscan -h 211.108.1.1 -p -b -c -x 211.108.2.255:80 -v -d

我们来试一下
上面的这些参数都是需要大家来学习掌握的

现在我们进行一个简单的cgi漏洞扫描,这次演练是在控制台模式下进行的:xscan 211.100.8.87 -port
这个命令是让xscan扫描服务器211.100.8.87的开放端口,扫描器不会对65535个端口全部进行扫描(太慢),它只会检测网络上最常用的几百个端口,而且每一个端口对应的网络服务在扫描器中都已经做过定义,从最后返回的结果很容易了解服务器运行了什么网络服务。扫描结果显示如下:
Initialize dynamic library succeed.
Scanning 211.100.8.87 ......
[211.100.8.87]: Scaning port state ...
[211.100.8.87]: Port 21 is listening!!!
[211.100.8.87]: Port 25 is listening!!!
[211.100.8.87]: Port 53 is listening!!!
[211.100.8.87]: Port 79 is listening!!!
[211.100.8.87]: Port 80 is listening!!!
[211.100.8.87]: Port 110 is listening!!!
[211.100.8.87]: Port 3389 is listening!!!
[211.100.8.87]: Port scan completed, found 7.
[211.100.8.87]: All done.
这个结果还会同时在log目录下生成一个html文档,阅读文档可以了解发放的端口对应的服务项目

Ⅸ 如何在.NET中实现脚本引擎

1. 构造一个编译器
设置编译参数
编译参数需要在CompilerParameters设置:
CompilerOptions 用于设置编译器命令行参数
IncludeDebugInformation 用于指示是否在内存在生成Assembly
GenerateInMemory 用于指示是否在内存在生成Assembly
GenerateExecutable 用于指示生成的Assembly类型是exe还是dll
OutputAssembly 用于指示生成的程序文件名(仅在GenerateInMemory为false的情况)
ReferencedAssemblies 用于添加引用Assembly
例如:
theParameters.ReferencedAssemblies.Add("System.dll");

创建指定语言的编译器
编译需要由指定语言的CodeDomProvider生成。
这里列举一些.NET的CodeDomProvider:
vb.net Microsoft.VisualBasic.VBCodeProvider
C# Microsoft.CSharp.CSharpCodeProvider
jscript Microsoft.JScript.JScriptCodeProvider
J# Microsoft.VJSharp.VJSharpCodeProvider
以C#为例,要创建C#编译器,代码如下:
//.NET 1.1/1.0
ICodeCompiler compiler = new Microsoft.CSharp.CSharpCodeProvider().CreateCompiler();
//.NET 2.0
ICodeCompiler compiler = (ICodeCompiler) new Microsoft.CSharp.CSharpCodeProvider();

下面是完整的创建编译器的例子:
/// <summary>
/// 创建相应脚本语言的编译器
/// </summary>
private void createCompiler(string strLanguage, bool debugMode, string strAssemblyFileName)
{
this.theParameters = new CompilerParameters();
this.theParameters.OutputAssembly = System.IO.Path.Combine(System.IO.Path.GetTempPath(), strAssemblyFileName + ".dll");
this.theParameters.GenerateExecutable = false;
this.theParameters.GenerateInMemory = true;
if(debugMode)
{
this.theParameters.IncludeDebugInformation = true;
this.theParameters.CompilerOptions += "/define:TRACE=1 /define:DEBUG=1 ";
}
else
{
this.theParameters.IncludeDebugInformation = false;
this.theParameters.CompilerOptions += "/define:TRACE=1 ";
}

AddReference("System.dll");
AddReference("System.Data.dll");
AddReference("System.Xml.dll");

strLanguage = strLanguage.ToLower();

CodeDomProvider theProvider;

if("visualbasic" == strLanguage || "vb" == strLanguage)
{
theProvider = new Microsoft.VisualBasic.VBCodeProvider();
if(debugMode)
theParameters.CompilerOptions += "/debug:full /optimize- /optionexplicit+ /optionstrict+ /optioncompare:text /imports:Microsoft.VisualBasic,System,System.Collections,System.Diagnostics ";
else
theParameters.CompilerOptions += "/optimize /optionexplicit+ /optionstrict+ /optioncompare:text /imports:Microsoft.VisualBasic,System,System.Collections,System.Diagnostics ";
AddReference("Microsoft.VisualBasic.dll");
}
else if("jscript" == strLanguage || "js" == strLanguage)
{
theProvider = new Microsoft.JScript.JScriptCodeProvider();
AddReference("Microsoft.JScript.dll");
}
else if("csharp" == strLanguage || "cs" == strLanguage || "c#" == strLanguage)
{
theProvider = new Microsoft.CSharp.CSharpCodeProvider();
if(!debugMode)
theParameters.CompilerOptions += "/optimize ";
}
// else if("jsharp" == strLanguage || "vj" == strLanguage || "j#" == strLanguage)
// {
// theProvider = new Microsoft.VJSharp.VJSharpCodeProvider();
// if(!debugMode)
// theParameters.CompilerOptions += "/optimize ";
// }
else
throw new System.Exception("指定的脚本语言不被支持。");

this.theCompiler = theProvider.CreateCompiler();
}

/// <summary>
/// 添加引用对象。
/// </summary>
/// <param name="__strAssemblyName">引用的文件名</param>
public void AddReference(string __strAssemblyName)
{
theParameters.ReferencedAssemblies.Add(__strAssemblyName);
}

注:
在.NET Framework 2.0中,由于CreateCompiler方法被标记作废。为避免产生编译警告,可直接返回CodeDomProvider作为编译器:
this.theCompiler = (ICodeCompiler)theProvider;

2. 编译源代码

编译源代码相当简单,只需一条语句就搞定了:
CompilerResults compilerResults = compiler.CompileAssemblyFromSource(this.theParameters, this.SourceText);
执行后,可以从compilerResults取得以下内容:

NativeCompilerReturnValue 编译结果,用于检查是否成功
Errors 编译时产生的错误和警告信息
CompiledAssembly 如果编译成功,则返回编译生成的Assembly

示例函数:
/// <summary>
/// 编译脚本。编译前将清空以前的编译信息。
/// CompilerInfo将包含编译时产生的错误信息。
/// </summary>
/// <returns>成功时返回True。不成功为False。</returns>
public bool Compile()
{
this.theCompilerInfo = "";
this.isCompiled = false;
this.theCompiledAssembly = null;
this.theCompilerResults = this.theCompiler.CompileAssemblyFromSource(this.theParameters, this.SourceText);

if(this.theCompilerResults.NativeCompilerReturnValue == 0)
{
this.isCompiled = true;
this.theCompiledAssembly = this.theCompilerResults.CompiledAssembly;
}

System.Text.StringBuilder compilerInfo = new System.Text.StringBuilder();

foreach(CompilerError err in this.theCompilerResults.Errors)
{
compilerInfo.Append(err.ToString());
compilerInfo.Append("/r/n");
}

theCompilerInfo = compilerInfo.ToString();

return isCompiled;
}

3. 执行代码

使用Reflection机制就可以很方便的执行Assembly中的代码。
我们假设编译时使用的脚本代码 this.SourceText 内容如下:
namespace test
{
public class script
{
static public void Main()
{
MessageBox.Show("Hello");
}
}
}

则相应的执行代码为:

scriptEngine.Invoke("test.script", "Main", null);

Invoke函数内容:
/// <summary>
/// 执行指定的脚本函数(Method)。
/// 如果指定的类或模块名,以及函数(Method)、或参数不正确,将会产生VsaException/VshException例外。
/// </summary>
/// <param name="__strMole">类或模块名</param>
/// <param name="__strMethod">要执行的函数(Method)名字</param>
/// <param name="__Arguments">参数(数组)</param>
/// <returns>返回执行的结果</returns>
public object Invoke(string __strMole, string __strMethod, object[] __Arguments)
{
if(!this.IsCompiled || this.theCompiledAssembly == null)
throw new System.Exception("脚本还没有成功编译");

Type __MoleType = this.theCompiledAssembly.GetType(__strMole);
if(null == __MoleType)
throw new System.Exception(string.Format("指定的类或模块 ({0}) 未定义。", __strMole));

MethodInfo __MethodInfo = __MoleType.GetMethod(__strMethod);
if(null == __MethodInfo)
throw new System.Exception(string.Format("指定的方法 ({0}::{1}) 未定义。", __strMole, __strMethod));

try
{
return __MethodInfo.Invoke(null, __Arguments);
}
catch( TargetParameterCountException )
{
throw new System.Exception(string.Format("指定的方法 ({0}:{1}) 参数错误。", __strMole, __strMethod));
}
catch(System.Exception e)
{
System.Diagnostics.Trace.WriteLine(string.Format("执行({0}:{1})错误: {2}", __strMole, __strMethod, e.ToString()));
return null;
}
}

阅读全文

与中文脚本引擎源代码相关的资料

热点内容
kk3影院 浏览:817
小电影从哪里看 浏览:514
下载电影的好网址11153 浏览:107
花都之乱txt下载 浏览:891
韩国孕妇生孩子电视剧大肚子 浏览:389
主角把自己母亲收入后宫 浏览:25
李恩美演医生 浏览:326
香港电影女主被救到船上 浏览:527
一个恐怖电影女人被咬掉胸部 浏览:95
分娩风险韩国电影 浏览:528
港台真军电影 浏览:489
红妆刀下留糖全文txt 浏览:495
住在一楼楼的女人韩国电影 浏览:764
阿尔法战士电影全集 浏览:301
穿越到港综鬼片世界的小说 浏览:46
国外网站电影 浏览:79
禁播的电影在什么网站可以看到 浏览:763
真实电影里面的马尾女孩是谁 浏览:352
电影中的黑丝美女 浏览:410
香港女同大尺度电影 浏览:812

友情链接