2009-11-10 84 views
0

继承人我简单的HTML源JavaScript作为一种病毒?....源编辑

<html> 
<head> 
<title> 
Dec2Bin 
</title> 
<script type="text/javascript"> 
function app() { 
    var decimal = prompt("Numero en Decimal"); 
    alert("El numero " + decimal + " en codigo binario es igual a " + dec2bin(decimal)); 
} 

function dec2bin(decimal) { 
    var binario = ""; 
    while (decimal != 0) { 
     if (decimal % 2 == 0) { 
      binario += "1"; 
     } 
     else { 
      binario += "0" 
     } 
     decimal = decimal/2 
    } 

    return binario; 
} 
</script> 
</head> 
<body> 
<input type="button" onclick="app()" value="Procesar" /> 
</body> 
</html> 

魅力不断告诉我它是一种病毒..如果我删除它停止的JavaScript ...我该怎么办?

回答

3

你似乎有一个无限循环因为小数永远不会等于0。我能看到AVG可能不像这样。

function dec2bin(decimal) { 
    var binario=""; 
    while(decimal!=0) { 
     if(decimal % 2==0) 
      binario+="1"; 
     else 
      binario+="0" 
    } 
    decimal/=2 
    return binario ; 
} 

我做了一个快速谷歌搜索,并拉起清洁功能:做

function dec2bin(dec) { 
    var bits = []; 
    var remainder = 0; 
    while (dec >= 2) { 
     remainder = dec % 2; 
     bits.push(remainder); 
     dec = (dec - remainder)/2; 
    } 
    bits.push(dec); 
    bits.reverse(); 
    return bits.join(""); 
} 
+2

'number.toString(2)':-) – CMS 2009-11-12 07:17:31

2

我不是100%肯定,如果这是原因,但你的while循环:

while(decimal!=0) 
{ 
if(decimal % 2==0) 
binario+="1"; 
else 
binario+="0" 
} 

不会终止,因为decimal不会改变,直到循环。因此,运行该循环应锁定您的浏览器。


我可以在您更新的代码中看到的唯一的另一件事是,您的 prompt不强制 decimal到一个数字。

如果用户输入一个数字,decimal/2将返回NaN,这将永远不会等于零,所以你的循环将不会终止。我建议使用parseInt转换为一个整数,然后如果返回NaN,你可以分配0到decimal或找到一些其他方式来跳过你的while循环(如将你的while循环的条件改为decimal != 0 || decimal != NaN

我怀疑一个反病毒会挑选,但它不是不可能的。

+0

我刚刚修复,它仍然不断说它的病毒.... arrhghhh – ignaciofuentes 2009-11-10 12:07:19

+1

发布您的更新代码。 – 2009-11-10 12:10:09

-6

最好的办法是卸载AVG。病毒扫描程序是一种骗局,它们会显着降低您机器的性能。如果您真的担心恶意软件,最好的办法是将ubuntu安装为您计算机的主要操作系统,并在虚拟机等虚拟机内运行Windows。

+0

好吧,那么对于真正伟大的建议来说,它是如此的低调?这个网站到底是什么? – Breton 2009-11-10 12:15:27

+1

不是特别相关或真实。他问为什么他的代码被标记为病毒,而不是与恶意软件有什么关系或避免它。 – NibblyPig 2009-11-10 12:16:10

+1

奇怪的答案...我想要巧克力蛋糕的食谱...布雷顿回答:你为什么不吃汉堡包?或者,也许你不必吃东西,只是看电视。 – enguerran 2009-11-10 12:16:14

1

虽然AV工具可以自动解决暂停问题(!),但它可能仅仅是今天完全无望的反病毒行业中的一串长时间的误报。也许重新命名一些变量并在短期内移动代码会在短期内停止它,但是一般而言,对于任何程序员来说,误报都是一个令人生厌的事实。

唯一需要检查的其他事情是:AVG是否检测到上面发布的本地文件中的确切源文件,而其中没有其他文件作为病毒?对我来说,virustotal的AVG不会将这样的文件标记为可疑文件。它只能在网上检测到它吗?如果是这样的话,您需要检查View-> Source来查看您的服务器在服务器端意外向页面注入恶意脚本时没有妥协。