2011-02-12 71 views
-2

我有70萬個MD5病毒簽名的格式如下數據庫:VB.net MD5校驗,以十六進制

83968:961ed981485cea5ab3936496966ba0d6:Worm.Gaobot-318 
86016:4bed8673ab3d695c52c233306ed3f733:Worm.Gaobot-319 

是有辦法的MD5校驗和轉換爲有效的十六進制簽名?
如果是這樣,如何(使用VB.net)我將md5校驗和轉換爲十六進制,刪除第一個83968:的東西,並保持相同的格式名稱?

所以最終產品會是什麼樣子:

{valid hex signature} :Worm.Gaobot-318 
+0

什麼是*有效的十六進制簽名*?你能舉出一個具體的例子嗎? – 2011-02-12 16:44:35

+0

好吧下面是一個有效的十六進制簽名是EICAR測試病毒的一部分:「58354f2150254041505b345c505a58353428505e2937434329377d2445494341522d5354414e4441」 – 2011-02-12 16:46:58

+0

所以我的意思是,我不能只是這個MD5「961ed981485cea5ab3936496966ba0d6」轉換爲十六進制,因爲這不會是一個病毒簽名了。 – 2011-02-12 16:48:51

回答

1

我明白你在說什麼。你有來自clam數據庫的大量病毒MD5s。但後來你才知道MD5不是很好的簽名,但是十六進制簽名是好的。現在你想把MD5轉換成hex.Its不可能。您可以計算給定字符串的MD5,但無法從給定的MD5取回字符串。

快樂編碼!

1

你的「有效的十六進制簽名」不是一個MD5哈希 - 它太長了。 MD5產生16個字節,所以32個十六進制字符......你的Eicar例子是80個字符(40個字節)。

您尚未指定使用什麼算法來首先提供該「有效的十六進制簽名」,但假設沒有冗餘,您根本沒有足夠的信息來生成它。這就像是在你只知道每個演講的第一個單詞時,如何產生劇本的大綱。

0

看起來您的MD5值已經以十六進制格式表示。所以你在這方面很好。剩下的唯一東西就是將字符串拆分爲「:」字符。假設這是您的格式:

83968:961ed981485cea5ab3936496966ba0d6:Worm.Gaobot-318

下面是一些C#代碼的僞....

string fullStr = "83968:961ed981485cea5ab3936496966ba0d6:Worm.Gaobot-318 "; 
string arr[] = fullStr.Split(":"); 
for(int i=0; i<arr.length; i++) 
{ 
    Console.WriteLine(arr[i]); 
} 
1
$string fullStr = "83968:961ed981485cea5ab3936496966ba0d6:Worm.Gaobot-318 "; 
$string name = fullStr.Split(":")[2]; 
$string md5 = fullStr.Split(":")[1]; 

這會給你的名字,並沒有「83968」或MD5「:」