を使用して利用するキットで私が悪用キット難読化Javascriptが配列のコンストラクタ
> a = []["constructor"]
Array() { [native code] }
> b = a["constructor"]
Function() { [native code] }
> b("console.log('a');")
anonymous() {
console.log('a');
}
> b("console.log('a');")()
a
または他の言葉で
> [].constructor.constructor("console.log('a');")()
a
にいくつかの難読化Javascriptを気づいた誰かがここで何が起こっているのか説明できますか?配列のコンストラクタのコンストラクタは何ですか?
JSコンソールに '[] .constructor.constructor'と入力して、自分で見つけ出すことができます。 –
好奇心をそそる場合は、 'Function'のコンストラクタも' Function'ですので、それ以上の循環関係です。 'Function'のための[MDNページ](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Function) – 4castle
はい、これはJSコンソールの出力です。ここのキー(私が欠けていた)は、関数プロトタイプは文字列リテラルをとり、それを評価します。 –