Injected DLL / infizierte exe erkennen

  • Tag zusammen.

    Gibt es eine Möglichkeit, herauszufinden, ob eine exe - datei "infiziert" (per dll injection) wurde ?
    Also durch sowas wie RAM-Verbrauch, ändern der Dateigröße, Registryeinträgen oder sonstigen Spuren.
    Viele Antivirensoftwars können sowas ja erkennen...

    mfg,
    dankeschön

    P.S.: Es handelt sich lediglich um eine fest definierte, mit einer fest definierten Dateigröße, muss also nicht variabel sein ...

    Zitat

    Programmieren ist so lange lustig bis ein Fehler auftritt!


    ~ Dankeschön

  • Dateigröße und Registry-Einträge kannst Du schon mal vergessen, die Injektion findet ja im RAM statt.
    Demnach ändert sich an der Datei ja nichts. Du könntest beim Injizieren zwar einen Eintrag in der Registry ablegen, aber was der bringen?

    Ich tippe mal darauf, dass Du für eine sichere Feststellung ein Abbild eines RAM-Teiles benötigst. Sprich Du liest eine bestimmte Stelle des Zielprogramm im RAM aus, injizierst deine dll und prüfst, ob sich dadurch die Stelle ändert.

    Beispiel: Du liest die Adressen x,y,z ein. Dort befinden sich nur Nullen. Nun injizierst Du deine dll und liest die Adressen wieder aus. Nun prüfst Du, ob die Werte sich geändert haben und ob sie so sind, wie sie nach der Injektion sein sollen(wir wollen ja sicher sein).

    Einfach nur Abfragen, ob der RAM-Verbrauch des Programms gestiegen ist, ist nicht wirklich sicher. Schließlich kann der unter Windows wegen jedem Schwachsinn größer werden.

  • Wieso gerade dll-injektion? Es gibt haufenweise Möglichkeiten, eine ausführbare Datei abzuändern. In jedem Fall wird dazu entweder die ausführbare Datei gepatcht, oder nachträglich (im laufenden Programm), im Speicher eine oder mehrere Sprungadressen "umgebogen". Auf was bzw wohin die Sprungadressen zeigen, ist schnurz. Also müsste man "nur" Prüfsummen ermitteln, die den Dateiinhalt bzw den Speicherinhalt testen und gut wärs, sämtliche Virenscanner auf dem Markt wären obsolet (stellt euch vor, ein Milliardenmarkt wäre plötzlich völlig überflüssig!).....WENN nicht M$ in seiner grandiosen Architektur eines Betriebssystems erlauben würde, auch SYSTEMDATEIEN beliebig abzuändern. Und genau darin liegt das Problem.

    Die eigentliche Datei kann absolut und völlig "sauber" sein, aber nahezu jedes Programm greift auf Funktionen des Windows-API zu, die wiederum irgendwo in irgendeiner Datei (z.B. DLL) tief vergraben in irgendeinem Systemordner liegen. Und da diese Dateien (habe ich schon die grandiose Architektur dieses Betriebssystems erwähnt?) auf einfachstem Wege änderbar/austauschbar sind, ist jede Diskussion bezüglich "Sicherheit" auf aktuellen Computern hinfällig.....

    Wer sich für diese Materie im Zusammenhang mit AutoIt interessiert, dem empfehle ich eine Suche nach "Subrogation" im engl. Forum.

  • Es geht lediglich um die Erkennung eines Hacktools, welche anscheinend eine DLL in das Spiel einbindet...
    Und das möchte ich natürlich zuverlässig erkennen...

    Zitat

    Programmieren ist so lange lustig bis ein Fehler auftritt!


    ~ Dankeschön

  • Was hat das für einen Sinn?
    Wenn du selber einen "Bot" einschleust (nach deiner erklärung nach) dann wirst du es ja wissen
    Ich denke nicht, dass ein boter extra deinen erkenner installiert damit er es weis xD
    oder ist es für ein eigenes Programm?
    was nützt dir das dann?

  • Wenn Du direkt die Datei änderst, würde, wie bereits erwähnt, eine Prüfsumme genügen, damit die Entwickler wissen, dass etwas nicht stimmt. Tun können Sie dagegen sehr viel: Prüfsumme falsch? -> Nutzung verhindern

    Beim RAM wird es schon kritischer. Da müsste man schon den Aufwand betreiben und bestimmte Stellen bzw. den kompletten RAM des Progs überwachen. Aber auch hier könnte man mit gezielten Prüfroutinen vorgehen.
    Ergebnis: Durch Prüfroutine gefallen? -> Programm beenden/Spieler bannen,....

    Es kommt lediglich darauf an, welche Mühe sich der/die Programmierer gemacht haben.
    Allerdings sind das halt keine sicheren Treffer. Abweichungen bei Prüfsummen oder im RAM können ja z.B. auch durch Viren verursacht werden.