問題タブ [deobfuscation]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
java - 難読化されたコードのリバースエンジニアリングに関する優れたブログ、記事、またはドキュメントを提案してください
以前のトピックの1つで説明したように、数十のアプリ(すべて昨年の作業)でハードディスクを紛失したため、すべてのアプリをリバースエンジニアリングする必要があります。一部の古いものは、コードが難読化されていないため、簡単にRI処理されました。ただし、公開の準備ができているバージョンを作成すると、EclipseがAndroidアプリを自動的に難読化するため、すべての新しいアプリのコードは難読化されています。
すべてのクラス、メソッド、およびクラスメンバーが難読化されたため(名前の変更、パラメーターなど)、コードの再生成で多くの問題が発生しました。難読化されたコードを元に戻すためのヒントやコツについて書いている良いブログ、記事、またはドキュメントを共有できますか?!
誰かが望むなら、彼は彼自身の提案やヒントを書くことができます。
前もって感謝します
PS。これは元の記事です:「私のアプリをリバースエンジニアリングしようとしましたが、奇妙に見えるファイルツリーを取得しました」
c# - 難読化が行われた後、リフレクションを通じてc#のクラス/プロパティを見つけるための最良の方法は何ですか?
リフレクションに使用されるコードの例を次に示します。
ソフトウェアが難読化されると、コードは明らかに機能しなくなります。
難読化が行われた後も変更されないクラスのプロパティを検索することで、それを回避する方法を見つけようとしています。type.GUIDで試してみましたが、デバッグバージョンを実行すると1つのGUIDが取得され、難読化が完了した後のリリースでは、GUIDが変更されます。
難読化にEazfuscator.NETを使用しています。
可能であれば、クラス/メソッドをマークするために属性を使用することは避けたいと思います。
何がうまくいくかについてのアイデアはありますか?
javascript - HTMLで難読化されたJavaScriptを「デコード」する方法は?
以下に一例を示します。
明らかに、このコードは他の人を混乱させるために意図的に書かれています。どうすればそれを理解し、簡単なコードに書き直すことができますか?
この仕事のためのツールはありますか?これは、HTML では非常に一般的です。
c# - 難読化された.NetC#アプリケーションを逆コンパイルできますか?
いくつかの情報を暗号化するプログラムを.netC#で作成しました。
タスクを実行するために、機密情報を含む配列を使用しました。exeをクラックする可能性があることを知る必要があります。つまり、誰でもexeファイルから配列を取得できます。配列の値はアプリケーションに表示されません。使用しました。 VisualStudio.NETに付属するDotfuscatorのコミュニティバージョン。私が知りたいのは、exeを抽出して、その中で使用されているメンバー変数にアクセスできるかどうかです。
.net - .Netアプリケーションを難読化解除機能から保護しますか?
難読化ツールを使用することで、.Netアプリケーションを逆コンパイルから保護できることを私は知っています。
しかし、私はどこかで、.Netの難読化されたアプリケーションを難読化解除できるいくつかの難読化解除機能(de4dotなど)があることを読みました。Eazfuscator.NETなどの一部の難読化ツールの効果を無効にすることができます。したがって、難読化された.Netアプリケーションでも逆コンパイルできます。
そうですか?はいの場合、難読化解除ツールからアプリケーションを保護する方法は?
c# - 彼らはC#コードに難読化されていますか?
これらのコード行は難読化されていますか(C#)?
はいの場合、難読化を解除するソフトウェアはありますか?
完全な方法(コードはILSpy decomplierによってdecompliedされます):
p / s:
C#で書かれていないというコメントもありますが、たとえば、C#に非常に近いところを見つけました。
javascript - Javascript リテラル構文コンバーター/難読化解除ツールが必要です
Google でコンバーターを検索しましたが、何も見つかりませんでした。難読化された JavaScript コードをデコードするために利用できるツールはありますか?
そのようなツールがあると思いますが、適切なキーワードで Google を検索していません。コードは 3 ページの長さなので、ツールが必要です。
コードの例を次に示します。
ありがとうございました
perl - Perl スクリプトを適切に難読化解除するには?
次の Perl コード ( source )の難読化を解除しようとしています:
実行すると、出力されますJust another genome hacker.
コード トラフDeparse
とperltidy
( perl -MO=Deparse jagh.pl | perltidy
) を実行すると、コードは次のようになります。
これが私が自分で解読できたものです。
$d
(二重らせん)内のすべての空白を削除します。
A
キー、T
、C
およびG
を値0
、1
、2
およびとしてハッシュを作成します3
。私は通常 Python でコーディングするので、これは Python の辞書{'A': 0, 'B': 1, 'C': 2, 'D': 3}
に変換されます。
多次元配列エミュレーションのために、ハッシュのキーを添え字セパレータと結合し$;
ます。ドキュメントには、デフォルトはawkのSUBSEPと同じ「\ 034」であると書かれていますが、そうすると:
私は値を取得します28
か?また、これが多次元配列をどのようにエミュレートするかは明確ではありません。Python$p
のようなものになりましたか?[['A'], ['T'], ['C'], ['G']]
$d
一致する限り([$p]{4})
、while ブロック内のコードを実行します。しかし、私は構造が完全に理解していないので$p
、ここで何が起こっているのかを理解するのにも苦労しています.
$j
モジュロ 96 が 16 以上の場合は続行$j
します。while ループ (?) の各パスでインクリメントします。
$d
からの範囲でいくつかの部分文字列0
を3
抽出しますが、この時点で私は完全に迷っています。最後の数行はすべてを連結し、結果を評価します。
javascript - この JavaScript コードの難読化を解除する方法は?
重複の可能性:
難読化された JavaScript のデコード
質問:
次のJavaScriptコードがあります:
どのように正確に解読し、それが何をするのかを知ることができますか?
そして、この難読化の背後にある原則は何ですか?
java - コード操作のための Eclipse の抽象構文ツリー パーサーの代替
バックグラウンド
プログラムに渡されたルックアップ テーブル .csv ファイルに基づいてコードの難読化を解除するために、Java ソース コードのディレクトリ内のメンバーと関数の名前を一括で変更するプログラムを作成しています。
これは、私が持っているソース コードが難読化された jar に対して書かれているためです。カスタマイズされたバージョンのRetroGaurdを介して実行された難読化解除されたバージョンの jar があり、RetroGaurd に渡されたマッピング ファイルを解析して、ソース コードが jar に作成する関数呼び出しの難読化を解除したいと考えています。コードをコンパイルし、逆コンパイルするときに RetroGaurd でも実行すると、素敵なコメントと書式設定がすべて失われます (RetroGaurd に見逃したオプションがない限り)。
問題
Abstract Syntax Treeパーサーが Eclipse に組み込まれていることを発見しました。これは私の用途に最適に見えますが、プログラムを Eclipse のプラグインとして作成するつもりはありません。これは、任意のマシンで実行できるスタンドアロンの jar になる予定です。 .
私の主な懸念は、コードを書いているときに、Eclipse が使用する内部 jar に多くの依存関係を取得していることです。ライブラリ jar のEPLに準拠していれば、配布に問題がないことはわかっていますが、Eclipse の SDK からの jar がますます必要になるため、このプロジェクトを作成するにつれて、このプロジェクトがどんどん大きくなっていくのではないかと心配しています。
ASTが許可するように、Javaソースコードを解析して検索と置換を確実に実行できるようにする他のプロジェクトはありますか、またはRetroGaurd(またはそれに似たプログラム)を使用して同じを実行する方法はありますか難読化を解除しますが、後で逆コンパイラを介して難読化解除されたプログラムを実行する必要なく、コメントと機能を同じに保ちますか?