Portál AbcLinuxu, 18. listopadu 2025 22:30
Martin Kleppe ukázal, jak lze obfuskovat JavaScript pouze pomocí dvou různých znaků. Podrobný rozbor a online obfuskace do hranatých závorek na jeho stránce.
Tiskni
Sdílej:
Osm bajtů je 64bitové číslo. Můžeš teoreticky udělat vícebitová čísla a tím mít i víc bajtů. Jednoduché to tedy je, akorát extrémně neúsporné – ale jde to.
Např. číslo 18374705467705266500 jsou bajty FF 00 11 44 FF 00 11 44. A tohle číslo lze vyjádřit patřičným opakováním toho jednoho znaku. Té neúspornosti se pak můžeš částečně zbavit kompresí :-)
$ for i in $(seq 1000); do echo -n 1; done | wc
0 1 1000
$ for i in $(seq 1000); do echo -n 1; done | gzip | wc
0 2 29
Obfuskace slouží k tomu, aby se nešlo dostat k původnímu zdrojovému kódu a bylo co nejobtížnější kód číst a upravovat. (nechme teď stranou, že je to pochybný cíl) Tomuhle nástroji se to moc nedaří, protože v něm stačí nahradit eval za alert a původní zdrojový kód to zobrazí krásně čitelný.
{}, a pro každé N pak např. jednoprvkovou množinu {(N-1)}.
Tj. 0 == {}; 1 == {{}}; 2 == {{{}}}; 3 == {{{{}}}} atd.
Je vidět, že takto lze kódovat i každá posloupnost integerů, a protože každý program v libovolném jazyce (či data) na počítači tak můžu chápat, není možnost takové kódování provádět absolutně nijak překvapivá.
ISSN 1214-1267, (c) 1999-2007 Stickfish s.r.o.