neige d'aoust

knowledge, art, and other stuff

User Tools

Site Tools


symbolicjs

Differences

This shows you the differences between two versions of the page.

Link to this comparison view

Both sides previous revisionPrevious revision
symbolicjs [2025/05/12 03:06] Yukisymbolicjs [2025/05/12 14:37] (current) Yuki
Line 33: Line 33:
  
 ===== Build a basic alphabet ===== ===== Build a basic alphabet =====
 +
 +We can use variables, but only those whose name contains `$` and `_` so we'll use some sort of morse code-based encoding, with `$`=>`.` and `_`=>`-`, and a prefix to differentiate lowercase and uppercase:
  
 ^ ^code^ ^ ^code^
Line 55: Line 57:
 |O|''%%____=`${{}}`[-~-~-~-~-~-~-~!``]%%''| |O|''%%____=`${{}}`[-~-~-~-~-~-~-~!``]%%''|
 |space|''%%____$=`${{}}`[-~-~-~-~-~-~!``]%%''| |space|''%%____$=`${{}}`[-~-~-~-~-~-~!``]%%''|
 +
 +Actually, we can just use the ''[a,b]="ab"'' notation to make it way shorter. Note that using ''+[]'' or ''+``'' is now shorter due to the lack of need of parentheses.
  
 <code javascript> <code javascript>
Line 65: Line 69:
 </code> </code>
  
-===== Build a function =====+===== Execute arbitrary code ===== 
 + 
 +Now we have enough letters to execute arbitrary code: 
 + 
 +<code javascript> 
 +$=(_=>_)["constructor"] // returns Function 
 +</code>
  
 <code javascript> <code javascript>
 $=(_=>_)[$_$_$+$___+$_$+$$$$+$_+$$_$+$$$_+$_$_$+$_+$___+$$_$] $=(_=>_)[$_$_$+$___+$_$+$$$$+$_+$$_$+$$$_+$_$_$+$_+$___+$$_$]
 +</code>
 +
 +===== Build more letters =====
 +
 +We can then use `btoa` to get a lot of the letters we're missing:
 +
 +<code javascript>
 +[K,C,g,h]=Function("return btoa`((!`")() // returns 'KCgh'
 +</code>
 +
 +<code javascript>
 +[,,$__$,$$$$$]=$($$_$+$$+$_+$$$_+$$_$+$_$+____$+$_$$$+$_+$___+$$_+`\`((!\``)()
 </code> </code>
  
Line 74: Line 96:
  
 <code javascript> <code javascript>
-[,,$__$,$$$$$]=$(`${$$_$+$$+$_+$$$_+$$_$+$_$+____$+$_$$$+$_+$___+$$_}\`((!\``)()+_=Function("return this")() 
 +</code> 
 + 
 +<code javascript>
 _=$($$_$+$$+$_+$$$_+$$_$+$_$+____$+$_+$$$$$+$$$+$$$$)() _=$($$_$+$$+$_+$$$_+$$_$+$_$+____$+$_+$$$$$+$$$+$$$$)()
 +</code>
 +
 +===== Access global variables and run some code =====
 +
 +<code javascript>
 +_["console"]["log"]("hello")
 +</code>
 +
 +<code javascript>
 +_[$_$_$+$___+$_$+$$$$+$___+$$_$$+$$][$$_$$+$___+$__$]($$$$$+$$+$$_$$+$$_$$+$___)
 </code> </code>
symbolicjs.txt · Last modified: 2025/05/12 14:37 by Yuki