#PHP 7, 6 characters
PHP 7, 6 characters
'().;^
The idea is that it's possible to execute arbitrary code using the following construction:
('create_function')('','<code>')();
eval
wouldn't work here, because it's a language construct and cannot be called using variable functions.
create_function
and the code could be written as a concatenation of bitwise XORs of available characters:
(<char1_1>^<char1_2>^...).(<char2_1>^<char2_2>^...)...
Using ().;^
for <charX_Y>
, we can get
()./:;<=JKLMXY^_bcdepqvw
and some unprintable characters. It's not enough, but now we can call 'eXp'()
and get some numeric characters too:
''.'eXp'('eXp'('')) -> 1
''.'eXp'('eXp'('eXp'(''))) -> 2.718281828459
''.'eXp'('eXp'('eXp'('eXp'('eXp'(''))))) -> 3814279.1047602
It gives us 1
, 2
and 3
(other characters will be ignored by XOR, if the other string is one character long). From ().;^123
we can now generate all the ASCII charset.