I've read some documentations about Alternate Data Streams
and I'm thinking about using them in my own projects. However there is so much unknown knowledge and open questions that I still have before I decide to use them. That's why I made this question list:
- How do you enum Streams without the Sysinternals tool
streams
? - Does a stream affect the "Host" File's MD5 Value?
- What happens if I copy/cut the "Host" File to another (NTFS) Path? Do the streams copy/cut themselves too?
- What happens if I copy/cut the "Host" File to another Path that is NOT NTFS?
- Is it possible to have another Stream in an existing stream?
- Since you will have an actual filehandle for each stream, is it possible to change a stream's attributes?
- Can I use the
LoadLibrary
API to load a DLL from a stream? - Is it possible to execute (e.g.
ShellExecute
) a stream? - What are the advantages/benefits/disadvantages using
Alternate Data Streams
? - What do I have to be cautious about if I use
Alternate Data Streams
?
I'm looking forward to your answers/infos/summarys. The preferable language is Delphi but any other language will do too, as long as it uses the WinAPI
.