注册 登录  
 加关注
   显示下一条  |  关闭
温馨提示!由于新浪微博认证机制调整,您的新浪微博帐号绑定已过期,请重新绑定!立即重新绑定新浪微博》  |  关闭

tombkeeper的博客

 
 
 

日志

 
 

JIT Spray技术  

2010-02-04 21:56:28|  分类: 默认分类 |  标签: |举报 |字号 订阅

  下载LOFTER 我的照片书  |
白天说的那个Paper在这里:http://www.semantiscope.com/research/BHDC2010/BHDC-2010-Paper.pdf。利用JIT在内存中制造可控可执行代码这个思路的确很有创造性。其意义不亚于Heap Spray,甚至可以和当年的JMP ESP相比较。

整个Paper的核心其实是“DEVELOPMENT”这部分。前面大量的篇幅主要在讲如何用一个非常淫荡的方法获取实际内存地址。不过那种获取地址的方式虽然极其巧妙,但是比较耗时,完成一次操作需要至少数分钟的时间,比较学院派。实际完全可以用稍微粗糙但更有效率更实用的技术来取代这种精确定位的方法。

新技术在带来新正面特性的同时必然引入新负面特性。这是源自辩证法的一个普适的规律。无论你信不信,这个规律都是存在的。JIT相对来说就是一个新技术,就是狐狸精。这狐狸精能极大提高脚本引擎的效率,所以Flash现在用了,Chrome用了,Firefox据说也用了,好像连未来的IE9也要用。这种确实有效的技术,只要一家用了,别家必然也要跟着用。丽春院新来了狐狸精,醉红楼肯定也要引进,要不然客人都跑了。

虽然理论上也有一些办法对抗这种技术(譬如在JIT编译中不使用任何立即数,更加随机地分配地址,随机调整JIT编译优化选项,等等),不过恐怕很难彻底根除。x86的指令太复杂了,总能有办法的。而且对抗必然意味着执行效率下降,这就违背了JIT技术的初衷。

JIT这个思路打开的不只一扇门。如前面所说,除Flash外,各浏览器的脚本引擎也都用了或将要用JIT,所以可能也都会有空子可钻。退一步说,即使所有脚本引擎开发者都铁了心要不惜一切代价解决这个问题,现在也至少还有两种其它的办法。这个宇宙的熵毕竟恒增,未来是混乱而非秩序的。


顺便说一句,任何高明完美的流程制度规范方法体系理论架构,都是由不完美的人设计,还要由部分不高明不完美的人来执行。如果理论完美就可以解决问题,那么《侠客行》中金乌派任何一个人都能打得过雪山派任何一个人。因为金乌派的武功完全是一招一式对照着雪山派的功夫设计出来的克制之术。如果仅从理论上说,那么《笑傲江湖》中泰山派那招“岱宗如何”就是世上第一厉害的剑法——那可是微积分武学。
  评论这张
 
阅读(718)| 评论(0)
推荐 转载

历史上的今天

评论

<#--最新日志,群博日志--> <#--推荐日志--> <#--引用记录--> <#--博主推荐--> <#--随机阅读--> <#--首页推荐--> <#--历史上的今天--> <#--被推荐日志--> <#--上一篇,下一篇--> <#-- 热度 --> <#-- 网易新闻广告 --> <#--右边模块结构--> <#--评论模块结构--> <#--引用模块结构--> <#--博主发起的投票-->
 
 
 
 
 
 
 
 
 
 
 
 
 
 

页脚

网易公司版权所有 ©1997-2017