Questo sito utilizza cookies solo per scopi di autenticazione sul sito e nient'altro. Nessuna informazione personale viene tracciata. Leggi l'informativa sui cookies.
Username: Password: oppure
Javascript - Javascript/ajax/eval
Forum - Javascript - Javascript/ajax/eval

Avatar
xinyiman (Normal User)
Newbie


Messaggi: 6
Iscritto: 20/11/2009

Segnala al moderatore
Postato alle 8:43
Martedì, 21/09/2010
Buongiorno a tutti, mi sono imbattuto in un pezzo di codice interessante, non tanto per capire cosa fa, ma quanto per capire come usare lo stesso metodo per non far vedere il codice che io scrivo.

Insomma mi piacerebbe capire come funziona per implementare lo stesso concetto sui miei codici, non so se mi sono spiegato correttamente! Io non sono molto pratico di ajax, però ho capito che eval serve per eseguire del codice senza che questo compaia nel "visualizza html".

La prima cosa che noto è "function(x)", la dichiarazione di una funzione senza per questo dare un nome alla funzione, ma passandogli solo una variabile. Si può fare? E poi come si richiama questa funzione dalla pagina su cui operiamo?! Scusate per la mole di domande, ma ho veramente urgenza di capirci un po' di più, devo fare un lavoro e voglio oscurare un bel po di codice, e guardando in giro mi sembrava un byon metodo questo!

Ovviamente non ho messo tutto il codice, a me interessa capire come fare non copiare il codice in questione!

Riporto il codice qui sotto:
eval((function(x){var d="";var p=0;while(p<x.length){if(x.charAt(p)!="`")d+=x.charAt(p++);else{var l=x.charCodeAt(p+3)-28;if(l>4)d+=d.substr(d.length-x.charCodeAt(p+1)*96-x.charCodeAt(p+2)+3104-l,l);else d+="`";p+=4}} return d})("function SSPlotter(){}Web2CalConstants=` ?$(){};WEB2CAL_VERSION_INFO=\"V-Basic-Rel-1226-2.0-1218G\";var ` m#` a&T,R){options=R||new Array` J!B=\" <table id=\\\"loadingBlock\\\" height=\\\"100%\\\" width` %&style=\\\"position:absolute;background-color:#fff; z-index:9999;\\\"><tr><td valign=\\\"middle\\\" ` )$center\\\"><div class`!]&Msg\\\"> \"+`\"O#.LANG.MSG_LOADINGMSG+\"</div></td></tr></`\"L!>\"+\"\\t ` k)web2cal\\\" > ` ;!\\t`!+*eftNav\\\" >\\t\\t\\t\\t` @#` :+quickAddLink\\\"`!&\"` ,7Icon\\\">`!d#a href=\\\"java-script:void(0)\\\"` S%p`&$\"l` z$`\"X)LABEL_CREATENEWEVENT+\"</a`!A&`!'\"`\"?$`!R#` u%minic`&x!tain`#~!`!m4` D#`!w%` r,` M$`\"t8`#R#GroupsList` u7head`!J#`\"A/HIDESHOW`%1$` N4data`![4`%3$` (!`!j'` T)content\\\"`(U\"calendarC` /$> `\"64topnav`#8@controls` A' ` A(` ?,`$L\"ro`'?!` :*`\"^,`$S/`,(\"` X#`\"1!` &,` FJcalO`+u\"`!>-` 15`'~)` C,`(&0showC`#v#Settings();`(42 ` &`)R%`%r/OPTIONS`(C+`%H(`\"C.`#+!topQ`*-#`$F)`*a8`)p~`*_/`\"5\"`-T$`(9,`$Y; calNavigation`$h0ul`(-%NavD`)&\"` 5,/ul`#I0 \\t`,+'`)4,`!<+`\"M#`),&`(Q5al`+3\"`$,(`!\\$` )-`-M'`-X.` k+allDay` f-` &-`#67` F\"Event` Q3` ,,`%q!> `!Z\";`.1-`$G@` x\"Gri`'#)`!.'` ,+`*B;`\"l;btbor`/7\"`.`:calbod`#C.` &.`!B+table cellspacing=\\\"0\\\"` -!padd` (&`!E\"` &# style=\\\"` \\!-layout: fixed; width: 100%; height:` (!`'C/td valign`*j\"`)V'gridY`!s%TD`\".$` &.`#6)`\"m/` D*` R2\\\"`(S!`%B-`$22` 0\"td`!|0`\" +`!#%X`!f*` K&`![?`!h1`$_5` M4anvas` U)` +#`.s,`'u5` c3` h(`!63` V2`1c2`#H-</`&D!><iframe`!'\"web2calI` .!`(?!` 8\"`._9`(H,foot`#1,` F+` \")`.5) ` i!`($$display:none;\\\"><h2>Powered by `!h#. `1V&http://www.` ...

PM Quote
Avatar
HeDo (Founder Member)
Guru^2


Messaggi: 2765
Iscritto: 21/09/2007

Segnala al moderatore
Postato alle 9:34
Martedì, 21/09/2010
sono sicuro che, anche se avessimo la spiegazione e te la dicessimo non riusciresti a capirla :)

meglio andare su google a cercare un offuscatore per codice javascript, gli dai in pasto il tuo codice e chi si è visto si è visto ;)

PM Quote
Avatar
xinyiman (Normal User)
Newbie


Messaggi: 6
Iscritto: 20/11/2009

Segnala al moderatore
Postato alle 9:43
Martedì, 21/09/2010
Ti ringrazio per la risposta, ma io sono uno smanettone e mi piace imparare! Ti prego quando hai un po di tempo di spiegarmi "come". Grazie

PM Quote
Avatar
Mte90 (Member)
Guru


Messaggi: 1144
Iscritto: 25/03/2008

Segnala al moderatore
Postato alle 14:40
Martedì, 21/09/2010
impara allora ad usare il bbtag code perchè serve molto in un forum di programmazione.
è meglio usare un offuscatore che la funzione eval che come in tutti i linguaggi è pericolosa perchè interpreta tutto quello che gli viene passato come del codice e un malintenzionato potrebbe divertirsi a far danni.
Per non far copiare il codice è meglio usare un packer che l'offusca e poi usa eval per eseguirlo.
studiati i packer intanto visto che sei uno smanettone ;)

PM Quote
Avatar
xinyiman (Normal User)
Newbie


Messaggi: 6
Iscritto: 20/11/2009

Segnala al moderatore
Postato alle 14:42
Martedì, 21/09/2010
Ok grazie del consiglio!

PM Quote