AutoAV - Ein Autoit basiertes Antivirusprogramm!

  • Hallo,
    ich habe (angefangen!) mir ein AV zu erstellen. Das schwerste hierbei sind Signaturen zu finden was aber auch nicht so schwer ist!

    Hier mal die EICAR Testdatei Signatur:

    Um weitere Signaturen zu finden benötigt man mehrere Viren (ist ja kein Problem bei Youtube/Google findet man diese Recht schnell in einer VM ausgeführt ist das ganze auch relativ sicher. (Die Generatoren müssen ausgeführt werden der Virus ansich nicht!)

    Um ein Virus auszulesen ist empfohlen ein HexEditor zu benutzen oder dieses Script:

    Spoiler anzeigen
    [autoit]

    #include <EditConstants.au3>
    #include <GUIConstantsEx.au3>
    #include <WindowsConstants.au3>

    [/autoit] [autoit][/autoit] [autoit]

    $Form1 = GUICreate("Form1", 1075, 947, 192, 0)
    $Edit1 = GUICtrlCreateEdit("", 0, 0, 1065, 937)

    [/autoit] [autoit][/autoit] [autoit]

    GUISetState(@SW_SHOW)

    [/autoit] [autoit][/autoit] [autoit]

    $1 = FileOpen(@ScriptDir & "/eicar.com", 16)
    $2 = FileRead($1)
    $2 = StringReplace($2, "0x", "")
    GUICtrlSetData($Edit1, $2 & @CRLF & @CRLF)

    [/autoit]

    Anschließend speichert man diesen Code in einer TXT und erstellt bzw. sucht weitere Viren und vergleicht sie.
    Irgendwann hat man einen Abteil der immer gleich ist, evntl. aber auch verändern sich einige Zahlen.
    Das ist dann die Signatur.
    Diese speichert man anschließend in einer TXT (Ich habs mir mal von ClamAV abgeschaut):
    HexCode (Zeichen die sich verändern kommen in eine geschweifte Klammer {}):Virusname:MD5Checksum

    Hier mal ein kleines Test Script um EICAR zu erkennen. (Ich habe es noch nicht überprüft was passiert wenn man die Datei packt bzw. Cryptet!)

    Spoiler anzeigen
    [autoit]

    #include <EditConstants.au3>
    #include <GUIConstantsEx.au3>
    #include <WindowsConstants.au3>

    [/autoit] [autoit][/autoit] [autoit]

    $Form1 = GUICreate("AutoAV", 1075, 947, 192, 0)
    $Edit1 = GUICtrlCreateEdit("", 0, 0, 1065, 937)
    GUISetState(@SW_SHOW)

    [/autoit] [autoit][/autoit] [autoit]

    $EICAR = "58354F2150254041505B345C505A58353428505E2937434329377D2445494341522D5354414E444152442D414E544956495255532D544553542D46494C452124482B482A"

    [/autoit] [autoit][/autoit] [autoit]

    $1 = FileOpen(@DesktopDir & "/eicar.rar", 16)
    $2 = FileRead($1)
    $2 = StringReplace($2, "0x", "")
    GUICtrlSetData($Edit1, $2 & " EICAR.rar" & @CRLF & @CRLF)
    $3 = GUICtrlRead($Edit1)
    $4 = StringReplace($2, $EICAR, " EICARISTHIER ")
    ;$4 = StringReplace($4, $EICAR, " EICARISTHIER ")
    GUICtrlSetData($Edit1, $3 & $4 & " EICAR.exe" & @CRLF & @CRLF)

    [/autoit] [autoit][/autoit] [autoit]

    $1 = FileOpen(@DesktopDir & "/test.rar", 16)
    $2 = FileRead($1)
    $2 = StringReplace($2, "0x", "")
    $3 = GUICtrlRead($Edit1)
    GUICtrlSetData($Edit1, $3 & $2 & " EICAR.exe" & @CRLF & @CRLF)

    [/autoit] [autoit][/autoit] [autoit]

    If StringInStr($2, $EICAR) Then
    MsgBox(0, "Malicious File Found!", "This file is known as EICAR Test file, Security Level is Low!")
    Else
    MsgBox(0, "File seems Clean", "This file seems clean you can use it of your own risk!")
    EndIf
    While 1
    $nMsg = GUIGetMsg()
    Switch $nMsg
    Case $GUI_EVENT_CLOSE
    Exit

    [/autoit] [autoit][/autoit] [autoit]

    EndSwitch
    WEnd

    [/autoit]

    Hier habe ich den ganzen HexCode gesucht bei 'richtigen' Viren sollte man natürlich nur einen Teil suchen, was die Geschwindigkeit und Treffgenauigkeit erhöht!!

    Nun die Frage:
    Wer hätte den Lust an diesem Projekt mitzuarbeiten?
    Ich könnte stellen:
    Webserver + Domain
    Scripten
    Signaturen finden

    Ihr solltet mitbringen:
    Lust
    Eine VM sollte vorhanden sein (VirtualBox & Ubuntu reicht! (beides Kostenlos!)) (Um Signaturen zu finden)
    Verständniss im Scripten mit Autoit (Um evntl. am Script zu arbeiten) evntl. auch PHP/HTML

    Das Script wird OpenSource, d.h. jeder kann das Script sehen und kann es bearbeiten ;)

  • Nette Idee, aber meiner Meinung nach, wenn es dann irgendwann funktioneren KÖNNTE, würde es keiner benutzen, denn es gibt schon viele gute kostenlose Alternative, die sicherer sind als jedes in AutoIt geschriebene AV-Program.
    avast! alleine besitzt 2.761.977 Definition für Viren wobei eine Definition zehn, hunderte, tausende einmalige Virenmuster erkennen kann. (Gekürzter Text aus avast! selbst).
    Aber trotzdem viel Spaß bei dem Projekt

  • Mir ist natürlich klar das der Spaß im Vordergrund steht. Dir ist hoffentlich bewusst das so ein Riesenprojekt einen Haufen Zeit in Anspruch nehmen kann und es bestimmt oft kurze Zeiträume gibt wo es einfach keinen Spaß mehr macht, hatte ich selbst schon einige Male bei ähnlich-großen Projekten (C#-XNA-Spiel). Würde natürlich auch gerne mitmachen, hab auch einige Erfahrung in Programmieren und das Vergleichen und Erstellen der Signaturen kann man bestimmt in Dll's auslagern.