アルゴリズム分析の数

今日は、多くのサイトが使用されているJSの数を分析し、私はこの、いくつかのバージョンが存在することを、私はそれが直接の憎悪の混乱で、私たちは前に分析しているとしてだけで、ものを見つけ、知らない、私たちは少し無知かもしれ聞きましたレッツ・慎重な分析時間、乾燥品とより、我々ゆっくりと商品。

まず、ページを開きます。

今回は、前に言った、そして今の周りのいくつかの他の方法を言います

最初は、スキップ満足されていない状態で中断します条件付きブレークポイントであり、

第二は、ブレークダウンしません、このラインを設定している、常に下にあり、

GoogleのV8エンジンは、JSのJSの同期間に合わせて最適化するので、彼はそのサイクル発電として実行されるかどうJSは、変更しないことを提供し、これら二つの操作

(function() {
    var a = new Date();
    debugger ;return new Date() - a > 100;
}())

無少しであったことを、あなたは私たちが突然光が表示されます、我々はエンジンの観点から分析するたびに同じことを生成しない場合を除き、行くために第一世代を最適化されます。

今、私たちは2が禁止され、その後、ホーム・ページを参照してください回し、我々は最初から見ます

我々は彼が次の段落を実行するJSをロードします参照DOMは、我々は上記を参照し、<メタコンテンツ=は彼のレンダリング後の外観にそれを私たちにラベルを付けます

奇妙なことは、彼がレンダリング後に消失したということです、我々は彼がロードされているものを見て

このオブジェクトに勝つためのJSは、文字列を備えているが設けられています。

私たちは、デバッガによって停止される前なので、私たちは自分のファイルを見ます

デバッガのファイルは、最初にすべてのそれの、それはあなたが検索し所有していることを、二つの方法でevalをダイナミックかつ機能を使用する手段、動的なコードです

私たちは、今まで分析された文字列の多くを持つ2つの場所を見つけ、これらの二つの可能性が最も高い2つの復号evalの実行後、このセクションは、次のことを私たちの憶測、一般的な外観に応じて実行コードを復号化しています。

それは、我々は彼が何をしたか確認するために検索し、jsのセットをロードするための文字列の先頭で非常に精通し、ああ、あります

検索、私はいくつかの場所を発見し、我々はexecScriptとはevalを見ます

その後、復号化され、その後はevalを取得し、我々はその大きなセグメントは、コード内でスプライスされた。我々は、彼が_ $ AIは、[「6ca01ba」]は推測しています

我々は簡単に彼が戻り、A jsのコードスニペットをステッチ_ $ AI [「6ca01ba」]、その後復号化してから彼のコードを持って、再度実行して、コンテンツの復号の実行を読んでいるもの、推測することができますここで、我々は彼が一般的なプロセスだと仮定しますこのように、

当我们看到这个那他基本上就是用的eval来运行的第一层代码,这里他判断了functioneval(){[nativecode]} 这是判断有没有被劫持,我们接下来搜eval看看他那里运行的

_$cm 这个赋值了,当我们搜_$cm(的时候并没有任何东西,一般js调用除了_$cm()还有call和apply

我们发现了一个调用,因为刷新页面就要变,所以我们保存一下网页,然后代理加载调试,

我们分析的没错,他eval执行这一段然后再读取处理content再解密执行。

既然他这里是eval我们是不是可以把他解密的数据放进去方便调试呢,我们试试

可以正常加载,由于篇幅原因我们下一次接着讲

发布了32 篇原创文章 · 获赞 27 · 访问量 5万+

おすすめ

転載: blog.csdn.net/sergiojune/article/details/104421946