![]() |
ADS Stream lesen
Ich versuche gerade einen ADS Stream zu lesne, nur leide rkommt da bei mir nur Mist raus. Einen ADS Stream kann man sich zum Beiepil mit Notepad anzeigen lassen:
Code:
Wobei die Zeichenfolge hinter dem Doppelpunkt der ADS-Name ist. Wenn man Dateien mit dem IE runterläd wird ein ADS Stream mit dem Namen Zone.Identifier angehangen mit dem Inhalt:
notepad tscc.exe:Zone.Identifier
Zitat:
Delphi-Quellcode:
IN FFilename steht deer Pfad, Exename und der ADS-Name korrekt drinne.
function TMpuADS.GetDataStream(const StreamName: WideString; StreamSize: Int64): WideString;
var hFile : THandle; ReadBuffer : WideString; BytesRead : DWORD; begin hFile := CreateFileW(PWideChar(FFilename), GENERIC_READ, FILE_SHARE_READ, nil, OPEN_ALWAYS, 0, 0); if hFile <> INVALID_HANDLE_VALUE then begin Setlength(ReadBuffer, StreamSize); if ReadFile(hFile, ReadBuffer[1], StreamSize, BytesRead, nil) then SetString(Result, PWideChar(ReadBuffer), StreamSize) else begin CloseHandle(hFile); raise Exception.CreateFmt(rsExceptionTemplate, [GetLastError, SysErrorMessage(GetLastError)]); end; CloseHandle(hFile); end; end; Bekomme ich allerdings nur Datenmüll: [code]?????????????er :$DATA ???[quote] Das $DATA hing anfangs noch am ADS-Namen dran, das hab eich abgeschnitte. Was mache ich da falsch? |
Re: ADS Stream lesen
Hallo Michael,
schau mal:
Delphi-Quellcode:
Der Alternate Data Stream wird vom IE nicht als Unicode geschrieben. Ob du $DATA anhängst oder nicht ist egal - $DATA ist Default.
var
s: string; begin with TFileStream.Create(fn, fmOpenRead) do try SetLength(s, Size); Read(s[1], Size); ShowMessage(s); finally Free; end; end; Gute Nacht |
Re: ADS Stream lesen
Zitat:
Ich bin davon ausgegangen, da alle anderen Funktionen Unicode-Strings erwarten und verarbeiten und es NTFS ist und es ab Windows 2000 ADS gibt, dass zumindest Microsoft Software selber Unicode zum Schreiben benutzt. Aber das lehrt einen mal wieder, dass man sich auf Microsoft nicht verlassen kann. Besten Dank, das war es. |
Re: ADS Stream lesen
hi luckie,
veröffentlichst du das Programm (evtl. inkl. Code) später als Freeware, wenn du es fertig hast? wäre sehr daran interessiert, nach ADS zu suchen, auszulesen/exportieren, löschen, etc. Gruß Frank |
Re: ADS Stream lesen
|
Re: ADS Stream lesen
Aber nicht als Opensource. Meins wird aber definitiv Opensource. ;) Kommt in den nächsten zwei drei Stunden.
|
Re: ADS Stream lesen
Here we go:
![]() |
Re: ADS Stream lesen
Hallo Luckie... :)
Wie könnte ich anhand deine routine denn jetzt zum beispiel prüfen ob der ADS Stream "xyz" existiert ? :oops: |
Re: ADS Stream lesen
Lad dir mein Programm runter und guck dir die Klasse an.
|
Alle Zeitangaben in WEZ +1. Es ist jetzt 10:51 Uhr. |
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz