1
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 5 years have passed since last update.

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

Last updated at Posted at 2018-10-29

半年近く前に書かれた[前回][prev]のあらすじ。
[prev]:https://qiita.com/po_tau_feu/items/fb496ec78d0d6886a928

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

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

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

1
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
1
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?