初めに
3限目の復習をしっかりとしておきましょう
3限目では以下のコードによりJSFで作ったStringの任意のコードの実行ができることを学びました
[]['at']['constructor'](/*任意のString型で記述されたコード*/)()
第4限の内容
JSFでいろいろなコードを実行できるようになるために、全ての小文字の英字を取得していきます
それに必要な
function String() { [native code] }
constructor以外の部分を見るとかなり短くまとまっているコードで取得できます
(([]+[])['constructor']+[])
//'function String() { [native code] }'
(([]+[])[([][[((![]+[])[+!![]])+((!![]+[])[+[]])]]+[])[+!![]+!![]+!![]]+([][[((![]+[])[+!![]])+((!![]+[])[+[]])]]+[])[+!![]+!![]+!![]+!![]+!![]+!![]]+(([][[]])+[])[+!![]]+(![]+[])[+!![]+!![]+!![]]+(!![]+[])[+[]]+(!![]+[])[+!![]]+(([]+[[]])[+[]]+[])[+[]]+([][[((![]+[])[+!![]])+((!![]+[])[+[]])]]+[])[+!![]+!![]+!![]]+(!![]+[])[+[]]+([][[((![]+[])[+!![]])+((!![]+[])[+[]])]]+[])[+!![]+!![]+!![]+!![]+!![]+!![]]+(!![]+[])[+!![]]]+[])
//'function String() { [native code] }'
ここから新しく手に入れられる文字は
(([]+[])[([][[((![]+[])[+!![]])+((!![]+[])[+[]])]]+[])[+!![]+!![]+!![]]+([][[((![]+[])[+!![]])+((!![]+[])[+[]])]]+[])[+!![]+!![]+!![]+!![]+!![]+!![]]+(([][[]])+[])[+!![]]+(![]+[])[+!![]+!![]+!![]]+(!![]+[])[+[]]+(!![]+[])[+!![]]+(([]+[[]])[+[]]+[])[+[]]+([][[((![]+[])[+!![]])+((!![]+[])[+[]])]]+[])[+!![]+!![]+!![]]+(!![]+[])[+[]]+([][[((![]+[])[+!![]])+((!![]+[])[+[]])]]+[])[+!![]+!![]+!![]+!![]+!![]+!![]]+(!![]+[])[+!![]]]+[])[+!![]+!![]+!![]+!![]+!![]+!![]+!![]+!![]+!![]]
//'S'
(([]+[])[([][[((![]+[])[+!![]])+((!![]+[])[+[]])]]+[])[+!![]+!![]+!![]]+([][[((![]+[])[+!![]])+((!![]+[])[+[]])]]+[])[+!![]+!![]+!![]+!![]+!![]+!![]]+(([][[]])+[])[+!![]]+(![]+[])[+!![]+!![]+!![]]+(!![]+[])[+[]]+(!![]+[])[+!![]]+(([]+[[]])[+[]]+[])[+[]]+([][[((![]+[])[+!![]])+((!![]+[])[+[]])]]+[])[+!![]+!![]+!![]]+(!![]+[])[+[]]+([][[((![]+[])[+!![]])+((!![]+[])[+[]])]]+[])[+!![]+!![]+!![]+!![]+!![]+!![]]+(!![]+[])[+!![]]]+[])[+!![]+!![]+!![]+!![]+!![]+!![]+!![]+!![]+!![]+!![]+!![]+!![]+!![]+!![]]
//'g'
このS
が非常に有用です
実際に何ができるかみていきましょう
Num['toString'] (36)
S
を使って何をやるか?
その答えはtoString
です
toStringを使ったところで数字をStringの数字にできるだけじゃねーか
と思う方々もいるかもしれません
しかし、このtoString
の後の(36)
が非常に大切なのです
toStringの引数にNをいれると、N進数に直してくれます
例えば
"00"+49151['toString'](16)
//00bfff
とやってあげれば
このような色になる16進数が帰ってきます
そしてかんの言い方はお気づきかもしれませんが、16進数は数字を
0,1,2,3,4,5,6,7,8,9
a,b,c,d,e,f
のように0~9
だけではなく、a~f
までの英語も使って表します
そして36
を引数に入れたとなると
0,1,2,3,4,5,6,7,8,9
a,b,c,d,e,f,g,h,i,j,k,l,m,n,
o,p,q,r,s,t,u,v,w,x,y,z
の36文字で表されます
0~9
はそのままで、
10~35はa~z
に対応して変換されます
つまり
10['toString'](36)
//'a'
11['toString'](36)
//'b'
12['toString'](36)
//'c'
13['toString'](36)
//'d'
14['toString'](36)
//'e'
.
.
.
33['toString'](36)
//'x'
34['toString'](36)
//'y'
35['toString'](36)
//'z'
36['toString'](36)
//'10'
というように出力されます
このようにして全ての英字(小文字)を得ることができます
最後になりますが['toString'](36)
をJSFで書くとこのようになります
/*Number*/[(!![]+[])[+[]]+([][[((![]+[])[+!![]])+((!![]+[])[+[]])]]+[])[+!![]+!![]+!![]+!![]+!![]+!![]]+(+[!![]]+([]+[])[([][[((![]+[])[+!![]])+((!![]+[])[+[]])]]+[])[+!![]+!![]+!![]]+([][[((![]+[])[+!![]])+((!![]+[])[+[]])]]+[])[+!![]+!![]+!![]+!![]+!![]+!![]]+(([][[]])+[])[+!![]]+(![]+[])[+!![]+!![]+!![]]+(!![]+[])[+[]]+(!![]+[])[+!![]]+(([]+[[]])[+[]]+[])[+[]]+([][[((![]+[])[+!![]])+((!![]+[])[+[]])]]+[])[+!![]+!![]+!![]]+(!![]+[])[+[]]+([][[((![]+[])[+!![]])+((!![]+[])[+[]])]]+[])[+!![]+!![]+!![]+!![]+!![]+!![]]+(!![]+[])[+!![]]]+[])[(+!![])+(+!![]+!![]+[])]+(!![]+[])[+[]]+(!![]+[])[+!![]]+(([]+[[]])[+[]]+[])[+!![]+!![]+!![]+!![]+!![]]+(([][[]])+[])[+!![]]+(([]+[])[([][[((![]+[])[+!![]])+((!![]+[])[+[]])]]+[])[+!![]+!![]+!![]]+([][[((![]+[])[+!![]])+((!![]+[])[+[]])]]+[])[+!![]+!![]+!![]+!![]+!![]+!![]]+(([][[]])+[])[+!![]]+(![]+[])[+!![]+!![]+!![]]+(!![]+[])[+[]]+(!![]+[])[+!![]]+(([]+[[]])[+[]]+[])[+[]]+([][[((![]+[])[+!![]])+((!![]+[])[+[]])]]+[])[+!![]+!![]+!![]]+(!![]+[])[+[]]+([][[((![]+[])[+!![]])+((!![]+[])[+[]])]]+[])[+!![]+!![]+!![]+!![]+!![]+!![]]+(!![]+[])[+!![]]]+[])[+!![]+!![]+!![]+!![]+!![]+!![]+!![]+!![]+!![]+!![]+!![]+!![]+!![]+!![]]]((+!![]+!![]+!![])+(+!![]+!![]+!![]+!![]+!![]+!![]+[]))
最後に
今回も短くなってしまい申し訳ございません
次回は[]['at']['constructor']の解説をする予定です
反応本当に嬉しいですありがとうございます
前回毎日投稿やると言いましたがいきなり1分遅れてしまいました...
明日はもう少し早めに投稿します
時間割
1限目
JSF**k講座1限目【基礎講座】
2限目
JSF**k講座2限目【最初の文字たち】
3限目
JSF**k講座3限目【関数の実行】
4限目
JSF**k講座4限目【全ての英字(小文字)】(ここ)
チートシート
JSFチートシート