« 1 2 3 »
Autor Zpráva
peta
Profil
shaggy: Fakt dobry matros.
Kazdopadne, jak uz jsem rikal, presne tyhle techniky pouzivaji viry. Verim, ze vic nez jeden bezp. technik od policie tohle forum sleduje, mozna se i ucastni. Uz jen pro velke mnozstvi lidi.

IdemeNaHavaj Dik, ja nic takoveho nepotrubuji Ten muj programek se snazi z js odbourat komentare, nez ho prozene kompresi, ale neni to uplne vyresene, treba komentar v textu a tak.
"The compression process is slow but the decompression is very fast"
To taky zalezi na tom, jakym zpusobem to dela a jak velky je obsah, ze jo? Nemuzes ocekavat, ze 100k kodu ti to zabali javascriptem pres prohlizec stejne rychle jako winrar. Ten muj program zip neresi, ale ma pevne omezeni tusim kolem 65.535 slov. Proti zipu ty slova tam dam ty slova a pak to jednoduse nahrazuji. Komprese a dekomprese je pak rychla. Ale klidne jsem mohl pouzit zip, algoritmus funguje podobne, jen nepotrebuje ty slova.

Ja v tom nevidim ale prinos. Kdyz nekdo chce pouzit tvuj kod, staci mu pouzit zkomrimovanou verzi primo z tve stranky a kdyz chce zjistit, jak funguje, snadno si to rozkoduje a pres docuent.write vepise treba do <textarea> nebo <pre>.
Pokud nepouzijes kompresi, tak jedine, ceho docilis, ze kod je vetsi, dele se stahuje, dele brzdi linky, muze byt online mene uzivatelu. Kdyz pouzijes kompresi, tak je treba dekompresni algoritmus a zaplacavas pamet prohlizece, uzivatelovo pc a brzdis mu zobrazovani strany.

Tvuj kod neni nic extra, co by si sikovnejsi clovek neumel vygooglovat jidne nebo napsat sam.
Jeste bys mohl pouzit serverovy gzip pro rychlost, ale ten prohlizec dekoduje a zobrazi nesifrovany.
Chamurappi
Profil
Reaguji na IdemeNaHavaje:
A podelíš sa o to? :)
Ne.


Reaguji na peta:
Verim, ze vic nez jeden bezp. technik od policie tohle forum sleduje, mozna se i ucastni.
Ahá… hmm… to je krásně konspirační. Kdopak z nás to asi je?
_es
Profil
Chamurappi:
Ešte by si mal odhaliť minimálne jedného ďalšieho („vic nez jeden“).
pako
Profil *
Je treba vcas odhalit a rozryvat podvratne trendy vo webdesigne.

A samozrejme najst nieco na prispievatelov. Ako inak by sme vedeli, ze chamurappimu za hudby beethovena je treba pustat obrazky berners-leeho a zfusovany jquery kod.
aDAm
Profil
Chamurappi:
tvl ještě než sem dočet tu větu tak sem tipoval že zmíníš mě...tak ti díky, teď mě kvůli tobě přeloží na jiné pracoviště.
DarkMeni
Profil
Chamurappi:
tipnu si, že třeba DarkMeni
Proč? :-D Protože sem si to zobrazil, ale nic sem nenapsal?
Tohle se může dost snadno nasměrovat jakože mimo téma
Jo takle, JavaScript, dobře ty! :-D
habendorf
Profil
[#2]

Chamurappi:
Ať je trochu sranda, tipnu si, že třeba Chamurappi :-)

Komu jsem to zas ukradl identitu? ;o)
Radek9
Profil
IdemeNaHavaj:
a celkom dlho to tam niečo robilo
Pokud to celkem dlouho něco dělá při enkódování, bude to jistě stejně dlouho dělat i při dekódování. Ztížíš to sice i uživatelovi, ale hlavně prohlížeči. peta navíc správně poznamenal, že podobné kódování používají viry, prohlížeč by teoreticky mohl kód rovnou zahodit. (Nemám to podložené, je to osobní názor, tak mě nekamenujte. :-))

ano to už viem že ide, len na oko je to aspoň bordel.
Bordel na oko můžeš dost dobře udělat běžnou minifikací. Kdyby po tobě někdo kód luštil, musel by sakra přemýšlet, co která proměnná či funkce dělá, pokud by se všechny jmenovaly a, b, c, d atd. Když navíc ještě na pár míst do kódu přidáš např. test domény, na které script běží, bude mít potenciální zloděj celkem práci to najít. Nespoléhej se ale na řešení používající eval. Je to pomalé a zbytečné. Ten kód, který tam jde, se totiž místo evalu dá předat třeba do document.write.

Chamurappi:
Nejdříve jsem chtěl napsat, že „jsem byl odhalen“. Potom jsem si všiml příspěvku od aDAma a DarkMeniho. Vtipné. :-)
_es
Profil
Radek9:
peta navíc správně poznamenal, že podobné kódování používají viry, prohlížeč by teoreticky mohl kód rovnou zahodit.
To by potom prehliadače mohli „zahadzovať“ trebárs aj minifikovanú verziu jQuery knižnice či iného skriptu - čo zjavne nenastáva.
Radek9
Profil
_es:
Já nemyslel minifikaci. Ta je naprosto v pořádku. Spíš ohromné možství zakódovaného kódu předaného do evalu. Ale jak říkám, nevím přesně, čím se prohlížeče v tomhle řídí. Minimálně Chrome mě na některých stránkách s podobným kódem varoval, jindy zase ne.
Joker
Profil
Chamurappi [#2]:
To je dobrý, tohle :-D

peta:
Verim, ze vic nez jeden bezp. technik od policie tohle forum sleduje
Jo, jasně.

Radek9:
Spíš ohromné možství zakódovaného kódu předaného do evalu.
Nevím jak pro vyhledávače, ale je fakt, že pro mě kód který vypadá jako eval(zakódovaný text) je automaticky podezřelý.
margin
Profil *
Joker:
To je dobrý, tohle
Jak dobrý? Kolegové Policie nyní hodlat řešit 25 trestních oznámení na vyzrazení tajemství a stále to roste ;-)
_es
Profil
Joker:
pro mě kód který vypadá jako eval(zakódovaný text) je automaticky podezřelý
To by bol potom musel byť „podozrivý“ aj kód <script>zakódovaný text</script>. „Podozrivosť“ by mala závisieť od toho, čo sa kód snaží robiť a nie z toho, ako je nečitateľný.
abc
Profil
Ať je trochu sranda, tipnu si, že třeba abc :-)
Přesně tak a IdemeNaHavaj to má spočítaný...
IdemeNaHavaj
Profil
Minifikovať som sa to snažil, ale tam je ani niečo také že
API.sendChat(blabla) a prepísalo sa mi aj to ".sendChat()" na napr. API.a() a stránka sa snažila rozoznať a() a písala mi do konzoly že je to udefined či čo.
Fisir
Profil
Uživateli IdemeNaHavaj, podle vašich záznamů jste potenciálně podezřelý a to z důvodu přílišného zaobírání se problematikou deobfuskace kódů. Tímto děkujeme uživateli peta, který na celý incident upozornil. Záznamy uživatelů shaggy a peta byly z důvodu zmínky o „matroši“ také aktualizovány.

Jak zde již bylo zmíněno, takovéto praktiky používají škodlivé kódy, proto jsou občas některými jednoduchými antiviry blokovány. Je sice pravda, že obfuskace může sloužit i k dobrým účelům, například komprimace kódu, ale z vašeho kódu je jasné, že se o komprimaci nepokoušíte, zakódovat samotné znaky na jejich delší variantu nedává smysl.

Dále bych jako odborník na výpočetní techniku chtěl podotknout, že na pomalejších strojích může trvat zpracování takového kódu déle. Co se týče rozkódování, čili deobfuskace – je to poměrně jednoduché. Existuje na to doplněk do Firefoxu, případně můžete JavaScript deobfuskovat jednoduše na webu pomocí jakéhokoli nástroje pro zpřehlednění JavaScript kódu. Každopádně, nemá smysl obfuskovat za cílem zdržet potenciálního zloděje kódů. Pro něj bude takovéhle opatření jenom pársekundovým zpožděním.

Chamurappi, zkoušel jsem spoustu kombinací pro možný BB kód, ale to upravuješ databázi nebo mám hledat dál? :-)
_es
Profil
Fisir:
zkoušel jsem spoustu kombinací pro možný BB kód
Nie si administrátor fóra: Statistika (Predpokladám, že také „finty“ asi nemôžu ani moderátori.).
Kubo2
Profil
peta:
Verim, ze vic nez jeden bezp. technik od policie tohle forum sleduje, mozna se i ucastni. Uz jen pro velke mnozstvi lidi.
Berieš niečo? Kvôli čomu by sme to robili?

Chamurappi:
Kdopak z nás to asi je? Ať je trochu sranda, tipnu si, že třeba Kubo2 :-)
No to je zaujímavé, ako si na to prišiel? To som bol až tak nápadný? :-)
Budem v budúcnosti musieť byť obozretnejší pri plnení takých nebezpečných úloh, ako prvý štrnásťročný člen Policajného zboru v Devínskej Novej Vsi na Oddelení pre sledovanie internetových fór a diskusií :-D
A Fisir, ako môj najlepší a najnápomocnejší starší kolega, je mojím veľkým vzorom v mojej dnešnej a nasledovnej policajnej kariére, že áno? :-D

Ak ma teda neprepustia kvôli môjmu verejnému priznaniu tu na DJPW :-)

Joker:
Chamurappi [#2]:
To je dobrý, tohle :-D
Ja na tom príliš veľa pozitív nevidím - ak ma prepustia, zostanem na mizine a kto uživí rodinu? :/
Fisir
Profil
Reaguji na _es:
To mi bylo jasné, ale co kdyby náhodou ;-).

Reaguji na Kuba2:
že áno?
Jistě, můj učedníku.



Mmmohl by nás tu někdo promazat ;-)?
1Pupik1989
Profil
Chamurappi: Krásné textové zrcadlo. :D

Jinak mám pocit že minifikaci a obfuskaci kódu jsem řešil tak před měsícem. Nakonec jsem zjistil že je to blbost. Když už jsem ale uměl sestavit AST, tak to posloužilo jako vyhledavač chyb. Třeba když mám nadeklarovanou proměnnou a nevyužívám jí.
Str4wberry
Profil
Neřekl bych že je to blbost. Ztížit čtení skriptu je docela dobrá ochrana před tím, aby si konkurence jen tak nemohla skript zkopírovat a snadno upravit. Trochu pokročilejší obfuskací se skutečně dá docílit stavu, kdy orientace a úpravy kódu jsou obtížnější než začít od nuly. Ono třeba jenom nějaké zmršení identifikátorů (názvů proměnných a funkcí) výrazně sníží čitelnost kódu a to žádný dekodér nevrátí.

Kromě ochrany skriptů před konkurencí, si také obfuskací může zaměstnanec zajistit svou nevyhoditelnost. :–)
1Pupik1989
Profil
Respektive minifikaci jsem si nechal, ale obfuskaci zahodil. Zkoušel jsem vše možné, ale vżdy jsem to rozluštil. Možná příčinou bude, že jsem ten kód znal. Schválně sem někdo hoďte kus obfuskovaného kódu, třeba mě to i přesvědčí změnit názor a nebudu se nudit. :)

Zkoušel jsem huffmana s fibonaccim a lz77, jenže jak to jednou projde kompresí, tak to jde i dekomprimovat.

//edit: Vlastně to co píšu není obfuskace, ale komprimace.
Radek9
Profil
Str4wberry:
Ztížit čtení skriptu je docela dobrá ochrana před tím, aby si konkurence jen tak nemohla skript zkopírovat a snadno upravit.
Ano, ale striktně bych rozlišoval nějaké zašifrování kódu a minifikaci. Pokud se upraví všechny identifikátory, kód se zabundluje do jednoho souboru a Closure Compilerem se oseká o nepotřebné a nevyužité části, bude pro potenciálního zloděje prakticky nepoužitelný i když ten kód vlastně přímo uvidí. Nebude vědět, k čemu jaká část slouží, a co je univerzální.

1Pupik1989:
Možná příčinou bude, že jsem ten kód znal.
Příčinou je, že pokud kód pro rozšifrování zná prohlížeč, zná ho i uživatel. ;-)
joe
Profil
Zkoušel jste někdo Google Compiler? (tedy pro obfuskaci, ikdyž otázka tématu je jiná)

Chamurappi:
tipnu si, že třeba joe
Trefil ses :-)
Str4wberry
Profil
Reakce na 1Pupika1989:
Živá ukázka

Reakce na Radka9:
Ano, ale striktně bych rozlišoval nějaké zašifrování kódu a minifikaci.
Tak zrovna úprava identifikátorů medle patří do minifikace. Možná tedy spíš rozlišovat mezi vratnou a nevratnou změnou.
1Pupik1989
Profil
Mezi námi, ukažte obfuskovaný kód, který bude za to stát rozluštit. Pokud ano, tak si ho už každý odvodí a jestli ne, tak nedej bože, napíše lepší.

Takže pro mě to je výzva.

No a co když tomu pluginu udělám pokračováni a nechci to zveřejnit? Tak to prostě nechám plavat?
Petr ZZZ
Profil
1Pupik1989 [#22]:
Schválně sem někdo hoďte kus obfuskovaného kódu

Str4wberry [#25]:
„Reakce na 1Pupika1989: Živá ukázka

1Pupik1989 [#26]:
Mezi námi, ukažte obfuskovaný kód, který bude za to stát rozluštit.

Tak Pupiku, kdy začneš luštit? :-)
Joker
Profil
Petr ZZZ:
Tak Pupiku, kdy začneš luštit? :-)
1. Hodím v prohlížeči breakpoint na ten eval. Kód v eval se natáhne jako nový skript a získám toto:
var _0xab05 = ["\x63\x6C\x61\x73\x73\x4E\x61\x6D\x65", "\x6D\x61\x74\x63\x68", "", "\x72\x65\x70\x6C\x61\x63\x65", "\x20"];
var _0x59a5 = [_0xab05[0], _0xab05[1], _0xab05[2], _0xab05[3], _0xab05[4]],
    _0x93ae = [_0x59a5[0], _0x59a5[1], _0x59a5[2], _0x59a5[3], _0x59a5[4]];
function toggleClass(_0xaadex4, _0xaadex5, _0xaadex6) {
    _0xaadex4 && (_0xaadex4[_0x93ae[0]] = _0xaadex4[_0x93ae[0]] == _0xaadex6 ? _0xaadex5 : _0xaadex6)
};
function toggle(_0xaadex4, _0xaadex5) {
    _0xaadex4[_0x93ae[0]][_0x93ae[1]](_0xaadex5) ? _0xaadex4[_0x93ae[0]] = _0xaadex4[_0x93ae[0]][_0x93ae[3]](_0xaadex5, _0x93ae[2]) : _0xaadex4[_0x93ae[0]] += _0x93ae[4] + _0xaadex5
};

2. Zobrazím si hodnotu proměnné _0xab05:
_0xab05 Array
0 "className"
1 "match"
2 ""
3 "replace"
4 " "

_0x59a5 a _0x93ae jsou její kopie.
Když nahradím výskyty těch polí odpovídajícími řetězci a parametrům funkcí dám méně zběsilé názvy, vyjde:
function toggleClass(element, trida1, trida2) {
    element && (element["className"] = element["className"] == trida2 ? trida1 : trida2)
};
function toggle(element, trida) {
    element["className"]["match"](trida) ? element["className"] = element["className"]["replace"](trida, "") : element["className"] += " " + trida
};
Petr ZZZ
Profil
Joker:
Je to kratší, ale text na onclick nezčervená. :-)
(Ale já JS neumím, jen jsem tvůj kód tupě skopíroval, možná jsem při tom udělal nějakou začátečnickou chybu.)
maks
Profil
Petr ZZZ:
onclick (název atributu) vidím zelený. Sublime text, z něhož je barvení převzato, se takto chová při výchozím zvýrazňován syntaxe (theme Monokai (bright)).
« 1 2 3 »

Vaše odpověď

Mohlo by se hodit

Neumíte-li správně určit příčinu chyby, vkládejte odkazy na živé ukázky.
Užíváte-li nějakou cizí knihovnu, ukažte odpovídajícím, kde jste ji vzali.

Užitečné odkazy:

Odkud se sem odkazuje


Prosím používejte diakritiku a interpunkci.

Ochrana proti spamu. Napište prosím číslo dvě-sta čtyřicet-sedm:

0