LoginSignup
0
1

More than 5 years have passed since last update.

【JavaScript】10種類の文字とwindow,文字列'CogS'だけでHelloWorld(後編)

Last updated at Posted at 2018-10-29

半年近く前に書かれた前回のあらすじ。

HelloWorld3-2.js
const helloWorld = (function(w,cogs,v){
    v = [
        ([]+!+[])[+[]]+cogs[+!+[]]+cogs[!+[]+!+[]+!+[]]+([]+!+[])[+[]]+
                ([]+!+[])[+!+[]]+([![]]+[][+[]])[[+!+[]]+(+[])]+([]+[][
                +[]])[+!+[]]+cogs[!+[]+!+[]]
    ];
    v[+!+[]] = w[cogs[!+[]+!+[]+!+[]]+(+([!+[]+!+[]+!+[]+!+[]]+[!+[]+!+
            []+!+[]+!+[]+!+[]+!+[]+!+[]+!+[]+!+[]]+[!+[]+!+[]+!+[]+!+[]
            +!+[]+!+[]+!+[]+!+[]+!+[]]+[!+[]+!+[]+!+[]+!+[]+!+[]+!+[]+!
            +[]+!+[]+!+[]]+[!+[]+!+[]]+[!+[]+!+[]+!+[]+!+[]+!+[]+!+[]+!
            +[]]+[!+[]+!+[]+!+[]+!+[]]+[!+[]+!+[]+!+[]+!+[]+!+[]+!+[]+!
            +[]+!+[]]))[v[+[]]](([!+[]+!+[]+!+[]]+[!+[]+!+[]+!+[]+!+[]+
            !+[]+!+[]]))][(+([!+[]+!+[]+!+[]+!+[]+!+[]+!+[]+!+[]]+[!+[]
            +!+[]+!+[]]+[!+[]+!+[]+!+[]+!+[]+!+[]]+[!+[]+!+[]+!+[]+!+[]
            +!+[]+!+[]+!+[]]+[+!+[]]+[!+[]+!+[]+!+[]+!+[]+!+[]+!+[]+!+[
            ]+!+[]]))[v[+[]]](+([!+[]+!+[]+!+[]]+[!+[]+!+[]+!+[]+!+[]+!
            +[]+!+[]]))+cogs[+[]]+(+([!+[]+!+[]]+[!+[]+!+[]]+[!+[]+!+[]
            +!+[]+!+[]]+[+!+[]]+[!+[]+!+[]+!+[]+!+[]+!+[]+!+[]+!+[]+!+[
            ]+!+[]]))[v[+[]]](+([!+[]+!+[]+!+[]]+[!+[]+!+[]+!+[]+!+[]+!
            +[]+!+[]]))+cogs[+[]]+(+([!+[]+!+[]+!+[]]+[+!+[]]+[!+[]+!+[
            ]+!+[]+!+[]+!+[]]+[!+[]+!+[]+!+[]+!+[]+!+[]+!+[]+!+[]+!+[]]
            +[!+[]+!+[]+!+[]+!+[]+!+[]+!+[]]))[v[+[]]](+([!+[]+!+[]+!+[
            ]]+[!+[]+!+[]+!+[]+!+[]+!+[]+!+[]]))];
    return function(){
        w['console']['log']('Hello, World!');
    }
})(window,'CogS');

v[0]で'toString'、v[1]でString.fromCharCodeを使えるようになりました。
あとは'console''log''Hello, World!'の文字列を用意できれば勝ちです。

4. 最後の仕上げ

4.1. 文字列の準備

String.fromCharCodeが使えるので、もう文字列なんて怖くありません。
ぱぱっと用意してあげましょう。

//(27612545666)['toString'](36) // 'console'
(+([!+[]+!+[]]+[!+[]+!+[]+!+[]+!+[]+!+[]+!+[]+!+[]]+[!+[]+!+[]+!+[]+!+[]+!+[]+!+[]]+[+!+[]]+[!+[]+!+[]]+[!+[]+!+[]+!+[]+!+[]+!+[]]+[!+[]+!+[]+!+[]+!+[]]+[!+[]+!+[]+!+[]+!+[]+!+[]]+[!+[]+!+[]+!+[]+!+[]+!+[]+!+[]]+[!+[]+!+[]+!+[]+!+[]+!+[]+!+[]]+[!+[]+!+[]+!+[]+!+[]+!+[]+!+[]]))[v[+[]]](+([!+[]+!+[]+!+[]]+[!+[]+!+[]+!+[]+!+[]+!+[]+!+[]]));
//(28096)['toString'](36) // 'log'
(+([!+[]+!+[]]+[!+[]+!+[]+!+[]+!+[]+!+[]+!+[]+!+[]+!+[]]+[+[]]+[!+[]+!+[]+!+[]+!+[]+!+[]+!+[]+!+[]+!+[]+!+[]]+[!+[]+!+[]+!+[]+!+[]+!+[]+!+[]]))[v[+[]]](+([!+[]+!+[]+!+[]]+[!+[]+!+[]+!+[]+!+[]+!+[]+!+[]]));
// 'Hello, World!'
/* 'H'    */   v[+!+[]](+([!+[]+!+[]+!+[]+!+[]+!+[]+!+[]+!+[]]+[!+[]+!+[]]))
/* 'ello' */ + (+([!+[]+!+[]+!+[]+!+[]+!+[]+!+[]]+[!+[]+!+[]+!+[]+!+[]+!+[]+!+[]+!+[]+!+[]]+[+!+[]]+[+!+[]]+[!+[]+!+[]+!+[]+!+[]+!+[]+!+[]+!+[]+!+[]]+[+[]]))[v[+[]]](+([!+[]+!+[]+!+[]]+[!+[]+!+[]+!+[]+!+[]+!+[]+!+[]]))
/* ','    */ + v[+!+[]](+([!+[]+!+[]+!+[]+!+[]]+[!+[]+!+[]+!+[]+!+[]]))
/* ' '    */ + v[+!+[]](+([!+[]+!+[]+!+[]]+[!+[]+!+[]]))
/* 'W'    */ + v[+!+[]](+([!+[]+!+[]+!+[]+!+[]+!+[]+!+[]+!+[]+!+[]]+[!+[]+!+[]+!+[]+!+[]+!+[]+!+[]+!+[]]))
/* 'orld' */ + (+([+!+[]]+[+!+[]]+[!+[]+!+[]+!+[]+!+[]+!+[]]+[!+[]+!+[]+!+[]+!+[]+!+[]]+[!+[]+!+[]+!+[]+!+[]+!+[]]+[+[]]+[!+[]+!+[]+!+[]+!+[]+!+[]]))[v[+[]]](+([!+[]+!+[]+!+[]]+[!+[]+!+[]+!+[]+!+[]+!+[]+!+[]]))
/* '!'    */ + v[+!+[]](+([!+[]+!+[]+!+[]]+[!+[]+!+[]+!+[]]));

これらをしかるべき場所に置くと、

HelloWorld4-1.js
const helloWorld = (function(w,cogs,v){
    v = [
        ([]+!+[])[+[]]+cogs[+!+[]]+cogs[!+[]+!+[]+!+[]]+([]+!+[])[+[]]+
                ([]+!+[])[+!+[]]+([![]]+[][+[]])[[+!+[]]+(+[])]+([]+[][
                +[]])[+!+[]]+cogs[!+[]+!+[]]
    ];
    v[+!+[]] = w[cogs[!+[]+!+[]+!+[]]+(+([!+[]+!+[]+!+[]+!+[]]+[!+[]+!+
            []+!+[]+!+[]+!+[]+!+[]+!+[]+!+[]+!+[]]+[!+[]+!+[]+!+[]+!+[]
            +!+[]+!+[]+!+[]+!+[]+!+[]]+[!+[]+!+[]+!+[]+!+[]+!+[]+!+[]+!
            +[]+!+[]+!+[]]+[!+[]+!+[]]+[!+[]+!+[]+!+[]+!+[]+!+[]+!+[]+!
            +[]]+[!+[]+!+[]+!+[]+!+[]]+[!+[]+!+[]+!+[]+!+[]+!+[]+!+[]+!
            +[]+!+[]]))[v[+[]]](([!+[]+!+[]+!+[]]+[!+[]+!+[]+!+[]+!+[]+
            !+[]+!+[]]))][(+([!+[]+!+[]+!+[]+!+[]+!+[]+!+[]+!+[]]+[!+[]
            +!+[]+!+[]]+[!+[]+!+[]+!+[]+!+[]+!+[]]+[!+[]+!+[]+!+[]+!+[]
            +!+[]+!+[]+!+[]]+[+!+[]]+[!+[]+!+[]+!+[]+!+[]+!+[]+!+[]+!+[
            ]+!+[]]))[v[+[]]](+([!+[]+!+[]+!+[]]+[!+[]+!+[]+!+[]+!+[]+!
            +[]+!+[]]))+cogs[+[]]+(+([!+[]+!+[]]+[!+[]+!+[]]+[!+[]+!+[]
            +!+[]+!+[]]+[+!+[]]+[!+[]+!+[]+!+[]+!+[]+!+[]+!+[]+!+[]+!+[
            ]+!+[]]))[v[+[]]](+([!+[]+!+[]+!+[]]+[!+[]+!+[]+!+[]+!+[]+!
            +[]+!+[]]))+cogs[+[]]+(+([!+[]+!+[]+!+[]]+[+!+[]]+[!+[]+!+[
            ]+!+[]+!+[]+!+[]]+[!+[]+!+[]+!+[]+!+[]+!+[]+!+[]+!+[]+!+[]]
            +[!+[]+!+[]+!+[]+!+[]+!+[]+!+[]]))[v[+[]]](+([!+[]+!+[]+!+[
            ]]+[!+[]+!+[]+!+[]+!+[]+!+[]+!+[]]))];
    return function(){
        w[
            (+([!+[]+!+[]]+[!+[]+!+[]+!+[]+!+[]+!+[]+!+[]+!+[]]+[!+[]+!
            +[]+!+[]+!+[]+!+[]+!+[]]+[+!+[]]+[!+[]+!+[]]+[!+[]+!+[]+!+[
            ]+!+[]+!+[]]+[!+[]+!+[]+!+[]+!+[]]+[!+[]+!+[]+!+[]+!+[]+!+[
            ]]+[!+[]+!+[]+!+[]+!+[]+!+[]+!+[]]+[!+[]+!+[]+!+[]+!+[]+!+[
            ]+!+[]]+[!+[]+!+[]+!+[]+!+[]+!+[]+!+[]]))[v[+[]]](+([!+[]+!
            +[]+!+[]]+[!+[]+!+[]+!+[]+!+[]+!+[]+!+[]]))
        ][
            (+([!+[]+!+[]]+[!+[]+!+[]+!+[]+!+[]+!+[]+!+[]+!+[]+!+[]]+[+
            []]+[!+[]+!+[]+!+[]+!+[]+!+[]+!+[]+!+[]+!+[]+!+[]]+[!+[]+!+
            []+!+[]+!+[]+!+[]+!+[]]))[v[+[]]](+([!+[]+!+[]+!+[]]+[!+[]+
            !+[]+!+[]+!+[]+!+[]+!+[]]))
        ](
            v[+!+[]](+([!+[]+!+[]+!+[]+!+[]+!+[]+!+[]+!+[]]+[!+[]+!+[]]
            ))+(+([!+[]+!+[]+!+[]+!+[]+!+[]+!+[]]+[!+[]+!+[]+!+[]+!+[]+
            !+[]+!+[]+!+[]+!+[]]+[+!+[]]+[+!+[]]+[!+[]+!+[]+!+[]+!+[]+!
            +[]+!+[]+!+[]+!+[]]+[+[]]))[v[+[]]](+([!+[]+!+[]+!+[]]+[!+[
            ]+!+[]+!+[]+!+[]+!+[]+!+[]]))+v[+!+[]](+([!+[]+!+[]+!+[]+!+
            []]+[!+[]+!+[]+!+[]+!+[]]))+v[+!+[]](+([!+[]+!+[]+!+[]]+[!+
            []+!+[]]))+v[+!+[]](+([!+[]+!+[]+!+[]+!+[]+!+[]+!+[]+!+[]+!
            +[]]+[!+[]+!+[]+!+[]+!+[]+!+[]+!+[]+!+[]]))+(+([+!+[]]+[+!+
            []]+[!+[]+!+[]+!+[]+!+[]+!+[]]+[!+[]+!+[]+!+[]+!+[]+!+[]]+[
            !+[]+!+[]+!+[]+!+[]+!+[]]+[+[]]+[!+[]+!+[]+!+[]+!+[]+!+[]])
            )[v[+[]]](+([!+[]+!+[]+!+[]]+[!+[]+!+[]+!+[]+!+[]+!+[]+!+[]
            ]))+v[+!+[]](+([!+[]+!+[]+!+[]]+[!+[]+!+[]+!+[]]))
        );
    }
})(window,'CogS');

こうです。
考えずに感じてください。

4.2. function,return,;,{}の置き換え

これらは割と単純な置き換えです。
以下の要領で置換してみましょう。

置き換え前 置き換え後
function(...args) (...args)=>
return
; , (returnの後のみ除去)
{, } (, )

今回は都合よく;を忘れていたりもしていますが、
returnの後の;,にせず除去しましょう。
()を足したりする必要がある場合もあるかもしれません。

冗長になるのでソースコードは貼りません。

4.3. 変数名の除去

変数名に使える文字は_だけなので、
w,cogs,vをそれぞれ___,__,_に置き換えましょう。
置き換えたものがこちらです。

HelloWorld4-2.js
const helloWorld = ((___,__,_)=>(
    _ = [
        ([]+!+[])[+[]]+__[+!+[]]+__[!+[]+!+[]+!+[]]+([]+!+[])[+[]]+
                ([]+!+[])[+!+[]]+([![]]+[][+[]])[[+!+[]]+(+[])]+([]+[][
                +[]])[+!+[]]+__[!+[]+!+[]]
    ],
    _[+!+[]] = ___[__[!+[]+!+[]+!+[]]+(+([!+[]+!+[]+!+[]+!+[]]+[!+[]+!+
            []+!+[]+!+[]+!+[]+!+[]+!+[]+!+[]+!+[]]+[!+[]+!+[]+!+[]+!+[]
            +!+[]+!+[]+!+[]+!+[]+!+[]]+[!+[]+!+[]+!+[]+!+[]+!+[]+!+[]+!
            +[]+!+[]+!+[]]+[!+[]+!+[]]+[!+[]+!+[]+!+[]+!+[]+!+[]+!+[]+!
            +[]]+[!+[]+!+[]+!+[]+!+[]]+[!+[]+!+[]+!+[]+!+[]+!+[]+!+[]+!
            +[]+!+[]]))[_[+[]]](([!+[]+!+[]+!+[]]+[!+[]+!+[]+!+[]+!+[]+
            !+[]+!+[]]))][(+([!+[]+!+[]+!+[]+!+[]+!+[]+!+[]+!+[]]+[!+[]
            +!+[]+!+[]]+[!+[]+!+[]+!+[]+!+[]+!+[]]+[!+[]+!+[]+!+[]+!+[]
            +!+[]+!+[]+!+[]]+[+!+[]]+[!+[]+!+[]+!+[]+!+[]+!+[]+!+[]+!+[
            ]+!+[]]))[_[+[]]](+([!+[]+!+[]+!+[]]+[!+[]+!+[]+!+[]+!+[]+!
            +[]+!+[]]))+__[+[]]+(+([!+[]+!+[]]+[!+[]+!+[]]+[!+[]+!+[]
            +!+[]+!+[]]+[+!+[]]+[!+[]+!+[]+!+[]+!+[]+!+[]+!+[]+!+[]+!+[
            ]+!+[]]))[_[+[]]](+([!+[]+!+[]+!+[]]+[!+[]+!+[]+!+[]+!+[]+!
            +[]+!+[]]))+__[+[]]+(+([!+[]+!+[]+!+[]]+[+!+[]]+[!+[]+!+[
            ]+!+[]+!+[]+!+[]]+[!+[]+!+[]+!+[]+!+[]+!+[]+!+[]+!+[]+!+[]]
            +[!+[]+!+[]+!+[]+!+[]+!+[]+!+[]]))[_[+[]]](+([!+[]+!+[]+!+[
            ]]+[!+[]+!+[]+!+[]+!+[]+!+[]+!+[]]))],
    ()=>(
        ___[
            (+([!+[]+!+[]]+[!+[]+!+[]+!+[]+!+[]+!+[]+!+[]+!+[]]+[!+[]+!
            +[]+!+[]+!+[]+!+[]+!+[]]+[+!+[]]+[!+[]+!+[]]+[!+[]+!+[]+!+[
            ]+!+[]+!+[]]+[!+[]+!+[]+!+[]+!+[]]+[!+[]+!+[]+!+[]+!+[]+!+[
            ]]+[!+[]+!+[]+!+[]+!+[]+!+[]+!+[]]+[!+[]+!+[]+!+[]+!+[]+!+[
            ]+!+[]]+[!+[]+!+[]+!+[]+!+[]+!+[]+!+[]]))[_[+[]]](+([!+[]+!
            +[]+!+[]]+[!+[]+!+[]+!+[]+!+[]+!+[]+!+[]]))
        ][
            (+([!+[]+!+[]]+[!+[]+!+[]+!+[]+!+[]+!+[]+!+[]+!+[]+!+[]]+[+
            []]+[!+[]+!+[]+!+[]+!+[]+!+[]+!+[]+!+[]+!+[]+!+[]]+[!+[]+!+
            []+!+[]+!+[]+!+[]+!+[]]))[_[+[]]](+([!+[]+!+[]+!+[]]+[!+[]+
            !+[]+!+[]+!+[]+!+[]+!+[]]))
        ](
            _[+!+[]](+([!+[]+!+[]+!+[]+!+[]+!+[]+!+[]+!+[]]+[!+[]+!+[]]
            ))+(+([!+[]+!+[]+!+[]+!+[]+!+[]+!+[]]+[!+[]+!+[]+!+[]+!+[]+
            !+[]+!+[]+!+[]+!+[]]+[+!+[]]+[+!+[]]+[!+[]+!+[]+!+[]+!+[]+!
            +[]+!+[]+!+[]+!+[]]+[+[]]))[_[+[]]](+([!+[]+!+[]+!+[]]+[!+[
            ]+!+[]+!+[]+!+[]+!+[]+!+[]]))+_[+!+[]](+([!+[]+!+[]+!+[]+!+
            []]+[!+[]+!+[]+!+[]+!+[]]))+_[+!+[]](+([!+[]+!+[]+!+[]]+[!+
            []+!+[]]))+_[+!+[]](+([!+[]+!+[]+!+[]+!+[]+!+[]+!+[]+!+[]+!
            +[]]+[!+[]+!+[]+!+[]+!+[]+!+[]+!+[]+!+[]]))+(+([+!+[]]+[+!+
            []]+[!+[]+!+[]+!+[]+!+[]+!+[]]+[!+[]+!+[]+!+[]+!+[]+!+[]]+[
            !+[]+!+[]+!+[]+!+[]+!+[]]+[+[]]+[!+[]+!+[]+!+[]+!+[]+!+[]])
            )[_[+[]]](+([!+[]+!+[]+!+[]]+[!+[]+!+[]+!+[]+!+[]+!+[]+!+[]
            ]))+_[+!+[]](+([!+[]+!+[]+!+[]]+[!+[]+!+[]+!+[]]))
        )
    )
))(window,'CogS');

4.4. 空白文字の除去

あとはスペースや改行を除去すれば完成です。

HelloWorld4-3.js
const helloWorld = ((___,__,_)=>(_=[([]+!+[])[+[]]+__[+!+[]]+__[!+[]+!+[]+!+[]]+([]+!+[])[+[]]+([]+!+[])[+!+[]]+([![]]+[][+[]])[[+!+[]]+(+[])]+([]+[][+[]])[+!+[]]+__[!+[]+!+[]]],_[+!+[]]=___[__[!+[]+!+[]+!+[]]+(+([!+[]+!+[]+!+[]+!+[]]+[!+[]+!+[]+!+[]+!+[]+!+[]+!+[]+!+[]+!+[]+!+[]]+[!+[]+!+[]+!+[]+!+[]+!+[]+!+[]+!+[]+!+[]+!+[]]+[!+[]+!+[]+!+[]+!+[]+!+[]+!+[]+!+[]+!+[]+!+[]]+[!+[]+!+[]]+[!+[]+!+[]+!+[]+!+[]+!+[]+!+[]+!+[]]+[!+[]+!+[]+!+[]+!+[]]+[!+[]+!+[]+!+[]+!+[]+!+[]+!+[]+!+[]+!+[]]))[_[+[]]](([!+[]+!+[]+!+[]]+[!+[]+!+[]+!+[]+!+[]+!+[]+!+[]]))][(+([!+[]+!+[]+!+[]+!+[]+!+[]+!+[]+!+[]]+[!+[]+!+[]+!+[]]+[!+[]+!+[]+!+[]+!+[]+!+[]]+[!+[]+!+[]+!+[]+!+[]+!+[]+!+[]+!+[]]+[+!+[]]+[!+[]+!+[]+!+[]+!+[]+!+[]+!+[]+!+[]+!+[]]))[_[+[]]](+([!+[]+!+[]+!+[]]+[!+[]+!+[]+!+[]+!+[]+!+[]+!+[]]))+__[+[]]+(+([!+[]+!+[]]+[!+[]+!+[]]+[!+[]+!+[]+!+[]+!+[]]+[+!+[]]+[!+[]+!+[]+!+[]+!+[]+!+[]+!+[]+!+[]+!+[]+!+[]]))[_[+[]]](+([!+[]+!+[]+!+[]]+[!+[]+!+[]+!+[]+!+[]+!+[]+!+[]]))+__[+[]]+(+([!+[]+!+[]+!+[]]+[+!+[]]+[!+[]+!+[]+!+[]+!+[]+!+[]]+[!+[]+!+[]+!+[]+!+[]+!+[]+!+[]+!+[]+!+[]]+[!+[]+!+[]+!+[]+!+[]+!+[]+!+[]]))[_[+[]]](+([!+[]+!+[]+!+[]]+[!+[]+!+[]+!+[]+!+[]+!+[]+!+[]]))],()=>(___[(+([!+[]+!+[]]+[!+[]+!+[]+!+[]+!+[]+!+[]+!+[]+!+[]]+[!+[]+!+[]+!+[]+!+[]+!+[]+!+[]]+[+!+[]]+[!+[]+!+[]]+[!+[]+!+[]+!+[]+!+[]+!+[]]+[!+[]+!+[]+!+[]+!+[]]+[!+[]+!+[]+!+[]+!+[]+!+[]]+[!+[]+!+[]+!+[]+!+[]+!+[]+!+[]]+[!+[]+!+[]+!+[]+!+[]+!+[]+!+[]]+[!+[]+!+[]+!+[]+!+[]+!+[]+!+[]]))[_[+[]]](+([!+[]+!+[]+!+[]]+[!+[]+!+[]+!+[]+!+[]+!+[]+!+[]]))][(+([!+[]+!+[]]+[!+[]+!+[]+!+[]+!+[]+!+[]+!+[]+!+[]+!+[]]+[+[]]+[!+[]+!+[]+!+[]+!+[]+!+[]+!+[]+!+[]+!+[]+!+[]]+[!+[]+!+[]+!+[]+!+[]+!+[]+!+[]]))[_[+[]]](+([!+[]+!+[]+!+[]]+[!+[]+!+[]+!+[]+!+[]+!+[]+!+[]]))](_[+!+[]](+([!+[]+!+[]+!+[]+!+[]+!+[]+!+[]+!+[]]+[!+[]+!+[]]))+(+([!+[]+!+[]+!+[]+!+[]+!+[]+!+[]]+[!+[]+!+[]+!+[]+!+[]+!+[]+!+[]+!+[]+!+[]]+[+!+[]]+[+!+[]]+[!+[]+!+[]+!+[]+!+[]+!+[]+!+[]+!+[]+!+[]]+[+[]]))[_[+[]]](+([!+[]+!+[]+!+[]]+[!+[]+!+[]+!+[]+!+[]+!+[]+!+[]]))+_[+!+[]](+([!+[]+!+[]+!+[]+!+[]]+[!+[]+!+[]+!+[]+!+[]]))+_[+!+[]](+([!+[]+!+[]+!+[]]+[!+[]+!+[]]))+_[+!+[]](+([!+[]+!+[]+!+[]+!+[]+!+[]+!+[]+!+[]+!+[]]+[!+[]+!+[]+!+[]+!+[]+!+[]+!+[]+!+[]]))+(+([+!+[]]+[+!+[]]+[!+[]+!+[]+!+[]+!+[]+!+[]]+[!+[]+!+[]+!+[]+!+[]+!+[]]+[!+[]+!+[]+!+[]+!+[]+!+[]]+[+[]]+[!+[]+!+[]+!+[]+!+[]+!+[]]))[_[+[]]](+([!+[]+!+[]+!+[]]+[!+[]+!+[]+!+[]+!+[]+!+[]+!+[]]))+_[+!+[]](+([!+[]+!+[]+!+[]]+[!+[]+!+[]+!+[]]))))))(window,'CogS');

見れたもんじゃないので適当に改行したものがこちらです。

HelloWorld4-4.js
const helloWorld
=((___,__,_)=>(_=[([]+!+[])[+[]]+__[+!+[]]+__[!+[]+!+[]+!+[]]+([]+!+[])
[+[]]+([]+!+[])[+!+[]]+([![]]+[][+[]])[[+!+[]]+(+[])]+([]+[][+[]])[+!+[
]]+__[!+[]+!+[]]],_[+!+[]]=___[__[!+[]+!+[]+!+[]]+(+([!+[]+!+[]+!+[]+!+
[]]+[!+[]+!+[]+!+[]+!+[]+!+[]+!+[]+!+[]+!+[]+!+[]]+[!+[]+!+[]+!+[]+!+[]
+!+[]+!+[]+!+[]+!+[]+!+[]]+[!+[]+!+[]+!+[]+!+[]+!+[]+!+[]+!+[]+!+[]+!+[
]]+[!+[]+!+[]]+[!+[]+!+[]+!+[]+!+[]+!+[]+!+[]+!+[]]+[!+[]+!+[]+!+[]+!+[
]]+[!+[]+!+[]+!+[]+!+[]+!+[]+!+[]+!+[]+!+[]]))[_[+[]]](([!+[]+!+[]+!+[]
]+[!+[]+!+[]+!+[]+!+[]+!+[]+!+[]]))][(+([!+[]+!+[]+!+[]+!+[]+!+[]+!+[]+
!+[]]+[!+[]+!+[]+!+[]]+[!+[]+!+[]+!+[]+!+[]+!+[]]+[!+[]+!+[]+!+[]+!+[]+
!+[]+!+[]+!+[]]+[+!+[]]+[!+[]+!+[]+!+[]+!+[]+!+[]+!+[]+!+[]+!+[]]))[_[+
[]]](+([!+[]+!+[]+!+[]]+[!+[]+!+[]+!+[]+!+[]+!+[]+!+[]]))+__[+[]]+(+([!
+[]+!+[]]+[!+[]+!+[]]+[!+[]+!+[]+!+[]+!+[]]+[+!+[]]+[!+[]+!+[]+!+[]+!+[
]+!+[]+!+[]+!+[]+!+[]+!+[]]))[_[+[]]](+([!+[]+!+[]+!+[]]+[!+[]+!+[]+!+[
]+!+[]+!+[]+!+[]]))+__[+[]]+(+([!+[]+!+[]+!+[]]+[+!+[]]+[!+[]+!+[]+!+[]
+!+[]+!+[]]+[!+[]+!+[]+!+[]+!+[]+!+[]+!+[]+!+[]+!+[]]+[!+[]+!+[]+!+[]+!
+[]+!+[]+!+[]]))[_[+[]]](+([!+[]+!+[]+!+[]]+[!+[]+!+[]+!+[]+!+[]+!+[]+!
+[]]))],()=>(___[(+([!+[]+!+[]]+[!+[]+!+[]+!+[]+!+[]+!+[]+!+[]+!+[]]+[!
+[]+!+[]+!+[]+!+[]+!+[]+!+[]]+[+!+[]]+[!+[]+!+[]]+[!+[]+!+[]+!+[]+!+[]+
!+[]]+[!+[]+!+[]+!+[]+!+[]]+[!+[]+!+[]+!+[]+!+[]+!+[]]+[!+[]+!+[]+!+[]+
!+[]+!+[]+!+[]]+[!+[]+!+[]+!+[]+!+[]+!+[]+!+[]]+[!+[]+!+[]+!+[]+!+[]+!+
[]+!+[]]))[_[+[]]](+([!+[]+!+[]+!+[]]+[!+[]+!+[]+!+[]+!+[]+!+[]+!+[]]))
][(+([!+[]+!+[]]+[!+[]+!+[]+!+[]+!+[]+!+[]+!+[]+!+[]+!+[]]+[+[]]+[!+[]+
!+[]+!+[]+!+[]+!+[]+!+[]+!+[]+!+[]+!+[]]+[!+[]+!+[]+!+[]+!+[]+!+[]+!+[]
]))[_[+[]]](+([!+[]+!+[]+!+[]]+[!+[]+!+[]+!+[]+!+[]+!+[]+!+[]]))](_[+!+
[]](+([!+[]+!+[]+!+[]+!+[]+!+[]+!+[]+!+[]]+[!+[]+!+[]]))+(+([!+[]+!+[]+
!+[]+!+[]+!+[]+!+[]]+[!+[]+!+[]+!+[]+!+[]+!+[]+!+[]+!+[]+!+[]]+[+!+[]]+
[+!+[]]+[!+[]+!+[]+!+[]+!+[]+!+[]+!+[]+!+[]+!+[]]+[+[]]))[_[+[]]](+([!+
[]+!+[]+!+[]]+[!+[]+!+[]+!+[]+!+[]+!+[]+!+[]]))+_[+!+[]](+([!+[]+!+[]+!
+[]+!+[]]+[!+[]+!+[]+!+[]+!+[]]))+_[+!+[]](+([!+[]+!+[]+!+[]]+[!+[]+!+[
]]))+_[+!+[]](+([!+[]+!+[]+!+[]+!+[]+!+[]+!+[]+!+[]+!+[]]+[!+[]+!+[]+!+
[]+!+[]+!+[]+!+[]+!+[]]))+(+([+!+[]]+[+!+[]]+[!+[]+!+[]+!+[]+!+[]+!+[]]
+[!+[]+!+[]+!+[]+!+[]+!+[]]+[!+[]+!+[]+!+[]+!+[]+!+[]]+[+[]]+[!+[]+!+[]
+!+[]+!+[]+!+[]]))[_[+[]]](+([!+[]+!+[]+!+[]]+[!+[]+!+[]+!+[]+!+[]+!+[]
+!+[]]))+_[+!+[]](+([!+[]+!+[]+!+[]]+[!+[]+!+[]+!+[]]))))))
(window,'CogS');

見れたもんじゃないですね。
ソースコードにこんなのが書いてあったら
見ようと思った人をげんなりさせること間違いなしです。

ともあれこれで当初の目的は達成されました。

5. 最後に

ところで、なんでこんなことしてたんでしたっけ?

そう、難読化です。
最初のモチベーションは難読化だったのでタグもつけてはいますが、
実は難読化としての効果は多分薄いです。

というのも、ソースコードの大部分を占めるのが数字の記述なわけですが、
今回は自前の関数で雑に出力しているせいで、デコードが割と簡単にできます。

なので、ソースを見たい人をげんなりさせる程度の効果はありますが、
中身を隠す能力はそこまで高くありません。
こんなに手間かけて難読化してる暇があったら、
別のことをしたほうが有意義だと思います。

あと、ホントは'CogS'という文字列になぞらえて、
インデントを入れて歯車状に並べるプログラムを作っていたのですが、
完全に忘却していてこのままだと完成しない気がしたので
諦めて後編を投稿しました。

半年近くお待たせして申し訳ありませんでした。

それではまた。
しばらくはこんな重いネタ書きません。

0
1
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
1