検索
ホームページウェブフロントエンドjsチュートリアルJavaScript のデコード: 難読化解除ガイド

Decoding JavaScript: A Guide to Deobfuscation

Web 開発の初期段階で教えられる最も興味深いことの 1 つは、開発者ツール ページからソース コードをコピーするだけで Web サイトを複製する方法です。多くの開発者はこれが役立つと考えていますが、これらの Web サイトを構築した開発者や Web サイトの所有者には当てはまりません。

これらの Web サイト所有者は通常、クライアント側 (HTML、CSS、JavaScript) コードの盗難に怯え、不安を感じています。このため、彼らに残された選択肢は 1 つだけです。それは、ソース コードの不正コピーや悪用を阻止するソリューションを探すことです。

これらの Web サイト所有者のニーズを満たすソリューションの 1 つは、JavaScript 難読化と呼ばれる技術です。簡単に言うと、JavaScript 難読化 は、人間が読める JavaScript コードを、人間が理解するのが難しい複雑な形式に変換する行為です。

コインには 2 つの側面があるため、JavaScript 難読化 にも JavaScript 難読化解除と呼ばれる対応物があります。その名前から、これが JavaScript 難読化の逆を行う行為であることがわかります。これにより、すでに難読化された JavaScript コードを人間が読める形式に変換します。

: ほとんどの場合、JavaScript の難読化解除は難読化されたコードを元の形式に戻しませんが、元の形式が取得される場合もあります。 JavaScript の難読化解除は、元の JavaScript コードを約束するものではなく、読んで理解できるコードを約束するものであると言っても過言ではありません。

JavaScriptの難読化解除と難読化の実践的な解説

練習することでより良く学ぶことができるので、このガイドの導入部分にある理論的な説明すべての実践的な側面を見てみましょう。

これらのテクニックをテストするには、JavaScript コードが必要です。それでは、変数を定義し、for ループの実行回数に基づいて文字列を出力する単純な JavaScript コードを作成してみましょう。

const no_loop_cycle = 5

for (let i = 0; i 



<p>テスト用の JavaScript コードが完成したので、JavaScript コードを難読化するための無料ツールである JavaScript Obfuscator Tool に移動します。</p>

<p>サンプル JavaScript コードをツールに貼り付け、[難読化] ボタンをクリックします。</p>

<p>出力として得られるものは次のとおりです:<br>
</p>

<pre class="brush:php;toolbar:false">function _0xb78f(_0x2224cc,_0x217706){const _0x44095f=_0x4409();return _0xb78f=function(_0xb78f5c,_0x2ff516){_0xb78f5c=_0xb78f5c-0xd3;let _0x60ee28=_0x44095f[_0xb78f5c];return _0x60ee28;},_0xb78f(_0x2224cc,_0x217706);}const _0x5f75f2=_0xb78f;(function(_0x2c5162,_0x14873c){const _0x4e4ef7=_0xb78f,_0x5a8a62=_0x2c5162();while(!![]){try{const _0x1b7f08=parseInt(_0x4e4ef7(0xdb))/0x1*(-parseInt(_0x4e4ef7(0xdc))/0x2)+parseInt(_0x4e4ef7(0xdd))/0x3+-parseInt(_0x4e4ef7(0xd9))/0x4*(parseInt(_0x4e4ef7(0xd4))/0x5)+-parseInt(_0x4e4ef7(0xde))/0x6+parseInt(_0x4e4ef7(0xd6))/0x7*(-parseInt(_0x4e4ef7(0xd3))/0x8)+parseInt(_0x4e4ef7(0xd5))/0x9+parseInt(_0x4e4ef7(0xd7))/0xa;if(_0x1b7f08===_0x14873c)break;else _0x5a8a62['push'](_0x5a8a62['shift']());}catch(_0x153236){_0x5a8a62['push'](_0x5a8a62['shift']());}}}(_0x4409,0x71eba));const no_loop_cycle=0x5;for(let i=0x0;i<no_loop_cycle _0x4409 _0x5189f4="['2031897OhIMeN','15423690UOVACr','String\x20','1326068tySTtA','log','1CErZVM','245842QiNqEk','1819539wUQmJB','4133556arqvkn','16ZAFmnL','10OzrKck','3358431pZHaXs'];_0x4409=function(){return">



<p>この難読化されたコードをコード エディターに貼り付け、実行してその正確さを検証します。元のコードと同じ出力が得られることがわかります。</p>

<p>JavaScript の難読化の動作を確認できたので、JavaScript の難読化解除も同様に試してみるのも楽しいでしょう。上記の難読化されたコードをコピーし、この無料の難読化解除ツールに貼り付けます。</p>

<p>その難読化解除ツールを使用すると、次のコードが得られます:<br>
</p>
<pre class="brush:php;toolbar:false">const no_loop_cycle = 5

for (let i = 0; i 



<p>難読化解除後に返されるコードは、元の JavaScript コードと似ていますが、少しだけ異なります。これにより、通常は実際の JavaScript コードは取得されず、理解できる読み取り可能な形式で取得されることがわかります。</p>

<h2>
  
  
  JavaScript の難読化解除が重要なのはなぜですか?
</h2>

<p>ほとんどの Web サイトは、基本的なユーザー インタラクションを担当するため、主に JavaScript コード内に未承認ユーザーを阻止するための技術を埋め込むことに大きく依存しています (Web サイトとの操作が必要なほとんどの機能は JavaScript を使用して実装されます)。 </p>

<p>この手法は主に JavaScript の難読化であり、ここで JavaScript の難読化解除が役に立ちます。これは、特に Web スクレイピングの場合に、このような問題に対処するのに役立ちます。 </p>

<p>JavaScript の難読化解除によりコードが読みやすくなり、スクリプトをより深く理解し、操作をシミュレートし、予期されるデータを適切に収集できるようになります。</p>

<p>JavaScript の難読化により、ボット対策セキュリティ、Cloudflare 待合室、一連の CAPTCHA パズルなど、より多くのスクレイピング対策メカニズムが導入されます。これらの課題にもかかわらず、JavaScript の難読化解除はこれらの課題の回避とリバース エンジニアリングに役立つため、依然として有効です。 </p>

<h2>
  
  
  JavaScript の難読化解除の仕組み
</h2>

<p>JavaScript の難読化解除には次のプロセスが必要です:</p>

<ol>
<li>
<strong>JavaScript の難読化の特定</strong>: これを特定するには、変数の名前変更、制御フローの縮小、16 進値、エンコードされた文字列などのいくつかのパターンを認識する必要があります。研究を続けると、より多くのパターンを発見できるようになります。</li>
<li>
<strong>難読化されたコードへのアクセス</strong>: 難読化されたコードを特定できたので、次のプロセスは、より適切に分析するために Chrome の開発者ツールを使用してコードにアクセスすることです。ファイルを見つけた後に保存することもできます。</li>
<li>
<strong>コードをフォーマットします</strong>: Prettier や JavaScript beautifier などのツールを使用して、難読化されたコードをフォーマットできます。</li>
<li>コードを実行して、エラーがないことを検証します。</li>
<li>最後に、機能ロジック (隠しコンテンツ生成またはトークン検証のコード) が抽出されます。</li>
</ol>

<h2>
  
  
  JavaScript の難読化解除のソリューション
</h2>

<p>JavaScript の難読化を解除するための完璧なソリューションは、問題解決スキル、難読化されたコード内のパターンを認識する能力、および技術ツールの使用を組み合わせることです。 </p>

<p>コードのフォーマットに必要なツール、難読化されたコードにアクセスして分析するための Chrome DevTools、コードを解析して縮小するための uglify-js などの外部サードパーティ ライブラリ、およびデバッグ ツールがある場合は、JavaScript 難読化インスタンスを確認できます。 .</p>

<p>作業を迅速に行うには、任意の JavaScript 難読化解除ツール、またはこのガイドで使用されているツールを使用できます。</p>


          

            
        

以上がJavaScript のデコード: 難読化解除ガイドの詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
JavaScriptのデータ型:ブラウザとNodejsに違いはありますか?JavaScriptのデータ型:ブラウザとNodejsに違いはありますか?May 14, 2025 am 12:15 AM

JavaScriptコアデータ型は、ブラウザとnode.jsで一貫していますが、余分なタイプとは異なる方法で処理されます。 1)グローバルオブジェクトはブラウザのウィンドウであり、node.jsのグローバルです2)バイナリデータの処理に使用されるNode.jsの一意のバッファオブジェクト。 3)パフォーマンスと時間の処理にも違いがあり、環境に従ってコードを調整する必要があります。

JavaScriptコメント://および / * *を使用するためのガイドJavaScriptコメント://および / * *を使用するためのガイドMay 13, 2025 pm 03:49 PM

javascriptusestwotypesofcomments:シングルライン(//)およびマルチライン(//)

Python vs. JavaScript:開発者の比較分析Python vs. JavaScript:開発者の比較分析May 09, 2025 am 12:22 AM

PythonとJavaScriptの主な違いは、タイプシステムとアプリケーションシナリオです。 1。Pythonは、科学的コンピューティングとデータ分析に適した動的タイプを使用します。 2。JavaScriptは弱いタイプを採用し、フロントエンドとフルスタックの開発で広く使用されています。この2つは、非同期プログラミングとパフォーマンスの最適化に独自の利点があり、選択する際にプロジェクトの要件に従って決定する必要があります。

Python vs. JavaScript:ジョブに適したツールを選択するPython vs. JavaScript:ジョブに適したツールを選択するMay 08, 2025 am 12:10 AM

PythonまたはJavaScriptを選択するかどうかは、プロジェクトの種類によって異なります。1)データサイエンスおよび自動化タスクのPythonを選択します。 2)フロントエンドとフルスタック開発のためにJavaScriptを選択します。 Pythonは、データ処理と自動化における強力なライブラリに好まれていますが、JavaScriptはWebインタラクションとフルスタック開発の利点に不可欠です。

PythonとJavaScript:それぞれの強みを理解するPythonとJavaScript:それぞれの強みを理解するMay 06, 2025 am 12:15 AM

PythonとJavaScriptにはそれぞれ独自の利点があり、選択はプロジェクトのニーズと個人的な好みに依存します。 1. Pythonは、データサイエンスやバックエンド開発に適した簡潔な構文を備えた学習が簡単ですが、実行速度が遅くなっています。 2。JavaScriptはフロントエンド開発のいたるところにあり、強力な非同期プログラミング機能を備えています。 node.jsはフルスタックの開発に適していますが、構文は複雑でエラーが発生しやすい場合があります。

JavaScriptのコア:CまたはCの上に構築されていますか?JavaScriptのコア:CまたはCの上に構築されていますか?May 05, 2025 am 12:07 AM

javascriptisnotbuiltoncorc;それは、解釈されていることを解釈しました。

JavaScriptアプリケーション:フロントエンドからバックエンドまでJavaScriptアプリケーション:フロントエンドからバックエンドまでMay 04, 2025 am 12:12 AM

JavaScriptは、フロントエンドおよびバックエンド開発に使用できます。フロントエンドは、DOM操作を介してユーザーエクスペリエンスを強化し、バックエンドはnode.jsを介してサーバータスクを処理することを処理します。 1.フロントエンドの例:Webページテキストのコンテンツを変更します。 2。バックエンドの例:node.jsサーバーを作成します。

Python vs. Javascript:どの言語を学ぶべきですか?Python vs. Javascript:どの言語を学ぶべきですか?May 03, 2025 am 12:10 AM

PythonまたはJavaScriptの選択は、キャリア開発、学習曲線、エコシステムに基づいている必要があります。1)キャリア開発:Pythonはデータサイエンスとバックエンド開発に適していますが、JavaScriptはフロントエンドおよびフルスタック開発に適しています。 2)学習曲線:Python構文は簡潔で初心者に適しています。 JavaScriptの構文は柔軟です。 3)エコシステム:Pythonには豊富な科学コンピューティングライブラリがあり、JavaScriptには強力なフロントエンドフレームワークがあります。

See all articles

ホットAIツール

Undresser.AI Undress

Undresser.AI Undress

リアルなヌード写真を作成する AI 搭載アプリ

AI Clothes Remover

AI Clothes Remover

写真から衣服を削除するオンライン AI ツール。

Undress AI Tool

Undress AI Tool

脱衣画像を無料で

Clothoff.io

Clothoff.io

AI衣類リムーバー

Video Face Swap

Video Face Swap

完全無料の AI 顔交換ツールを使用して、あらゆるビデオの顔を簡単に交換できます。

ホットツール

ゼンドスタジオ 13.0.1

ゼンドスタジオ 13.0.1

強力な PHP 統合開発環境

SublimeText3 Linux 新バージョン

SublimeText3 Linux 新バージョン

SublimeText3 Linux 最新バージョン

SAP NetWeaver Server Adapter for Eclipse

SAP NetWeaver Server Adapter for Eclipse

Eclipse を SAP NetWeaver アプリケーション サーバーと統合します。

MinGW - Minimalist GNU for Windows

MinGW - Minimalist GNU for Windows

このプロジェクトは osdn.net/projects/mingw に移行中です。引き続きそこでフォローしていただけます。 MinGW: GNU Compiler Collection (GCC) のネイティブ Windows ポートであり、ネイティブ Windows アプリケーションを構築するための自由に配布可能なインポート ライブラリとヘッダー ファイルであり、C99 機能をサポートする MSVC ランタイムの拡張機能が含まれています。すべての MinGW ソフトウェアは 64 ビット Windows プラットフォームで実行できます。

DVWA

DVWA

Damn Vulnerable Web App (DVWA) は、非常に脆弱な PHP/MySQL Web アプリケーションです。その主な目的は、セキュリティ専門家が法的環境でスキルとツールをテストするのに役立ち、Web 開発者が Web アプリケーションを保護するプロセスをより深く理解できるようにし、教師/生徒が教室環境で Web アプリケーションを教え/学習できるようにすることです。安全。 DVWA の目標は、シンプルでわかりやすいインターフェイスを通じて、さまざまな難易度で最も一般的な Web 脆弱性のいくつかを実践することです。このソフトウェアは、