23.11.2013 Aufrufe

Automatisierte Signaturgenerierung für Malware-Stämme - Zynamics

Automatisierte Signaturgenerierung für Malware-Stämme - Zynamics

Automatisierte Signaturgenerierung für Malware-Stämme - Zynamics

MEHR ANZEIGEN
WENIGER ANZEIGEN

Sie wollen auch ein ePaper? Erhöhen Sie die Reichweite Ihrer Titel.

YUMPU macht aus Druck-PDFs automatisch weboptimierte ePaper, die Google liebt.

3.4 Längste gemeinsame Teilsequenzen von Permutationen 53<br />

RETAINALPHABET(S = s 1 . . . s m , Σ)<br />

1 result = NIL<br />

2 for i ← 1 to m<br />

3 do if s i ∈ Σ<br />

4 then append(result, s i )<br />

5 return result<br />

HAMMINGLCS(S 1 , . . . S k )<br />

1 if k = 2 ⊳ Löse Problem der Größe 2 mit dynamischer Programmierung<br />

2 then return DYN-LCS(S 1 , S 2 )<br />

3 kill ← NIL ⊳ Liste mit Indizes zu löschender Sequenzen<br />

4 hmin ← +∞, hcur ← 0 ⊳ Minimaler und aktueller Hamming-Abstand<br />

5 shd1 ← 0, shd2 ← 0<br />

⊳ Indizes der Sequenzen mit dem kleinsten Hamming-Abstand suchen<br />

6 for i ← 1 to k<br />

7 do for j ← 1 to i<br />

8 do if i = j<br />

9 then continue<br />

10 hcur ← ∆ h (S i , S j ) ⊳ Hamming-Abstand berechnen<br />

11 if hcur = 0<br />

12 then append(kill, i) ⊳ Identische Sequenz löschen<br />

13 elseif hcur < hmin<br />

14 then hmin ← hcur<br />

15 shd1 ← i, shd2 ← j<br />

16 if ∣ kill ∣ = k − 1 ⊳ Alle Sequenzen bis auf eine identisch?<br />

17 then return S 1 ⊳ Diese ist dann LCS<br />

⊳ Berechne LCS der „ähnlichsten Sequenzen“ mit dynamischer Programmierung<br />

18 minlcs ← DYN-LCS(S shd1 , S shd2 )<br />

19 sublist ← NIL<br />

20 for i ← 1 to k<br />

21 do if i ∈ kill or i = shd2<br />

22 then continue<br />

23 elseif i = shd1<br />

24 then append(sublist, minlcs)<br />

25 else append(sublist, RETAINALPHABET(S i , minlcs))<br />

26 if ∣ sublist ∣ = 1 ⊳ Nur noch eine Sequenz übrig?<br />

27 then return first(sublist)<br />

28 else return HAMMINGLCS(sublist) ⊳ Rekursion<br />

Abbildung 3.4: Ein Algorithmus zur Berechnung von gemeinsamen Teilseqenzen

Hurra! Ihre Datei wurde hochgeladen und ist bereit für die Veröffentlichung.

Erfolgreich gespeichert!

Leider ist etwas schief gelaufen!