-
Data: 2017-03-28 09:58:30
Temat: Re: popaprany JS
Od: Roman Tyczka <n...@b...no> szukaj wiadomości tego autora
[ pokaż wszystkie nagłówki ]On Mon, 27 Mar 2017 20:42:41 +0200, bartekltg wrote:
>> function(e, s, i)
>> {
>> var n, a, o = "",
>> l = t.isArray(e),
>> r = 0;
>> for (n = 0, a = s.length; n < a; n += 1) "+" === s.charAt(n) ? o +=
>> i.charAt(n) : "*" === s.charAt(n) && (o += l ? e[r++].value :
>> e.charAt(r++));
>> return o
>> }
> Jeśli to dobrze rozumiem, to genialny przykład "chackerstwa" (tak, ch;))
Być może to wynik pracy jakiegoś obfuscatora, udany wynik jak widać.
> "+" === s.charAt(n) ? o += i.charAt(n)
>
> Na razie prosto. Operator trójargumentowy ?: jak w c++.
>
> Czy n-ta (kto normalny iteruje po n, czyję się zgorszony!:)
> literaka s to "+"
> (porównujemy ===, bo == jest miękkie :)
>
> Jeśli tak, to dodajemy literkę na koniec o,
> o += i.charAt(n)
> (nie wynika nic z tego, co jest po :)
> jeśli nie, to (co innego, o tym poźniej).
>
> Teraz zaczynają się schody, jeśli s[n] nie ejst plusem,
> wykona się to:
>
> "*" === s.charAt(n) && (o += l ? e[r++].value : e.charAt(r++))
>
> Nieco rozszerzając:
>
> "*" === s.charAt(n)
> &&
> (o += l ? e[r++].value : e.charAt(r++))
>
> Sztuczka polega na tym, że to wyrażenie wylicza
> się do boola. Jeśli s[n] to '*', zadziała
> leniwa ewaluacja i nawias się nie wykona.
> Jeśli jest czym innym niż *, mamy (strzelam dodatkowe
> nawiasowanie):
Jeśli jest cymś innym? Czy raczej jeśli jest * właśnie?
[...]
> Ostatecznie strzelałbym, że to znaczy(to nie JS:)
>
> if ("+"== s.charAt(n))
> o += i.charAt(n);
> else if ('*' ~= a.charAt(n) )
> o+ = (l ? e[r++].value : e.charAt(r++) );
~= oznacza różny?
Jeśli tak to warunek byłby dziwny:
jeśli n-ty znak jest + to zrób to,
w przeciwnym wypadku, jeśli n-ty znak jest różny od * (czyli znów równy +)
to zrób tamto.
I chyba literówka, nie a.charAt(n) tylko s.charAt(n).
> A, drobna uwaga, nie znam JS ;-)
Tak czy owak wielkie dzięki za pochylenie się nad tym ścierwem, dużo mi
pomogłeś :-)
--
pozdrawiam
Roman Tyczka
Następne wpisy z tego wątku
- 28.03.17 12:04 bartekltg
- 28.03.17 16:56 Roman Tyczka
Najnowsze wątki z tej grupy
- Popr. 14. Nauka i Praca Programisty C++ w III Rzeczy (pospolitej)
- Arch. Prog. Nieuprzywilejowanych w pełnej wer. na nowej s. WWW energokod.pl
- 7. Raport Totaliztyczny: Sprawa Qt Group wer. 424
- TCL - problem z escape ostatniego \ w nawiasach {}
- Nauka i Praca Programisty C++ w III Rzeczy (pospolitej)
- testy-wyd-sort - Podsumowanie
- Tworzenie Programów Nieuprzywilejowanych Opartych Na Wtyczkach
- Do czego nadaje się QDockWidget z bibl. Qt?
- Bibl. Qt jest sztucznie ograniczona - jest nieprzydatna do celów komercyjnych
- Co sciaga kretynow
- AEiC 2024 - Ada-Europe conference - Deadlines Approaching
- Jakie są dobre zasady programowania programów opartych na wtyczkach?
- sprawdzanie słów kluczowych dot. zła
- Re: W czym sie teraz pisze programy??
- Re: (PDF) Surgical Pathology of Non-neoplastic Gastrointestinal Diseases by Lizhi Zhang
Najnowsze wątki
- 2025-01-06 Popr. 14. Nauka i Praca Programisty C++ w III Rzeczy (pospolitej)
- 2025-01-06 Ostrów Wielkopolski => Area Sales Manager OZE <=
- 2025-01-06 Do IO i innych elektrooszolomow, tu macie prawdziwe smrody
- 2025-01-06 Białystok => Full Stack .Net Engineer <=
- 2025-01-06 Kraków => Business Development Manager - Network and Network Security
- 2025-01-06 Katowice => Regionalny Kierownik Sprzedaży (OZE) <=
- 2025-01-06 Warszawa => Spedytor Międzynarodowy <=
- 2025-01-06 Lublin => Programista Delphi <=
- 2025-01-06 Gdańsk => Specjalista ds. Sprzedaży <=
- 2025-01-06 śnieg
- 2025-01-05 Żarówka do lampy z czujnikiem ruchu
- 2025-01-05 Rozkręcają się
- 2025-01-04 pozew za naprawę sprzętu na youtube
- 2025-01-04 gasik
- 2025-01-04 13. Raport Totaliztyczny: Powszechna Deklaracja Praw Człowieka Nie Chroni Przed Wyzyskiem Ani Przed Eksploatacją