Seite 1 von 2 12 LetzteLetzte
Ergebnis 1 bis 10 von 14
  1. #1
    NoClose Wurm
    Registriert seit
    10.07.2007
    Beiträge
    189

    Frage Sich selbst löschende EXE. Wie geht das?

    Was muss ich machen damit sich meine .exe selber löscht.
    Code Bsp. wär super.

    Thx in advance

    EDIT: [vb .net]
    mfG c00p3r

  2. #2
    Richard Stallman
    Registriert seit
    09.07.2008
    Beiträge
    2.199

    Standard

    Du brauchst eine externe Anwendung oder ein Script (soweit ich weiß).
    Also zum Beispiel Batch oder vbs, wobei Batch hier wohl geeigneter wäre.
    Signatur hat Pause..


  3. Folgende Benutzer haben sich für diesen Beitrag bedankt:

    c00p3r (29.11.2010)

  4. #3
    Tron
    Registriert seit
    19.08.2008
    Beiträge
    864

    Standard

    Super Sache. Gibt sowas Namens Google.
    Google

    Findet man auf anhieb was mit den Suchwörtern: "VB.net Selbstlöschende Exe"

  5. #4
    Moderator Avatar von Jut4h.tm
    Registriert seit
    25.06.2006
    Beiträge
    792

    Standard

    Also:
    naja kenne mich zwar nicht mit .net aus aber es geht überall so:

    Code:
    @echo off
    ping -n 1 127.0.0.1 > NUL
    del "deineexe.exe"
    del %0
    exit
    das schreibste in ne Datei die im selben Verzeichnis ist wie deine exe...
    die datei muss die Endung .bat haben dann startest du sie hidden...
    fertig ;-)

    die Zeile:
    ping -n 1 127.0.0.1 > NUL
    ist eine "sleep" anweisung die 1 steht für eine sekunde musste sehen ob du das überhaupt brauchst... oder vll. noch länger machst

    WICHTIG:
    du musst die exe natürlich beenden ... also die bat ausführen und dann deine exe sofort beenden!

  6. Folgende Benutzer haben sich für diesen Beitrag bedankt:

    c00p3r (29.11.2010), jonasus (30.11.2010)

  7. #5

    Standard

    Mit der Move-File api in den temp ordner schieben und beenden, ist zwar kein löschen reicht aber eig.

  8. #6
    Anfänger Avatar von _MrKode
    Registriert seit
    29.11.2010
    Beiträge
    25

    Standard

    AFAIK kannst du die Datei NICHT im Betrieb verschieben, weshalb man auf die Batch/VBScript Dateien zurückgreifen muss.

  9. #7
    BackNine Wurm Avatar von Mofo
    Registriert seit
    29.11.2008
    Beiträge
    312

    Standard

    Anstat das mit der Batch zu machen und die dann als Leiche uaf dem System zu lassen, solltest du die cmd.exe direkt ansprechen und
    Code:
     ping 0.0.0.1 -n 1 -w 1000  del "Pfad deiner exe"
    o.ä als Parameter übergeben was deiner Applikation Zeit lässt sich selbst zu beenden bevor Windows versucht sie zu löschen..




  10. #8

    Standard

    Zitat Zitat von _MrKode Beitrag anzeigen
    AFAIK kannst du die Datei NICHT im Betrieb verschieben, weshalb man auf die Batch/VBScript Dateien zurückgreifen muss.
    Kannst du sehr wohl, probier es doch mal aus

  11. #9
    Sobig Wurm Avatar von BlackHook
    Registriert seit
    13.03.2009
    Beiträge
    219

    Standard

    Hier ein C&P für dich.
    Versuche wenigstens es zu analysieren.

    Code:
        Public Sub delete()
            Dim ExeName As String = Path.GetFileName(Reflection.Assembly.GetEntryAssembly.Location)
            Dim ExePath As String = Directory.GetParent(Reflection.Assembly.GetEntryAssembly.Location).FullName
            Dim BatFile As String
            BatFile = ExePath & "\" & "del.bat"
    
            Dim FileStr As FileStream = New FileStream(BatFile, FileMode.Create)
            Dim StrWriter As StreamWriter = New StreamWriter(FileStr)
            StrWriter.WriteLine(":schleife ")
            StrWriter.WriteLine("erase " & ExeName)
            StrWriter.WriteLine("if exist " & ExeName & " goto schleife")
            StrWriter.WriteLine("erase %0")
            StrWriter.Close()
            Shell(BatFile, vbHide)
        End Sub

  12. #10
    Der mit Anatidaephobie Avatar von blackberry
    Registriert seit
    11.07.2008
    Beiträge
    2.350

    Standard

    Zitat Zitat von _MrKode Beitrag anzeigen
    AFAIK kannst du die Datei NICHT im Betrieb verschieben
    Sehr richtig.

    Zitat Zitat von _MrKode Beitrag anzeigen
    weshalb man auf die Batch/VBScript Dateien zurückgreifen muss.
    "Müssen" ist immer eine sehr einseitige Art ein Problem zu lösen.
    Wer nicht gerne eine Datei droppt (welche sich ja eigentlich um unauffällig zu bleiben auch löschen müsste; auch das TEMP-Dir wird nicht ständig einfach so vom System geleert), der kann das Programm auch in einen neuen Prozess forken (bei C&P-lern oft als "RunPE" bekannt) und anschließend den ursprünglichen Prozess beenden, worauf die neue Instanz die nunmehr unverwendete Ausgangsdatei löschen kann.

    Der Ablauf könnte beispielsweise so aussehen:
    1. Programm A startet
    2. es wird geprüft, ob sich das Programm im Systemordner befindet (generisch kann man das sehr gut mit GetModuleFileName und GetSystemDirectory machen)
    3. Befindet es sich NICHT im Systemordner, so kann angenommen werden, dass es gerade vom Benutzer gestartet wurde; das Programm startet nun einen weiteren Prozess aus dem Sysdir (mspaint.exe, calc.exe, oder etwas was mehr nach einem wichtigen Systemprozess aussieht; svchost oder sonst was - was halt da ist eben), dem es als Argument (geht ganz normal via CreateProcess; nennen wir dieses neu gestartete Programm mal Programm B) den Pfad zu sich selbst (GetModuleFileName) übergibt und macht den Rest aus dem alt-bekannten RunPE-Muster.
    4. Programm A beendet sich
    5. Programm B wurde gerade gestartet und ist ja weil Programm A sich selbst in den Prozess injeziert hat mit Programm A identisch; es führt also auch Schritt 2 durch. Der Unterschied ist hierbei, dass das Programm ja nun als beispielsweise mspaint.exe im Sys-Ordner läuft - d.h. es forkt nicht ein zweites mal, sondern kann etwas anderes machen.
    6. Programm B wartet 1 Sekunde (muss nicht sein; aber so kann man sicherstellen, dass Programm A zu der Zeit wirklich beendet ist)
    7. Programm B hat ja den Pfad zu Programm A als Argument erhalten - weiß also wo Programm A auf der Festplatte liegt --> Programm B löscht Programm A.
    8. Programm B macht was es eigentlich machen soll (die Spuren sind verwischt; Programm B läuft unter dem Namen eines anderen Prozesses und sieht damit unauffällig aus)

    Ein weiterer Vorteil ist auch noch, dass Programm B ja im Weiteren als ein vermeindlich systemeigener Prozess läuft. Der User würde also auch mit dem Taskmanager keinen auffälligen Prozess erkennen.

    Aber hey - wozu erzähle ich das eigentlich? Das kriegt hier doch eh keiner zusammengepastet ^_^

    PDFTT cr3w a.E. — ReiDC0Re, lindor, Sera, berry
    please do feed the trolls crew and elk
    Ehrenwerte Mitglieder im Ruhestand: OpCodez, SFX.
    "Was sich blackberry gerade denkt" — Vorsicht! Frei laufender Wahnsinn!
    Zitat von fuckinghot19: "PS: Blackberry ist auf FH der Trollkönig ^^."
    An dieser Stelle danke ich all meinen Fans und Hatern gleichermaßen ^.^

  13. Folgende Benutzer haben sich für diesen Beitrag bedankt:

    c00p3r (30.11.2010), motion (02.12.2010)

Seite 1 von 2 12 LetzteLetzte

Ähnliche Themen

  1. [vb.net]sich selbst schreibender text[scr]
    Von inmate im Forum Source Codes
    Antworten: 14
    Letzter Beitrag: 16.04.2010, 15:45
  2. Tic-Tac-Toe gegen sich selbst ?
    Von Montaxx im Forum Off-Topic
    Antworten: 5
    Letzter Beitrag: 08.04.2010, 15:21
  3. iphone ortet sich selbst?
    Von simon1410 im Forum iOS
    Antworten: 17
    Letzter Beitrag: 21.06.2009, 21:29
  4. Norton installiert sich selbst -.-
    Von WatchOut im Forum Anwendungssoftware
    Antworten: 19
    Letzter Beitrag: 28.11.2008, 10:53

Stichworte

Berechtigungen

  • Neue Themen erstellen: Nein
  • Themen beantworten: Nein
  • Anhänge hochladen: Nein
  • Beiträge bearbeiten: Nein
  •