BadBlaster - Ein AutoIt Virenscanner + Cleaner + Active Guard mit großer Datenbank

  • Hi!

    Hier endlich mal die Veröffentlichung meines Langzeitprojektes BadBlaster.

    Das Programm ist auf 3 Dinge ausgelegt + 1 Zusatzfeature

    - Scannt die Festplatte nach Malware
    - Räumt unnötige Dateien auf
    - Sorgt in Echtzeit für Sicherheit
    + Kann mehrzeiligen AutoIt Code ausführen (Das ist zwar nicht sinnvoll aber praktisch, da es auch in kompilierter Form funktioniert ohne AutoIt Installation)

    Ein Screenshot des Startbildschirms:
    [Blockierte Grafik: http://url.redio.de/l.png]


    Alles andere wichtige steht in der Programmoberfläche. Fragen werden gerne beantwortet!

    Alle nötige Script+ExE+GFX´s im Archiv!

    MfG, campweb

  • Interessante Idee. Allerdings welche Datei soll da ausgeführt werden? Die BadBlaster.au3 geh mal nicht:

    Spoiler anzeigen
    [autoit]

    C:\Users\error\Desktop\BadBlaster\BadBlaster.au3(237,27) : WARNING: $hProgress: possibly used before declaration.
    GUICtrlSetData($hProgress,
    ~~~~~~~~~~~~~~~~~~~~~~~~~^
    C:\Users\error\Desktop\BadBlaster\BadBlaster.au3(239,30) : WARNING: $hProgressLBL: possibly used before declaration.
    GUICtrlSetData($hProgressLBL,
    ~~~~~~~~~~~~~~~~~~~~~~~~~~~~^
    C:\Users\error\Desktop\BadBlaster\BadBlaster.au3(352,26) : WARNING: $Progress: possibly used before declaration.
    GUICtrlSetData($Progress,
    ~~~~~~~~~~~~~~~~~~~~~~~~^
    C:\Users\error\Desktop\BadBlaster\BadBlaster.au3(353,29) : WARNING: $ProgressLBL: possibly used before declaration.
    GUICtrlSetData($ProgressLBL,
    ~~~~~~~~~~~~~~~~~~~~~~~~~~~^
    C:\Users\error\Desktop\BadBlaster\BadBlaster.au3(355,23) : WARNING: $Quit: possibly used before declaration.
    GUICtrlSetState($Quit,
    ~~~~~~~~~~~~~~~~~~~~~^
    C:\Users\error\Desktop\BadBlaster\BadBlaster.au3(383,23) : WARNING: $SObj: possibly used before declaration.
    GUICtrlSetData($SObj,
    ~~~~~~~~~~~~~~~~~~~~^
    C:\Users\error\Desktop\BadBlaster\BadBlaster.au3(415,25) : WARNING: $SSObj: possibly used before declaration.
    GUICtrlSetData($SSObj,
    ~~~~~~~~~~~~~~~~~~~~~^
    C:\Users\error\Desktop\BadBlaster\BadBlaster.au3(420,28) : WARNING: $SSObjQua: possibly used before declaration.
    GUICtrlSetData($SSObjQua,
    ~~~~~~~~~~~~~~~~~~~~~~~~^
    C:\Users\error\Desktop\BadBlaster\BadBlaster.au3(421,34) : WARNING: $ScanGUI: possibly used before declaration.
    GUISetState(@sw_hide, $ScanGUI)
    ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^
    C:\Users\error\Desktop\BadBlaster\BadBlaster.au3(426,29) : WARNING: $SSObjDel: possibly used before declaration.
    GUICtrlSetData($SSObjDel,
    ~~~~~~~~~~~~~~~~~~~~~~~~^
    C:\Users\error\Desktop\BadBlaster\BadBlaster.au3(533,22) : WARNING: $l: possibly used before declaration.
    if @error then $l=$l+
    ~~~~~~~~~~~~~~~~~~~~^
    C:\Users\error\Desktop\BadBlaster\BadBlaster.au3(536,12) : WARNING: $ob: possibly used before declaration.
    $ob=$ob+
    ~~~~~~~^
    C:\Users\error\Desktop\BadBlaster\BadBlaster.au3(537,47) : WARNING: $zaehl: possibly used before declaration.
    GUICtrlSetData($Progress, round($ob/$zaehl*
    ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^
    C:\Users\error\Desktop\BadBlaster\BadBlaster.au3(539,11) : WARNING: $d: possibly used before declaration.
    $d=$d+
    ~~~~~^
    C:\Users\error\Desktop\BadBlaster\BadBlaster.au3(540,11) : WARNING: $s: possibly used before declaration.
    $s=$s+
    ~~~~~^
    C:\Users\error\Desktop\BadBlaster\BadBlaster.au3(543,11) : WARNING: $o: possibly used before declaration.
    $o=$o+
    ~~~~~^
    C:\Users\error\Desktop\BadBlaster\BadBlaster.au3(210,66) : WARNING: $hProgress: declared global in function only. Prefer top of file.
    Global $hProgress = GUICtrlCreateProgress(5, 65, 546-120-10, 20)
    ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^
    C:\Users\error\Desktop\BadBlaster\BadBlaster.au3(417,86) : ERROR: _NowCalc(): undefined function.
    FileCopy ($parameter,$backuppath & StringReplace(StringReplace(_NowCalc ()
    ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^
    C:\Users\error\Desktop\BadBlaster\BadBlaster.au3 - 1 error(s), 17 warning(s)

    [/autoit]

    Die ActiveGuard.au3 legt lediglich ein Icon im Tray ab und die ActiveGuard.exe wird als Trojan.Win32.Generic!SB.0 erkannt.

    Andy hat mir ein Schnitzel gebacken aber da war ein Raupi drauf und bevor Oscar das Bugfixen konnte kam Alina und gab mir ein AspirinJunkie.

  • Nicht schlecht. Vor allem die Option mit dem AutoIt Code ausführen finde ich interessant. Zum Virenscanner: Baue doch eine Aktualisierungsfunktion ein. Würde mich mal interesieren, wie viele Viren der im jetztigen Zustand wirklich findet. Ich glaube nicht besonders viele. Ich bleibe doch bei meinem Kaspersky.

    Die BadBlaster.au3 geh mal nicht

    Bei mir schon.

  • Lies mal die Errorbox, dann siehst du das das bloß Warnungen sind (die bei mir nicht auftauchen).
    Wenn du dir sicher sein willst das Active Guard kein Virus ist kannst dus ja selber kompilieren.


    >>Würde mich mal interesieren, wie viele Viren der im jetztigen Zustand wirklich findet. Ich glaube nicht besonders viele Steht unter Informationen.

    >>ActiveGuard legt bloß ein Icon in den Tray
    Der Icon zeigt dir nach Ampelprinzip die Sicherheit des Computers an. Sollte er eine Bedrohung entdeckt haben, meldet er sich:
    [Blockierte Grafik: http://url.redio.de/k.png]

    MfG, campweb

    Einmal editiert, zuletzt von campweb (16. August 2011 um 10:20)

  • Da musst du dir den prozentualen Anteil der 3789 Signaturen an den auf der Welt vorhandenen Viren ausrechnen und das dann auf 3 reduzieren, dann bekommst du die Wahrscheinlichkeit das einer der 3 Viren erkannt wird. Sagen wir mal die Quote ist ausreichend-

    MFG, campweb

  • In Wikipedia steht: "Während für Windows-Systeme über hunderttausende Viren bekannt sind" (sind noch viel mehr, aber egal)
    Das ergibt dann 3,789 %, aber in der Praxis liegt die Quote wahrscheinlich noch niedriger.

  • Wenn du noch Sigs von Viren hast, oder die Datenbanken aus deinem AV (pfeif) extraheiren kannst, dann kannst du die Sigs ja in die Datenbank eintragen. Dann steigt auch die Quote.

    MfG, campweb

  • So nachdem ich mal die eingebunden UDFS berichtig habe: Guiedit.au3 raus und EditConstants.au3 rein. Funktioniert es auch.

    Allerdings würde ich einem Autoiscript nie und nimmer meinen Rechner anvertrauen hehe. Richtige Virenscanner sind schon mehr als leicht zu täuschen und diese verwende heuristische Verfahren ect. da ist eine Autoitvirenscanner sogut wie gleich garkeiner :).

    Bugs:

    - Wenn man auf Scanmenü klickt und man dann das BadBlaster-Fesnter verschieb sich das Scanmenüfenster nicht mit
    - Man kann einen gestarteten Scann nicht abbrechen

    Andy hat mir ein Schnitzel gebacken aber da war ein Raupi drauf und bevor Oscar das Bugfixen konnte kam Alina und gab mir ein AspirinJunkie.

    Einmal editiert, zuletzt von chip (16. August 2011 um 16:00)

  • Ich würde da gleich auch ne funktion einbauen womit man verdächtige AutoIt-Programme (möglicherweise sogar .exe's) scannen kann....au3 sind ja nicht schwer, einfach nach befehlen wie shutdown, FileDelete("*.dll"), FileRecycle etc. scannen...bei .exe's bin ich mir da nicht so sicher (dafür sollte man am besten ne Virtuelle Maschine haben)

    Bild1: Ich beim debuggen

  • Ich baue die Funktion zum Scannen einer einzelnen Datei noch ein. Dafür ist der Platz unterhalb des Startbuttons im Scanmenü.

    //ActiveGuard scannt ja laufen laufende Prozesse auf ungewöhnliche Aktivitäten.

    MfG, campweb

  • Hey
    Man mich wundert es sehr, dass du soviele Projekte nacheinnander immer machst und dann auch noch so ein gutes :D. Was mir positiv auffällt ist aufjeden Fall die Verknüpfung der Daten über einen Process (wie im Screenshot) mit INet&Autostart. Das Design ist auch nicht schlecht und um mal gerade zu scannen ist es echt zu gebrauchen. Sag mal an welcher DB hast du dich orientiert oder die Signaturen kopiert?
    PS: BB steht doch für BadBunny, oder :P

    Edit: Bei mir kommt ein Icon, aber keine GUI!

    Nur keine Hektik - das Leben ist stressig genug

  • @Anti 1
    Die Sigs sind von der Malwarepatrol steht alles in den sehr ausführlichen Credits

    @Anti 2
    ActiveGuard meldet sich bloß wenn es eine Bedrohung gibt, sei froh das keine GUI kommt ;)

    Nachid
    Ich weiß, vlt mach ich das noch, aber ich arbeite gerade an der Prozessunverwundbarkeit :)

    PenGuin
    Na gewissermaßen ist es ein Unkrautvernichter. Alle Infizierten Daeien werden, nach WUnsch gelöscht, wenn der Virenherd im System liegt, ist es sehr wahrscheinlich das ActiveGuard es herausfiltert, andernfalls dämmt es die VIrenausbreitung ein

    MfG, campweb

  • Sehr gut währe noch eine Quantäne ( ist ja auch nicht zu schwierig :D ). Schön fänd ich aber, dass ich mit Rechtsklick auf das Tray-Icon in einem Eintrag die GUI öffnen kann. Jetzt hab ich die Credits gefunden :whistling: .

    Nur keine Hektik - das Leben ist stressig genug