2012-03-05 6 views
4

まず第一に、私は難読化がリバースエンジニアリングを妨げないことを知っています。それはちょうどそれを私が探しているものであるより困難と長くなります。javascriptをダブル難読

私のコードはjqueryを使用しています。それは唯一の依存関係です。私はgoogleの閉鎖コンパイラと両方がよく見なされるように見えるjscramblerを見ています。 Googleクロージャコンパイラでコードを渡してからjscramblerに渡すとどうなりますか?

コードは今のようにすべてのブラウザ/プラットフォームで動作しますか?二重難読化はソースをリバースエンジニアリングするために複雑さを追加しますか?難読化作品

+2

* QUESTION:?!あなたがしようDID * – epascarello

+0

@epascarello:いいえ、二重の難読化は、誰のような非常にウイルスに見えますそれを試みるだろうか? :D –

+0

見て、jsPerformanceまたはjsFiddleにコードを入れ、「美容コード」をクリックすると、コードを理解するのが簡単になります。 – ajax333221

答えて

1

は、コードはまだすべてのブラウザ/プラットフォームで動作しますか?

はい、外部スクリプトは内部スクリプトを実行し、内部スクリプト内の内部スクリプトを実行するようブラウザに指示します。言い換えれば、ouはevalevalに入れることができます。

二重難読化はソースをリバースエンジニアリングするのに複雑さを増しますか?

これは必ずしも複雑さを増すわけではありませんが、ソースに近づくためには余計な手順が必要になります。あなたが使用する内部の難読化は、それ自体が外部の難読化によって難読化されていることに注意してください。したがって、リバースエンジニアは内部難読化の難読化されたコードで表示されますが、実際のソースコードは表示されません。

私は過去にリバースエンジニアリングを行っていましたが(実行ファイルがウイルスであるかどうかを判断するために)、文字通りC#のプログラムに出くわしました。難読化された方法で最初に別のファイルを解凍し、 DLLファイルがロードされ、実際には最終的に実行されるDLLファイル内のリソースからコード内にロードされ、一部のオンラインサービスに接続するための不快なコードを実行します。

ボトムラインは、これはその難読化厄介なコードを取得するために私にかなり多くの時間を必要とすることです。

だから、二重難読化は複雑さを増し、コードを取得するのに時間がかかる可能性があります。

ただし、パフォーマンスやメンテナンスのコストが導入されていないことを確認してください。

そして、ええ、彼らは逆設計することができるへのアクセスを難読化している最終的にすべてのもの...

0

方法は、それはかなりちょうどそれがあまり読みやすくするために、変数などへの「A」、「B」、「C」と名前を変更しています。また、通常、コードのすべての書式が削除されるため、クラス全体が数百行の入力から数行だけ長くなります。

本当にコードが何をしているのかを知りたいと思っている人は、そうです。これは、あなたが言ったように、読んでリバースエンジニアリングすることをより困難にするでしょう。残念ながら、JavaScriptをコンパイルすることはできないので、プレーンテキストである必要があります。保護はほとんどオプションではありません。

私は、スクリプトを暗号化することができますそこに製品がある知っているが、このスクリプトは、まだちょうどローカルでスクリプトを実行することにより復号化することができます。その結果、暗号化されていないスクリプトが生成されます。それが今ないよう