ホームページ  >  記事  >  ウェブフロントエンド  >  暗号化された collection_javascript スキルを難読化するための JavaScript の解決

暗号化された collection_javascript スキルを難読化するための JavaScript の解決

WBOY
WBOYオリジナル
2016-05-16 18:56:321061ブラウズ

手動での復号化は予想よりもはるかに簡単で、所要時間は 30 分もかかりませんでした。
JS 難読化解除の最も重要な部分:
l eval または document.write、VBS の EXECUTE、execScript、および js を実行できるその他の関数
l unescape
js を難読化するには、一般にいくつかの方法があります。 🎜>1. エスケープによってコードを 16 進形式のコードに変換します。これは理解できません。
2. コードに対して単純な可逆暗号化を実行し、コードを復号するための復号化関数を提供し、コード文字列を eval などの呼び出しで渡します。実行のために js エンジンに送信します。
3. コード内のコメントとスペースをフィルターで除外し、JS コード内の内部関数/内部変数の名前を変更し、それらを非常に理解しにくい数値や混同された文字列などに変更します。数字の 0 と文字の O。識別が難しくなります。
より高度な方法は、上記の方法を組み合わせることです。
したがって、それを復元する方法は次のとおりです。
1. unescape を使用して、表示されている %XX 文字列をデコードします。
2. eval または同様の解釈関数エントリを検索します。
3. eval に渡されたパラメーターを入力します。 strings
4. これらの文字列も 16 進数形式である場合は、unescape を使用して解決します
5. すべてのコードが見つかるまで 2 ~ 4 のプロセスをループします
6.おそらく、解決された関数で使用されている変数がまだいくつかあり、これらの変数は大きな文字列であることが判明しました。この場合、これらの文字列は暗号化されたソース コードであるはずです。これらを使用する関数の末尾の適切な位置にコードを挿入し、復号化された文字列を表示してソース コードを取得します。
ここで注意すべき最も重要なことは、変数名を明確に確認することです。復号化部分のコードの多くは、これらの変数の実際の名前を追加することによって形成されます。
場所の移動により関数や変数が見つからなくなることを避けるため、関数や変数の宣言と定義の順序を保持するように注意してください。
さらに、難読化ツールはコードに大量のジャンク コードを追加しますが、これらは削除できます。
より強力な難読化ツールをお持ちの場合は、生成されたガベージのようなコードに有用なコードを挿入して、その後に続く文字化けした関数用の変数 (復号化されたキーなど) を提供することもできます。コードの順序が乱れている場合は、ジャンクコードかどうか分からない場合は、最初にそのままにしておきます。
方法 3 が最も単純で最も遅れているように見えますが、実際、この方法が私たちに最も大きな影響を与えるのは、コメントなしで、わかりにくい形式で、乱雑な名前の識別子が大量にあるコードを読み取ろうとすることです。普通の人にとってはそれはすべて悪夢です。ただし、これはおそらく「内部」標準を判断するのが難しく、一部の難読化ツールがそのような機能を提供していないためです。

別の: Web ページを復号化します アドレス バーに次のように入力するか、Ctrl O を押します:

コードをコピーします コードは次のとおりです:
javascript:s=document.documentElement.outerHTML;document.write('');document.body .innerText=s;

ソースコードが公開されました。暗号化がどれほど複雑であっても、最終的にはブラウザーが解析できる HTML コードに復元する必要があり、最終結果は documentElement.outerHTML です。
声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。