删除或更新信息,请邮件至freekaoyan#163.com(#换成@)

JavaScript优化编译执行模式下的动态污点分析技术

本站小编 Free考研考试/2020-04-15

<script type="text/x-mathjax-config">MathJax.Hub.Config({tex2jax: {inlineMath: [['$','$'], ['\\(','\\)']]}});</script> <script type="text/javascript" src="http://cdn.mathjax.org/mathjax/latest/MathJax.js?config=TeX-AMS-MML_HTMLorMML"></script>梁彬 1,2 , 龚伟刚 1,2 , 游伟 1,2 , 李赞 1,2 , 石文昌 1,2
1. 数据工程与知识工程教育部重点实验室(中国人民大学), 北京 100872;
2. 中国人民大学 信息学院, 北京 100872

收稿日期:2016-12-02
基金项目:国家自然科学基金资助项目(91418206,61472429)
作者简介:梁彬(1973-), 男, 副教授。E-mail:liangb@ruc.edu.cn


摘要:目前,主流的JavaScript执行引擎为了提高效率,引入优化编译执行模式,对频繁运行的热点函数进行即时优化编译。优化编译执行模式的引入,给通过动态插桩实现JavaScript程序的动态污点分析(dynamic taint analysis,DTA)带来了新的挑战。针对这一问题,该文针对HTML5混合型安卓应用,通过修改其所使用的V8 JavaScript引擎,基于动态插桩实现了一种优化编译执行模式下的动态污点分析方法。该方法使用污染包裹对象的方式对污点标签进行存储,在优化编译执行模式下的Hydrogen中间代码层面进行插桩操作。实验结果表明:该方法能够有效地在优化编译执行模式下进行污点跟踪,且性能开销也在可以接受的范围内。
关键词:优化编译动态污点分析(DTA)JavaScript
DTA technique for JavaScript optimizing compilation mode
LIANG Bin1,2, GONG Weigang1,2, YOU Wei1,2, LI Zan1,2, SHI Wenchang1,2
1.Key Laboratory of Data Engineering and Knowledge Engineering(Renmin University of China) of Ministry of Education, Beijing 100872, China;
2.School of Information, Renmin University of China, Beijing 100872, China


Abstract: Mainstream JavaScript engines have introduced optimizing compilers. These compilers generate more efficient executable code for frequently functions run, but these optimizing compilers brings new challenges to the dynamic taint analysis (DTA) method implemented via dynamic instrumentation. This paper focuses on the HTML5-based hybrid android App and presents a dynamic taint analysis method for the optimizing compilers in the V8 JavaScript engine using dynamic instrumentation. In this method, the taint box object is used to store the taint tags and the taint tracking code is instrumented at the hydrogen level of the optimizing compiler. Tests show that this dynamic taint analysis technique effectively tracks the taint information flow in the optimizing compiler with acceptable performance overhead.
Key words: optimizing compilationdynamic taint analysis (DTA)JavaScript
JavaScript编程语言已成为网页中客户端脚本语言的事实标准,近年来更是被广泛应用于其他环境,如服务端的Node.js框架、以PhoneGap[1]等框架开发的HTML5新型安卓应用等。主流JavaScript引擎为了提升性能,普遍在原有一般编译执行模式的基础上,推出了优化编译执行模式,如V8引擎的优化编译器Crankshaft[2]等。优化编译执行模式的推出,显著提升了JavaScript引擎的性能,但也给对JavaScript程序的动态污点分析带来了新的挑战。
动态污点分析(dynamic taint analysis,DTA)[3]是一种数据流分析方法,它首先将来自可疑渠道的信息标记为“被污染”的,并在程序执行过程中传播污染信息,最后通过监控污染信息是否进入安全敏感操作来查找程序漏洞。目前,实现JavaScript程序的DTA技术,有静态插桩和动态插桩2种方式。文[4-7]采用静态插桩方式,通过重写待检测的JavaScript源码,实现DTA。但是静态插桩方式面临一个主要问题:JavaScript作为一种高动态性的编程语言,支持通过eval调用、插入新的<script>标签等方式在运行过程中动态生成代码,静态插桩方式难以在这部分代码中插入DTA实施代码,所以这些工作实现的DTA方案是不完备的,会存在漏报。文[8-10]采用动态插桩方式,通过修改JavaScript引擎字节码解释器,动态插入污点跟踪代码实现DTA,能够覆盖动态生成代码。但是包括V8在内的部分JavaScript引擎采用的是即时编译模式(just in time,JIT),并非字节码解释执行模式,因此这些工作不适用。针对这部分JavaScript引擎,可以采用在编译阶段动态插桩的方式实现DTA技术,为了确保不遗漏污点传播信息,必须在JavaScript引擎编译生成的所有代码中均插入污点跟踪代码,所以新出现的优化编译模式带来了新的问题,只有在优化编译模式下完成动态插桩,才能实现完备的DTA技术。
针对这一问题,本文在V8引擎的优化编译执行模式下通过动态插桩实现了DTA技术,并通过选择合适的插桩时机,获得JavaScript操作语义;同时在该时机插入的DTA实施代码属于V8特有的一种高层次中间表现形式代码——Hydrogen,其生成过程与平台无关,因此本方案能够兼容不同平台。本文也进行了相关实验,对包含已知漏洞的真实HTML5型安卓应用进行动态污点分析。
1 V8及其优化编译执行模式V8是谷歌开发的一个开源的高性能JavaScript引擎,它将JavaScript代码即时编译成本地机器码进行执行。V8含有2个编译器,分别是非优化编译器Full-Codegen和优化编译器Crankshaft。编译过程中,程序以函数为单位进行编译,当函数第一次被调用时,V8首先生成该函数的抽象语法树结构,并使用非优化编译器将其直接编译成本地机器码。在运行过程中,V8会对该函数进行判定,分析其是否是一个执行频繁的热点函数(hot function),并使用优化编译器对热点函数进行重编译。
V8的优化编译执行模式与一般编译执行模式不同,并不是将JavaScript函数的抽象语法树直接编译成本地机器码,而是先将其转换成一种高层次的中间表现形式代码Hydrogen,V8的大部分优化操作(如函数内联优化、移除死代码等)都在该层面进行,随后Hydrogen代码被再次转换成一种平台相关的低层次中间表现形式代码Lithium,最终Lithium代码会被转换成对应平台的机器码进行执行。
因此优化编译流程更加复杂,选择合适的插桩时机是在优化编译执行模式下实现DTA面临的首要问题。通过分析,本文发现Hydrogen中间代码层保留有JavaScript操作语义,且与程序运行的平台无关,而Lithium代码和本地机器码均不具备这2个特点,不利于实现DTA。因此Hydrogen中间代码层是优化编译执行模式下最适合的DTA插桩时机。
但是Hydrogen只是V8引擎优化编译过程中特有的一种中间表现形式代码,并不是标准的编程语言,可参考资料匮乏,为了在其中实现DTA,需要对Hydrogen语言的语义进行详细分析。同时,JavaScript函数在V8引擎中运行时会在2种编译执行模式间相互切换,如何实现兼容2种模式的污点标签存储方法,在Hydrogen中间代码层对污点标签进行存储也是一个重要问题。在Hydrogen中间代码层插入污点跟踪代码时,还需理清优化编译执行模式下不同JavaScript代码的执行路径,并选择合适的插桩点,而且为了保证执行效率,应使用尽可能少且执行较快的Hydrogen代码来实现污染数据跟踪。
2 实现方案本文提出的优化编译执行模式下的DTA实现方案,通过修改V8引擎优化编译器的代码生成逻辑,在编译JavaScript代码的过程中插入污点跟踪代码,能够支持对JavaScript程序进行以变量为单位、指令级的DTA。基本架构如图 1所示,污点跟踪代码的插桩操作选择在Hydrogen层面进行,当V8开始优化编译热点函数,生成Hydrogen中间代码时,往其中插入额外的Hydrogen代码用于进行污点跟踪。
图 1 优化编译模式下的动态污点分析架构
图选项





在JavaScript程序经过插桩后,污点跟踪操作会和程序同时开始执行。当程序从预定义的污染源(taint source)引入污点信息后,一个存储有该污点信息的污点标签会被添加到相应的变量中。随着该变量经过的一系列基本操作,其中的污点标签也会根据污染传播策略,通过污点跟踪代码传播到其他变量中。在每一个安全敏感的操作点(security sink),会对传入其中的数据进行检查,判断其是否包含污点标签,如果是,则对用户发出警报。
为实现本文的DTA方案,对JavaScript基本操作的语义进行分析,并从中归纳出11类会产生信息流的基本操作,对其设定污染传播策略。在实现污点标签存储方法的过程中,考虑到JavaScript语言的动态性以及对象在V8中的存储模式会发生变化,决定使用污染包裹对象的方式将变量与其污点标签存储在一起,且该方式与优化编译模式兼容,通过插入Hydrogen代码能够直接调用污染包裹对象方法对污点标签进行操作。在该基础上,结合对Hydrogen中间代码的语义分析,选择合适的插桩点进行插桩,实施优化编译执行模式下的污染数据跟踪方法。
2.1 污染传播策略JavaScript是一门具有丰富语义和表达能力的编程语言,其较为复杂的复合操作可以被分解成若干基本操作,从而可以从基本操作的层面考虑污染传播策略。本文分析了JavaScript基本操作的语义,从中归纳出11类会产生信息流的基本操作,对应污染传播策略如表 1所示。
表 1 污染传播策略
规则 助记符 操作名 污染传播策略
1 v=e Assignment τ(v) ← τ(e)∪τ(pc)
2 t=f() Call At Entry: τ(paras) ← τ(args), push({pc}, τ(f))
At Exit: τ(t) ← τ(r), pop({pc})
3 t=op v Unary Operation τ(t) ← τ(v)
4 t=v1 op v2 Binary Operation τ(t) ← τ(v1)∪τ(v2)
5 t=v.prop Named Load τ(t) ← τ(v)∪τ(v.prop)
6 v.prop=e Named Store τ(v.prop) ← τ(e)∪τ({pc})
7 t=v1[v2] Indexed Load τ(t) ← τ(v1)∪τ(v2) ∪τ(v1[v2])
8 v1[v2]=e Indexed Store τ(v1[v2]) ← τ(e)∪τ({pc})
9 if(e) {} If Statement At Entry: push({pc}, τ(e))
At Exit: pop({pc})
10 switch(e) {} Switch Statement At Entry: push({pc}, τ(e))
At Exit: pop({pc})
11 with(e) {} With Statement At Entry: push({pc}, τ(e))
At Exit: pop({pc})


表选项






表 1中,e表示一个表达式,f表示一个函数,v表示一个变量,t作为一个临时变量,用于存储表达式计算结果。在函数调用操作中,返回值用r表示,形参与实参分别用paras和args表示。τ(v)和τ(e)分别表示变量v和表达式e的污点标签,{pc}是一个用于存储隐式信息流中污点标签的栈结构,τ({pc})表示当前栈结构中所有污点标签的并集,push和pop则分别对应着入栈和出栈操作。
在11类基本操作中,前8类会产生数据依赖,本文采用经典的污点传播策略:将操作结果污染值设置为所有影响该结果的变量污染值的下界。如二元操作的污染传播策略是τ(t)←τ(v1)∪τ (v2),表示二元操作结果t的污染值由左操作数v1的污点标签和右操作数v2的污点标签通过并运算计算得到。有些基本操作会产生控制依赖,从而引发隐式信息流。理论上,隐式信息流的跟踪不可能既完备且精确,在实际中,盲目地跟踪所有的控制结构还会造成不可接受的性能开销。因此本文聚焦于由最为常见的控制形式所引发的隐式信息流,如if语句,其污染传播策略是At Entry: push({pc},τ(e))、At Exit: pop({pc}),表示在if语句执行过程中,将其条件e中的污点标签暂时入栈,用于隐式信息流跟踪。
2.2 污点标签存储方法目前已有的动态污点跟踪系统为了存储污点标签,通常采用的方法是在系统中预留一块存储区域,随后在一张映射表中存储程序变量和污点标签之间的映射关系,根据该映射关系实现从预留存储区域中提取指定变量的污点标签。但是这类存储方案在V8引擎中是难以实现的,因为JavaScript是一种高动态性的编程语言,其变量类型在运行过程中可能发生改变,同时还支持动态添加或删除变量的属性,而且V8在运行过程中可能改变JavaScript对象的存储模式,使对象属性的存储位置发生变化。在V8中维护程序变量和污点标签之间的映射关系是极其困难的,这类污点标签存储方案不适用于V8。
为了解决上述问题,一种理想的污点标签存储方法是将变量的污点标签和值绑定存储在一起。本文根据信息流研究相关工作[4-5],采用相似方法,通过包裹对象实现污点标签存储,将受污染变量的值与它的污染标签一起存储在一个新的污染包裹对象中,然后把这个受污染变量的值替换成污染包裹对象。为了与该污点标签存储方案配合,需要修改JavaScript操作的执行逻辑,在读取变量的值进行操作前,先对其类型进行判定,若是污染包裹对象,则需先将受污染变量的值取出,再进行后续操作。
本文实现的污染包裹对象,是在V8中添加的一个新的JavaScript对象TaintBox。如图 2所示,TaintBox对象有2个属性,属性value存储受污染变量的原始值,属性taint存储污点标签。为保证该包裹对象不被篡改,将其实现成V8的内置JavaScript对象,使得分析目标JavaScript程序无法读取和修改包裹对象,只有DTA方案中的插桩代码能够通过3个内部方法对包裹对象进行操作。
图 2 污染包裹对象
图选项





1) GetValue():若obj是污染包裹对象,返回其value属性中存储的原始值,否则直接返回obj。
2) GetTaint():若obj是污染包裹对象,返回其taint属性中存储的污点标签,否则返回undefined。
3) SetTaint():向变量中添加污点标签,生成污染包裹对象。
同时,本污点标签存储方法能够很好地与V8优化编译执行模式兼容,只需通过该模式中的方法Add<HInvokeFunction>(),即可向生成代码中插入额外的Hydrogen指令HInvokeFunction,调用图 2中的3个方法对污点标签进行操作。由于本文方法通过V8内部JavaScript对象和方法的形式进行实现,即使污点标签操作方法在DTA过程中频繁运行,V8的优化编译器也会对其进行优化编译。污染包裹对象TaintBox只有2个固定属性,V8会对其存储模式进行优化,提升污染包裹对象属性的读写效率。
2.3 污染数据跟踪本文的污染数据跟踪方法,依照节2.1中的污染传播策略,先取操作中那些能够影响到操作结果的值的污点标签,随后对其进行并运算,最后将并运算的结果存储为操作结果的污点标签。
本节主要以二元操作t=v1 op v2为例,介绍如何通过动态插入污点跟踪代码在V8优化编译执行模式下实现本文的污染传播策略。二元操作的污染传播策略是τ(t)←τ(v1)∪τ(v2),操作结果t的污点值由左右操作数的污点标签通过并运算计算得到。
图 3以高层次的JavaScript伪代码形式对二元操作中的插桩操作进行描述,污点跟踪代码用粗体标志,先调用函数GetTaint()获得左操作数的污点标签并存入v1_taint中,后调用函数GetValue()获取v1的原始值并将其写回v1。在第3行和第4行,再对右操作数进行相同的操作,得到v2的污点标签和原始值。在第5行对去包裹后的v1和v2进行二元运算,并将结果存入t中。随后第6行和第7行开始正式实现之前设定的污点传播策略,先对2个操作数的污点标签进行并运算并存入t_taint中,再调用SetTaint(t, t_taint)生成污染包裹对象存回t中。
图 3 插桩后的二元操作JavaScript伪代码
图选项





本文在V8优化编译执行模式下实现的污染数据跟踪方法,根据图 3中的伪代码形式通过动态插桩实现。在优化编译模式下,V8通过调用一系列操作类型相关的编译函数,将JavaScript函数抽象语法树中的节点转化成Hydrogen中间代码。通过对JavaScript二元操作代码在优化编译模式下的执行路径进行详细分析,发现所有类型的二元操作均会进入编译函数BuildBinaryOperation()进行二元运算,该函数是一个合适的插桩点。因此本文的二元操作污点跟踪代码插桩方法是在V8中添加一个新的函数BuildBinaryOperationTaint(),在该函数中插入污点跟踪代码并调用BuildBinaryOperation()进行二元运算,具体如图 4所示,污点跟踪代码用粗体标志。
图 4 优化编译执行模式下的二元操作插桩方法
图选项





在二元操作插桩代码中,首先通过调用V8方法Add<HInvokeFunction>(),向生成的Hydrogen指令集中添加额外的内部JavaScript方法调用指令(第3、5、7、9行),调用DTA函数GetTaint()和GetValue(),获得左右操作数的污点标签和去包裹后的值。然后将去包裹后的左右操作数传入BuildBinaryOperation()进行二元运算,把运算结果返回到result变量中,最后在函数EnforceTaintLogic()中,先对参数中的2个污点标签作并运算,随后通过动态污点分析函数SetTaint()将result和并运算后的污点标签进行包裹生成一个新的污染包裹对象,该包裹对象会覆盖result原有的值,并作为二元操作的结果返回。
3 实验分析为评估本文在V8优化编译执行模式下实现的DTA技术的有效性,在arm平台的摩托罗拉MOTO G(Android-5.0) 真实手机设备上,对已知的包含有安全漏洞的HTML5混合型安卓应用进行检测。同时,分别使用真实的HTML5混合型安卓应用和SunSpider标准测试集(Benchmark)进行测试,评估优化编译执行模式下插桩代码的性能开销。
3.1 功能评估功能评估实验中测试的HTML5混合型安卓应用,其主要业务逻辑由JavaScript代码实现,在Android-5.0中由V8引擎编译执行。VisonMobile的研究报告[11]表明,超过60%的HTML5应用使用PhoneGap框架进行开发。该框架含有丰富的API,通过JavaScript代码调用这些API可以实现多种功能,如读取设备关键信息(设备标识码、联系人、地理位置等)、扫描二维码等。这种新型的开发模式也带来了更多的安全问题,隐私泄露和代码注入是其中最主要的2类安全威胁[12]。本文目前收集到含有代码注入漏洞的HTML5应用100个,含有隐私泄露漏洞的HTML5应用10个,其中隐私泄露行为主要是读取设备信息、地理位置等敏感信息并将其发送到远程服务器上。实验中成功检测出该110个应用中存在的安全漏洞,没有漏报。
以应用com.phonegap.kcis的检测过程为例进行说明。该应用在打开过程中发生隐私泄露行为,未经用户允许便将当前手机的通用唯一标识码(UUID)和安卓系统的版本号发送给远程服务器。实验中成功检测到该隐私泄露行为,并向用户发出警报,如图 5所示。在该隐私泄露过程中,调用PhoneGap中的Device API,获取手机的UUID和版本信息,调用JSONP中的request()方法[13],将UUID和版本信息传入一个新建的<script>标签的src属性中。该过程中,Device API是污染源,从中获取的UUID等隐私信息被设成污染值,之后污染值按照污染传播策略,被传递到<script>标签的src属性中。设置<script>标签的src属性是一个安全敏感操作,对src属性的值进行检查,若是污染值则发出警报。
图 5 检测隐私泄露漏洞
图选项





同时,由于污染信息在不同的JavaScript函数之间进行传播时,既可能处于一般编译执行模式,也可能处于优化编译执行模式。所以为了验证本文在优化编译执行模式下实现的DTA方法的有效性,将污染信息传播路径上的必经操作转移到优化编译模式下执行。经过实验,在优化编译执行模式下能够成功进行污点传播,检测出该隐私泄露漏洞,而且如果删除优化编译模式下的污点跟踪代码,则会丢失污点信息,无法成功检测出该漏洞。
3.2 性能评估在性能评估实验中,首先根据存在隐私泄露漏洞的应用com.phonegap.kcis,通过测量应用中首页的加载时间,对本文DTA方法的性能开销进行评估。实验中分别在插桩前和插桩后重复运行该应用100次,经测量,插桩前平均加载时间为3 002 ms,插桩后平均加载时间为4 412 ms,额外开销约为47%。同时,随机选择20个正常应用并采用相同方法进行测试,平均额外开销约为42%,这在检测过程中完全可以接受。
随后,本文将V8引擎编译成独立可执行文件,用SunSpider[14]标准测试集进行性能测试,并与已有JavaScript动态污点分析工作JEST[4]进行比较。实验结果表明:实施本文DTA方法前后性能开销平均增加170倍,JEST平均增加145倍,相差不大,在检测过程中完全可以接受。
4 结论本文分析研究了JavaScript优化编译执行模式下的DTA技术,具体针对V8引擎的优化编译模式,研究其优化编译流程,发现其中的Hydrogen中间代码层具有保留JavaScript操作语义且平台无关的特点。因此通过设计相适应的污点标签存储方法和污染数据跟踪方法,依照污染传播策略在该层实现优化编译执行模式下的DTA技术方案,并对该方案进行了功能评估和性能评估。实验结果表明:该方法能够有效地检测HTML5混合型安卓应用中存在的漏洞,且性能开销在检测过程中可以接受。同时,本文还将该DTA方法移植到Chromium浏览器中,验证插桩代码的平台兼容性,经过测试,本文的插桩代码在×64桌面平台上也能够正常运行。

参考文献
[1] Adobe. Adobe phonegap. (2016-06-24). http://docs.phonegap.com/.
[2] Google. A new crankshaft for V8. (2010-12-07). http://blog.chromium.org/2010/12/new-crankshaft-for-v8.html.
[3] Schwartz E J, Avgerinos T, Brumley D. All you ever wanted to know about dynamic taint analysis and forward symbolic execution (but might have been afraid to ask)[C]//Security and Privacy (SP), 2010 IEEE symposium. Washington DC, USA:IEEE, 2010:317-331.
[4] Chudnov A, Naumann D A. Inlined information flow monitoring for JavaScript[C]//Proceedings of the 22nd ACM SIGSAC Conference on Computer and Communications Security. New York, NY, USA:ACM, 2015:629-643.
[5] Jang D, Jhala R, Lerner S, et al. An empirical study of privacy-violating information flows in JavaScript web applications[C]//Proceedings of the 17th ACM Conference on Computer and Communications Security. New York, NY, USA:ACM, 2010:270-283.
[6] Santos J F, Rezk T. An information flow monitor-inlining compiler for securing a core of JavaScript[C]//IFIP International Information Security Conference. Berlin, Germany:Springer Verlag, 2014:278-292.
[7] Yu D, Chander A, Islam N, et al. JavaScript instrumentation for browser security[C]//Proceedings of 34th Annual ACM SIGPLAN-SIGACT Symposium on Principles of Programming Languages. New York, NY, USA:ACM, 2007:237-249.
[8] Bichhawat A, Rajani V, Garg D, et al. Information flow control in WebKit's JavaScript bytecode[C]//Proceedings of the 3rd International Conference on Principles of Security and Trust. Berlin, Germany:Springer-Verlag, 2014:159-178.
[9] Just S, Cleary A, Shirley B, et al. Information flow analysis for JavaScript[C]//Proceedings of the 1st ACM Sigplan International Workshop on Programming Language and Systems Technologies for Internet Clients. New York, NY, USA:ACM, 2011:9-18.
[10] Rajani V, Bichhawat A, Garg D, et al. Information flow control for event handling and the DOM in web browsers[C]//Proceedings of the 28th IEEE Computer Security Foundations Symposium. Washington DC, USA:IEEE Press, 2015:366-379.
[11] Vison Mobile. Cross-platform tools 2015. (2015-06-30). http://www.visionmobile.com/product/cross-platform-tools-2015.
[12] Felt A P, Finifter M, Chin E, et al. A survey of mobile malware in the wild[C]//Proceedings of the 1st ACM Workshop on Security and Privacy in Smartphones and Mobile Devices. New York, NY, USA:ACM, 2011:3-14.
[13] 费里曼A. HTML5权威指南[M]. 谢廷晟, 牛化成, 刘美英, 译. 北京: 人民邮电出版社, 2014. Freeman A. The Definitive Guide to HTML5[M]. XIE Tingsheng, NIU Huacheng, LIU Meiying, trans. Beijing:Posts & Telecom Press, 2014. (in Chinese)
[14] Pizlo F. SunSpider benchmark. (2013-04-30). https://webkit.org/pref/sunspider/sunspider.html.

相关话题/代码 优化

  • 领限时大额优惠券,享本站正版考研考试资料!
    大额优惠券
    优惠券领取后72小时内有效,10万种最新考研考试考证类电子打印资料任你选。涵盖全国500余所院校考研专业课、200多种职业资格考试、1100多种经典教材,产品类型包含电子书、题库、全套资料以及视频,无论您是考研复习、考证刷题,还是考前冲刺等,不同类型的产品可满足您学习上的不同需求。 ...
    本站小编 Free壹佰分学习网 2022-09-19
  • 基于PSO优化LS-SVM的刀具磨损状态识别
    刘成颖1,3,吴昊2,王立平1,3,张智41.清华大学机械工程系,北京100084;2.电子科技大学机械电子工程学院,成都611731;3.清华大学精密超精密制造装备及控制北京市重点实验室,北京100084;4.海军航空工程学院飞行器工程系,烟台264001收稿日期:2017-01-10基金项目:国 ...
    本站小编 Free考研考试 2020-04-15
  • 基于有限元方法的光刻机工件台线管组件结构优化
    成荣,王希远,朱煜,杨开明清华大学机械工程系,北京100084收稿日期:2016-01-06基金项目:国家科技重大专项子项(2012ZX02702006)作者简介:成荣(1977-),女,助理研究员。E-mail:chengr@mail.tsinghua.edu.cn摘要:光刻机工件台是光刻机的关键 ...
    本站小编 Free考研考试 2020-04-15
  • 密集小区多载波系统中基于业务排队的能效优化
    魏红鑫1,王燕敏2,李云洲1,周世东11.清华大学电子工程系,北京100084;2.中国电子科技集团公司电子科学研究院,北京100041收稿日期:2017-04-14基金项目:国家"九七三"重点基础研究项目(2013CB329002);国家"八六三"高技术项目(2014AA01A703);国家科技重 ...
    本站小编 Free考研考试 2020-04-15
  • 增程式城市客车能量的分段跟踪优化方法
    谢海明,林成涛,刘涛,田光宇,黄勇清华大学汽车安全与节能国家重点实验室,北京100084收稿日期:2016-09-30基金项目:上海汽车工业科技发展基金会项目(1530)作者简介:谢海明(1984—),男,博士研究生通信作者:黄勇,高工,E-mail:huangyev@tsinghua.edu.cn ...
    本站小编 Free考研考试 2020-04-15
  • 组合循环推进系统燃料消耗模型及优化分析
    计自飞,王兵,张会强清华大学航天航空学院,北京100084收稿日期:2015-12-11基金项目:清华大学自主科研计划(20141081217)作者简介:计自飞(1991—),男,博士研究生通信作者:王兵,副教授,E-mail:wbing@tsinghua.edu.cn摘要:根据飞行任务要求,准确计 ...
    本站小编 Free考研考试 2020-04-15
  • 基于多方满意的PPP项目股权配置优化研究
    冯珂1,2,王守清1,2,薛彦广11.清华大学建设管理系,北京100084;2.清华大学恒隆房地产研究中心,北京100084收稿日期:2015-06-14基金项目:国家自然科学基金资助项目(71572089)作者简介:冯珂(1989—),男,博士研究生通信作者:王守清,教授,E-mail:sqwan ...
    本站小编 Free考研考试 2020-04-15
  • 基于层次化结构的语言模型单元集优化
    米吉提·阿不里米提1,2,艾克白尔·帕塔尔2,艾斯卡尔·艾木都拉1,21.新疆大学科学与技术学院,乌鲁木齐830046;2.新疆大学信息科学与工程学院,乌鲁木齐830046收稿日期:2016-06-22基金项目:国家自然科学基金资助项目(61462085,61662078,61163032);教育部 ...
    本站小编 Free考研考试 2020-04-15
  • 小资源下语音识别算法设计与优化
    张鹏远1,计哲2,侯炜2,金鑫2,韩卫生11.中国科学院声学研究所,语言声学与内容理解重点实验室,北京100190;2.国家计算机网络应急技术处理协调中心,北京100029收稿日期:2016-06-29基金项目:国家自然科学基金项目(U1536117,11590770,11590771,115907 ...
    本站小编 Free考研考试 2020-04-15
  • 基于代码改写的JavaScript动态污点跟踪
    王伟平,柏军洋,张玉婵,王建新中南大学信息科学与工程学院,湖南长沙410083收稿日期:2016-01-16基金项目:国家自然科学基金面上项目(61672543,61572530);国家自然科学基金青年科学基金项目(61402542)作者简介:王伟平(1969-),女,教授.Email:wpwang ...
    本站小编 Free考研考试 2020-04-15
  • 小型仿人足球机器人MOS-7的系统设计及局部优化
    张继文,刘莉,陈恳清华大学机械工程系,摩擦学国家重点实验室,精密超精密制造装备及控制北京市重点实验室,北京100084收稿日期:2015-08-26基金项目:清华大学摩擦学国家重点实验室项目(SKLT09A03);国家自然科学基金资助项目(61403225);中国博士后科学基金资助项目(2015M5 ...
    本站小编 Free考研考试 2020-04-15