2009-11-10 85 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來查看您的服務器在服務器端意外向頁面注入惡意腳本時沒有妥協。