file ohne hexeditor bearbeiten

  • hallo leute,

    habe folgendes script geschrieben:



    Hinter der Variable $hexeditor steckt der beliebte HxD Hex Editor. Mit diesem Script kann ich die ersten 52 Bytes einer Hexdatei ohne Probleme löschen, nur wird der HexEditor beim ausführen nicht versteckt, auch wenn ich @SW_HIDE verwende, da ja die Eingaben der Tastatur nur aufgenommen werden können wenn der Editor maximiert ist!
    Ich möchte nun die Funktion des HexEditors realisieren ohne den Editor zu benutzen! Ich habs schon mit '_WinAPI_WriteFile' mit Hilfe des Beispiels in der Hilfe versucht, aber nicht wirklich zu dem Ergebnis gekommen, wie mit dem Editor!
    Danke schonmal im Vorraus!

    Einmal editiert, zuletzt von egezgin (7. März 2009 um 23:09)

  • Danke für deine Antwort!

    Ich hatte es schon mit der Binary Mode (16) versucht, ich kommen nur nicht damit klar! Ich muss nachdem ich die Datei mit dem 'FileOpen' geöffnet hab, die Datei mit 'FileWrite' beschreiben bzw. ändern, oder? Das Problem ist, dass ich die ersten 52 Bytes eben löschen möchte, aber mir nicht klar ist, wie ich das mit 'FileWrite' machen soll.

  • Danke dir! Habs jetzt so versucht, aber passieren tut leider nichts, die Datei bleibt so wie sie ist:

    Code
    FileOpen($file, 2 + 16)
    $string = FileRead($file)
    $result = StringTrimLeft($string, 52)
    FileWrite($file, $result)
    FileClose($file)

    oder so:

    Code
    FileOpen($file, 16)
    $string = FileRead($file)
    FileClose($file)
    $result = StringTrimLeft($string, 52)
    FileOpen($file, 2)
    FileWrite($file, $result)
    FileClose($file)

    Was ist der Fehler bzw. an was könnte es liegen?

    Edit: Möchte was an dem Problem ergänzen; die ersten 52 Bytes sind nicht immer gleich, d.h. man kann nicht voraussagen, was in der Datei steht und somit im Script keine feste Angabe darüber machen!

    Einmal editiert, zuletzt von egezgin (7. März 2009 um 16:29)

  • Das löscht genau die ersten 52 Bytes einer Datei

    [autoit]

    $file = 'Test.exe'

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

    $hFile = FileOpen($file, 16)
    $string = FileRead($hFile)
    FileClose($hFile)
    $result = '0x' & StringTrimLeft($string, 106)
    $hFile = FileOpen($file, 18)
    FileWrite($hFile, $result)
    FileClose($hFile)

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