2012-05-29 9 views
5

Sono nuovo al parser di Rhino. Posso usare questo parser di rhino in codice javascript per estrarre l'Abstract Syntax Tree del codice javascript in qualsiasi file html. Se è così dovrei iniziare. Questo è per analizzare AST del codice per calcolare il rapporto tra parole chiave e parole usate in javascript, per identificare schemi di decrittografia comuni e per calcolare le occorrenze di alcune classi di chiamate di funzioni come fromCharCode() , eval() e alcune funzioni stringa comunemente utilizzate per la decrittografia e l'esecuzione di exploit drive-by-download.Utilizzo dell'analizzatore di Rhino nel codice javascript per analizzare le stringhe in javascript

+0

proposito: Un'API AST è stata aggiunta in [Rhino 1.7R3] (https://developer.mozilla.org/en-US/ docs/New_in_Rhino_1.7R3) – McDowell

risposta

3

Per quanto ne so, non è possibile accedere a AST da JavaScript in Rhino. Guarderei però il parser Esprima. È un parser JavaScript completo scritto in JavaScript e ha una semplice API per fare analisi del codice.

Ecco un semplice esempio che calcola la parola chiave per Identifier rapporto:

var tokens = esprima.parse(script, { tokens: true }).tokens; 
var identifierCount = 0; 
var keywordCount = 0; 

tokens.forEach(function (token) { 
    if (token.type === 'Keyword') { 
     keywordCount++; 
    } 
    else if (token.type === 'Identifier') { 
     identifierCount++; 
    } 
}); 

var ratio = keywordCount/identifierCount; 
+0

Questo parser è stato veramente buono, il codice sopra riportato ha funzionato per me Grazie. Puoi fornire un tutorial per questo parser in modo da poter estrarre l'AST del codice javascript di una pagina web in javscript – user1335906

+0

Non ho ancora fatto molto con esso, quindi non ho alcuna esperienza con cose del genere. La funzione 'parse' restituisce AST, quindi non dovrebbe essere troppo difficile. La documentazione è su http://esprima.org/doc/index.html e il blog dell'autore (http://ariya.ofilabs.com/) contiene alcuni esempi su come usarlo. Spero che questi aiuti. –

Problemi correlati