MDecoder中为了能够方便的进行一些复杂加密方法的解密和hookeavl、hookdocument.write而嵌入了google的javascrip引擎v8。可是由于对于v8的垃圾收集机制理解的并不好,简单的Context::New()和Dispose(),并没有添加额外的资源控制代码,照成mdecoder有轻微的资源泄漏,虽然对于这么一个小工具来说,就算一直开着分析几十个网站来说不会有什么影响,可是如果把解密代码移植到其他需要大量解密的程序中来说就会有些影响了。最近几天查了下v8用户的邮件列表,并且简单的跟了下v8中对于context的代码。可是由于英语不咋地,邮件列表也就看了个半通不通,邮件列表中有个人说由于v8是针对chrome来写的,所以有些地方时让人很不方便,他个人为了控制资源的使用而添加了大量额外的代码,OMG,偶不过是一个小菜,哪里能添加控制的代码。跟了下Context::New()和Dispose()的代码,可是new的时候比较复杂,不是俺这种小菜一时半会能看懂的,dispose的倒是比较简单,可是不知道new里面的东东根本没用啊。
暂时就这么滴吧。等啃完《python源码剖析》这本书后再去学习v8吧。