2008/08/14 6:30:03
31
12
15 d.hatena.ne.jp [
この元コンテンツへ ]
昨日の続きです。昨日の記事がまったくデタラメだとさすがに気まずいので、Invoke が呼ばれてるよ、という事実ぐらいは確かめようと思いました。私はバイナリアンではないのですが、がんばってMSHTMLの中を追ってみることにします。 まず、C++からIDispatch::Invokeを呼んだ場合と、Javascriptから window.document を参照した場合の2つの処理が合流するところを探しました。 ↑ここです。 ...
[
← 前の画面 ]
【 PR 】 デザインに利く Photoshop ブラシ [ 無料 ] [
ニコニコ風 ] [
関連記事 ] [
Feeling Lucky ]
■ この情報のコメント・メモ ■
document呼び出しを高速化する例のハックをバイナリレベルで追ってみた記事。 [ monjudoh ]
「IEの気持ち」をデバッガでのぞいてみる。これはエロい [ tsupo ]
IEは、素直な人が好きです。グローバルを参照するときは普通に書きましょう。 [ Wacky ]
IDispatch::Invoke()で繋がるCOMとJS。 [ mitsuki_engawa ]
おお。documentが変数化することでInvokeされないという証明。これはすごい。window.documentが遅い理由は、windowを取得するときにInvokeが呼ばれるからということ? [ amachang ]
バイナリレベルで深入り。documentよりwindow.documentの方はさらに遅くなるらしい。 [ plugnus ]
リバースエンジニアリングカコイイ [ Kanatoko ]
バイナリ的な解析とその結果。 [ Kuruma ]
>amachangのハックについてbinaryレベルでの調査 [ ringod ]
mshtml.dllにブレークポイントを仕掛けて、IEの気持ちに深入りしていく。スタックにDISPIDが出る。なるほど。/DISPIDというのはIHTMLWindow2のメソッドに割り当てられた番号。http://doc.ddart.net/msdn/header/include/mshtmdid.h.html [ nitoyon ]
せめて既知のメソッドはvtable使ってくれると速くなるんでしょうね。でもGIT使ってそうだからマーシャリングは必須かなぁ。 [ mattn ]
じゅうぶんバイナリアンかと。/この記事でasin:4756130666とか紹介したら買う人いそう。 [ cx20 ]
[
← 前の画面に戻る ]