DLL an Windows Explorer kapseln (ORDNER PASSWORTSCHÜTZEN)
-
hey leute ... brauch dringend professionelle hilfe!
Mein Ziel:
Herausfinden auf welchen Ordner (mit Ordnerpfad natürlich) der User gerade im Windows Explorer geklickt hat. Dies soll über ein Unterprogramm eine DLL Datei erfolgen Das heißt: ~~~~~~~~~~ o User klickt auf einen Ordner im Windows Explorer o Unterprogramm aus der DLL wird ausgeführt - Pfad vom angeklickten Ornder = vorhanden PLZ HELP
-
ich seh schon mit euch komm ich da nicht groß weiter ... also hab ich mir halt selbst eine lösung suchen müssen und auch gefunden ...
AN ALLE DIE BEHAUPTEN MAN KEIN PROGRAMM SCHREIBEN DAS ORDNER PASSWORTSCHÜTZ OHNE DEN ORDNER IN EINEN NEUE DATEI ZU KONVERTIEREN ....... ES GEHT DOCH
ich werds euch hier nicht lange erläutern aber geb euch einen tipp:
sucht mal unter "shell's namespace extensions" .... nur richtig verwenden dann hab t ihr eueren passwortschutz ... oder ihr wartet noch ein wenig bis mein programm dazu fertig ist
-
ich seh schon mit euch komm ich da nicht groß weiter
Wie wäre es mal deinen Ton zu überdenken???! Wenn dir niemand weiterhelfen kann
ist das eine Sache. Dann aber Monate danach hier zu trollen und zu sagen
"ätsch es geht, aber euch sagen wie, das mach ich nicht" bringt weder dich noch uns weiter.Da hättets du dann lieber ganz einfach den Rand gehalten und fertig!
Ein Forum lebt vom nehmen und geben. So wie ein Unternehmen. Wenn es dir nicht
passt, dass andere Leute DEINE Arbeit nicht machen wollen oder können, dann such
dir doch ein anderes Forum oder poste unter Projekte und nenne ein konkrete Summe die du zahlst.IN FETT UND GROSS ZU SCHREIBEN EMPFINDE ICH ÜBRIGENS ALS LÄSTIG, UNFREUNDLICH UND DUMM!!
Solche Leute kenne ich...die schleppt man in seinem Windschatten mit und andere
ernten am Ende das Lob dafür.
-
... wenn du gleich empfindlich darauf reagierst tut mir das natürlich schrecklich leid ... aber ich denke du hast das ein wenig falsch interpretiert ... es gibt nur so viele typen die behaupten es gäbe einfach keine möglichkeit eine passwortschutz für ordner zu programmieren ... dieser post soll nur zeigen, dass es trotzdem geht (fett und groß schreiben heißt in diesem zusammenhang nicht laut schreien).
wenn ich die lösung genau erläutern würde .. würd dies stundenlang dauern und für das hab i mom wirklich keine zeit ... ich hab hier nur mal einen lösungsansatz gegeben wie man starten könnte
vll solltest du auch nicht so schnell überreagieren
-
... wenn du gleich empfindlich darauf reagierst tut mir das natürlich schrecklich leid ... aber ich denke du hast das ein wenig falsch interpretiert ... es gibt nur so viele typen die behaupten es gäbe einfach keine möglichkeit eine passwortschutz für ordner zu programmieren ... dieser post soll nur zeigen, dass es trotzdem geht (fett und groß schreiben heißt in diesem zusammenhang nicht laut schreien).
wenn ich die lösung genau erläutern würde .. würd dies stundenlang dauern und für das hab i mom wirklich keine zeit ... ich hab hier nur mal einen lösungsansatz gegeben wie man starten könnte
vll solltest du auch nicht so schnell überreagieren
-
Ja, evtl. hast du recht. Kann sein, dass ich es überbewertet habe...
Hörte sich nur erst nach "ich will nen Virus schreiben" und "alle zu dumm hier" an.
Frust staut sich eben an, bis er sich irgendwo entläd... sry dude.Evtl. wäre ja auch der Weg über Datei-ACLs (Access Control Lists) eine
Möglichkeit?!Evtl auf diesem Wege...ungetestet:
SECURITY_DESCRIPTOR* psd = (SECURITY_DESCRIPTOR*)malloc(SECURITY_DESCRIPTOR_MIN_LENGTH); InitializeSecurityDescriptor(psd, SECURITY_DESCRIPTOR_REVISION1); ACL* pDacl = (ACL*)malloc(sizeof(ACL)); InitializeAcl(pDacl, sizeof(ACL), ACL_REVISION); SetSecurityDescriptorDacl(psd, TRUE, pDacl, FALSE); SetFileSecurity(TEXT("c:\\test"), DACL_SECURITY_INFORMATION, psd); free(pDacl); free(psd);
-
kein problem dude ... is ja nit weiter schlimm
danke übrigens auch für deine vorschlag ... werd das auch gleich ausprobieren ... ich schätz mal es soll auf das hinauslaufen, dass wenn man dann auf den ordner klickt die message "sie haben keinen zugriff auf diesen ordner" aufpoppen soll oder?
meine jetzige lösung is jedenfalls so aufgebaut das ich mich direkt an den explorer kapsle und der explorer dann in gewisser hinsicht gezwungen ist mein dll aufzuführen um gewisse ordner darzustellen zu können ... die dll kann dann entscheiden ob der user den ordner anschauen darf oder nicht
-
danke übrigens auch für deine vorschlag ... werd das auch gleich ausprobieren ... ich schätz mal es soll auf das hinauslaufen, dass wenn man dann auf den ordner klickt die message "sie haben keinen zugriff auf diesen ordner" aufpoppen soll oder?
Genau das! Und mit deinem Programm/deiner DLL kannst du das entsprechend
steuern. Vielleicht hilft es dir ja weiter
-
wird auch dem administrator der zugriff verweigert?
-
Hallöchen!
Also ich bin hier nur gerade mal reingeflogen und hab mich mit Deiner "Idee" noch nicht tiefer beschäftigt. Aber Du erzählst immer nur, dass Du Dich an den "Explorer hängst" um den Ordnerzugriff zu kontrollieren. Was passiert denn, wenn ich mir einfach meinen WinCommander auf'm USB-Stick mitnehme und Deine Ordner damit auslese?
Wie gesagt, ich hab mich mit der MAterie noch nicht weiter beschäftigt, hab aber ne Idee davon was Du vor hast und bin der Meinung, dass das nicht wirklich sicher sein kann, zumindest in der Form wie ich mir Sicherheit vorstelle. Aber da gibt es ja bekanntermaßen verschiedene Wahrnehmungen.
Das vielleicht nur als kleine Anmerkung. Vielleicht funktioniert es ja auch trotz WinCommander ... war halt nur nen spontaner Einfall.
Gruß,
Timo
-
damit hast du natürlich vollkommen recht timo, die implementierung erfolgt nur über den explorer ... das bedeutet das die "sicherheit" (für mancher user ist übrigens schon sicherheit wenn man einen ordner versteckt) nur für den explorer auch wirklich gewährleistet.
bei WinCommander und anderen explorern ist jedoch oft so dass diese ebenfalls über die WinApi's mit dem WinExplorer kommunizieren und deshalb den ordner trotzdem nicht so einfach öffnen können. ob dies bei allen so ist weiß ich allerdings noch nicht.
verwendet man z.b. aber andere betriebssystem (außer windows) ist der ordner natürlich trotzdem ein offenes buch.
großer vorteil meiner methode ist nur das der ordner samt dateien nicht in eine datei gewandelt werden muss, sondern immer noch ein ganz normaler ordner bleibt. ich denk das dies von der sicherheit her für standard user ausreicht.
-
soulbug schrieb:
großer vorteil meiner methode ist nur das der ordner samt dateien nicht in eine datei gewandelt werden muss, sondern immer noch ein ganz normaler ordner bleibt. ich denk das dies von der sicherheit her für standard user ausreicht.
huh? wie hast du sichergestellt, dass dein programm nicht beendet wird?
-
mein "programm" (DLL) wird nur vom Explorer aufgerufen wenn ein passwortgeschützter ordner aufgerufen wird ... tötest du mein programm tötest du somit in gewisser hinsicht den explorer selbst
-
soulbug schrieb:
mein "programm" (DLL) wird nur vom Explorer aufgerufen wenn ein passwortgeschützter ordner aufgerufen wird ... tötest du mein programm tötest du somit in gewisser hinsicht den explorer selbst
vermutlich hast du dich dann auch selbst aus der registry ausgesperrt, damit du die nötigen einträge für shell extensions nicht löschen kannst
-
Also sothis_ hat vollkommen Recht, so eine externe Lösung ist einfach viel zu leicht zu umgehen, das wollte ich mit dem WinCommander Beispiel ja schon andeuten. Das wäre natürlich nur die allereinfachste Lösung gewesen.
Also keine Bange, ich will Dein Vorhaben nicht schlecht reden, aber ich denke halt nur, dass es nicht zu mehr reichen wird als seinen 10-jährigen Bruder der keinen Plan von Windows hat nicht zu ermöglichen seine Pornosammlung zu finden.
Aber wie auch immer, ein Gutes haben solche Dinge trotzdem immer, man hat wieder was gelernt.Bis denn.
-
soulbug schrieb:
bei WinCommander und anderen explorern ist jedoch oft so dass diese ebenfalls über die WinApi's mit dem WinExplorer kommunizieren und deshalb den ordner trotzdem nicht so einfach öffnen können. ob dies bei allen so ist weiß ich allerdings noch nicht.
Quark. Solche Programme verwenden normale Dateizugriffsfunktionen (FindFirstFile, FindNextFile) zur Anzeige von Ordnern. Mit dem Explorer wird da überhaupt nicht kommuniziert. Solange Du also keinen Dateisystemfilter schreibst, kann jeder Hein Blöd auf die "geschützten" Ordner zugreifen. Und sei es mit cmd.exe.
Ansonsten frage ich mich, warum Du überhaupt noch andere Vorschläge willst, wenn Deine Lösung doch so gut funktioniert.
-
ich seh schon eure ironie ist nicht zu überhören .. ihr habt ja auch (teils
recht.
1. bei WinCommander hab ichs noch nicht getestet ... bei total commander funktionierts
2. 90% der user wissen gar nicht was die registry ist oder gar wie man eine shell extension deregegistriert
3. woher kriegt FindFirstFile überhaupt die informationen welche dateien sich in einem verzeichnis befinden?
4. wie möchtest du bitte dateisystemfilter schreiben?
-
Die Lösung von Shell32 bleibt interessanter weise außer acht.
Wobei das doch ein ziemlich guter weg ist. Hab eben selber mal probiert
und man kann damit wunderbar Ordner vor dem Zugriff schützen.
-
welche lösung meinst du? meine oder eine andere oder ...?
-
Er sagt glaube ich nicht umsonst, die Lösung von Shell32...
Also meint er wahrscheinlich diese:SECURITY_DESCRIPTOR* psd = (SECURITY_DESCRIPTOR*)malloc(SECURITY_DESCRIPTOR_MIN_LENGTH); InitializeSecurityDescriptor(psd, SECURITY_DESCRIPTOR_REVISION1); ACL* pDacl = (ACL*)malloc(sizeof(ACL)); InitializeAcl(pDacl, sizeof(ACL), ACL_REVISION); SetSecurityDescriptorDacl(psd, TRUE, pDacl, FALSE); SetFileSecurity(TEXT("c:\\test"), DACL_SECURITY_INFORMATION, psd); free(pDacl); free(psd);