Windows hat ein Limit in der Pfadbezeichnung von 248 Zeichen und im Dateinamen von 260 Zeichen. Ich vermute aber, Andreas Problem war doch etwas anderer Art.
Trickserei: Programmpfad ermitteln
-
-
-
Zitat von horsthorn;677095
Frank
Da hast Du aber auch ein extra langes Verzeichnis gemacht
Kein Wunder, dass dem bereitgestellten Speicher "die Puste ausging !"
Das lag nicht an Frank, sondern an mir. Ich dimensioniere normalerweise immer auf mindestens MAX_PATH. Hier wollte ich 1000 Bytes dimensionieren - das reicht immer, hab mich aber verschrieben und nur 100 Bytes dimensioniert. Franks Pfad lag etwas über 100 Bytes, deshalb klappte es dort nicht.
Hier noch ein paar Screenshots...1.) Rootkit Unhooker:
RKU lädt einen Treiber in den Kernel, kann aber trotzdem nicht den richtigen Pfad ermitteln.
http://www.postimage.org/image.php?v=Pq2yjcg02.) ProcessExplorer von Sysinternals:
Mark Russinovich hat das Ding wohl geschrieben (schreibt RootKit Scanner). Wenn der den Pfad nicht ermitteln kann, wer kann es dann?http://www.postimage.org/image.php?v=Pq2ykbCA
http://www.postimage.org/image.php?v=aV2j_wz9
3.) Security Taskmanager:
Der Security Taskmanager liest zumindestens die Programmbeschreibung aus dem Speicher aus und nicht von der Festplatte (BRAVO!). Den Pfad ermittelt das Programm aber auch nicht korrekt!http://www.postimage.org/image.php?v=Pq2ylHp0
4.) Kernel Detective 1.1
Wenn etwas schon "Kernel Detective" heißt, sollte man doch annehmen, dass das Programm auch den Pfad aus dem Kernel holt und korrekt anzeigt. Tut es das aber :D?Was wollte ich jetzt eigentlich damit sagen?
These und Merksatz:
Sämmtliche APIs holen sich den Pfad zu einer ausgeführten EXE nicht aus dem Kernel (Virtueller Speicher oberhalb von 2GB), sondern aus dem Usermode Speicher (Virtueller Speicher unterhalb von 2GB) des jeweiligen Prozesses. Da jeder Prozess natürlich keinerlei Berechtigungen dafür braucht, in den eigenen Virtuellen Speicher zu schreiben, kann jeder Prozess seine Pfadangabe ohne Probleme ändern. Jede Pfadangabe ist also bei der Bekämpfung von Viren mit Vorsicht zu genießen, denn diese Angaben sind jederzeit änderbar und müssen nicht korrekt sein!Es fehlt also scheinbar noch ein Programm, was Pfade korrekt anzeigen kann, oder zumindestens ermitteln kann, ob ein Pfad korrekt ist oder nicht.
Wer hat Lust so etwas zu schreiben? -
Zitat von AHT;677222
4.) Kernel Detective 1.1
Wenn etwas schon "Kernel Detective" heißt, sollte man doch annehmen, dass das Programm auch den Pfad aus dem Kernel holt und korrekt anzeigt. Tut es das aber :D?
Hier der Screenshot dazu :D...
[Blockierte Grafik: http://www.postimage.org/Pq2yEPa0.jpg] -
Zitat
Wer hat Lust so etwas zu schreiben?
Hehe, du? Mir ist das echt zu hoch...
-
Zitat von Frabbing;677243
Mir ist das echt zu hoch...
Das ist viel leichter als es aussieht, das nehme ich dir also nicht so ganz ab. Es gibt aber bislang noch kein solches Tool - da ist also für jeden noch Platz, etwas neues zu entwickeln.Mal noch einmal die Problematik:
Der Pfad zur Prozesserzeugenden Datei wird nicht im Kernel gespeichert, sondern befindet sich im Usermode, wo er jederzeit änderbar ist. Scheinbar liegt hier ein Sicherheitsproblem von NT-basierenden Windowsversionen vor (einschließlich Vista). 8O
Was tut man aber, wenn man den Eindruck hat, dass Malware auf dem Rechner läuft, der Virenscanner aber nichts anzeigt? Man holt sich den Pfad zu der verdächtigen geladenen Datei und schickt diese unter evtl. zur Überprüfung ein. Aber welche Datei wird da unter Umständen zur Überprüfung eingeschickt?
Wenn ich den Eindruck habe, es geschieht etwas merkwürdiges auf meinem Rechner, schaue ich mir unter anderem die Hersteller in der Resource an. Aber welche Resourcen werden da immer angezeigt? Die der geladenen Datei oder die der Datei, auf die der Pfad verweist? 8OLösungsansätze:
1.) Die Pointer, die man benötigt um den Pfad zu ändern, sind recht gut dokumentiert und deshalb einfach zu ändern. Man könnte sich also eine undokumentierte API suchen, die eine entsprechende Pfadrückgabe liefert und diese an anderen Stelle im Speicher ausliest.
Eine solche API gibt es zumindestens ab XP Servicepack 3 und natürlich unter Vista (wie gesagt, undokumentiert - habe ich mir selbst gesucht). Wie sicher diese ist und ob diese API den "Pfad" wirklich nicht aus dem Usermode nimmt, habe ich noch nicht überprüft - wäre also noch offen. Desweiteren liefert diese API nicht direkt den Laufwerksbuchstaben zurück - man müsste die Rückgabe also "Mappen". Wie man das macht? Hab da noch keine Ahnung, dürfte aber eigentlich nicht ganz so schwierig sein...2.) Man könnte auch nur überprüfen, ob die geladene Datei wirklich mit der Datei auf der Festplatte übereinstimmt. Stimmt sie nicht überein, hätte man einen zusätlichen Hinweis auf eine laufende Malware und man könnte sich die Registry per Hand etwas genauer vornehmen.
3.) Desweiteren könnte man die Resource aus der geladenen Datei extrahieren und nicht von der Festplatte holen. Teilweise tut das ja wohl der Security Taskmanager. Wie man das macht? Noch keine Ahnung...
-
Zitat
Das ist viel leichter als es aussieht, das nehme ich dir also nicht so ganz ab.
Ich denke, man muss sich mit dem Thema schon etwas auseinander setzen, und man muss es auch wollen. Mir persönlich ist das alles zu trocken, obwohl die Ergebnisse ja interessant sind.
Mein Bruder z.B. liebt Statistiken, was sich auch daran zeigt, dass seine bevorzugten Computeraktivitäten das Spielen von Managern und realistischen Simulationen sind, was mein Fall überhaupt nicht ist. Halt jedem das Seine. -
Zitat von Frabbing;677324
Ich denke, man muss sich mit dem Thema schon etwas auseinander setzen, und man muss es auch wollen. Mir persönlich ist das alles zu trocken, obwohl die Ergebnisse ja interessant sind.
Mein Bruder z.B. liebt Statistiken, was sich auch daran zeigt, dass seine bevorzugten Computeraktivitäten das Spielen von Managern und realistischen Simulationen sind, was mein Fall überhaupt nicht ist. Halt jedem das Seine.
Das kann ich verstehen - du bist ja nicht alleine angesprochen...
Es wird in Zukunft meiner Meinung auf jeden Fall Viren geben, die ihren Pfad in dieser Art und weise "maskieren" - alleine schon wegen der UAC in Vista, und es wird dann keine vernünftige Anwendung geben, die den richtigen Pfad der Malware anzeigt oder auf eine solche Manipulation überhaupt hinweist.
Bevor ein Virenscanner den Code einer solchen Malware erkennt, wird es unter Umständen sehr lange dauern und es wird großer Schaden entstehen.Beispiel: Virus NTOS.EXE
NTOS.EXE war eine Malware, die unteranderem Bankkontodaten geklaut hat. Der Injektor NTOS.EXE injizierte dabei eine unsichtbare RootKit-DLL (die eigentliche Malware) in SMSS.EXE und den Taskmanager.
Virenscaner erkannten die Malware erst nach einigen Wochen, der Schaden war groß.
Da ich bereits zwei Jahre zuvor mit dem Auftreten solcher "RootKits" gerechnet hatte, hatte ich bereits da eine Software geschrieben, die nach solchem unsichtbaren Code scannt und diesen als Malware anzeigt. Die Entfernung der Malware vom Rechner meines Sohnes kostete mich deshalb nur ein müdes Lächeln und knapp 10 Minuten Zeit.Ich habe erst andere Sachen vor und es kann etwas dauern, bis ich halbwegs vernünftigen Code für einen Pfadscanner zusammenbekomme. Wer also Interesse hat, noch vor mir etwas zu schreiben, was sehr sinnvoll ist und was es noch nicht gibt, kann mit meiner Unterstützung rechnen. Es ist immer ein Risiko detallierte Fragen zu einem Scanning nach Malware öffentlich in einem Forum zu beantworten - bitte dann anderweitig Kontakt suchen.
Code ist selbst zu schreiben, man sollte also schon etwas Ahnung vom Programmieren haben. -
Zitat von AHT;677259
...Man könnte sich also eine undokumentierte API suchen, die eine entsprechende Pfadrückgabe liefert und diese an anderen Stelle im Speicher ausliest.
Eine solche API gibt es zumindestens ab XP Servicepack 3 ...
Gerade ausgetestet, diese hier angesprochene undokumentierte API existiert auf allen XP Versionen.Zitat von AHT;677259
Wie sicher diese ist und ob diese API den "Pfad" wirklich nicht aus dem Usermode nimmt, habe ich noch nicht überprüft
Habs jetzt überprüft, die API holt den Pfad nicht aus dem Usermode, ist also recht sicher. -
Zitat von AHT;680198
Gerade ausgetestet, diese hier angesprochene undokumentierte API existiert auf allen XP Versionen.
Habs jetzt überprüft, die API holt den Pfad nicht aus dem Usermode, ist also recht sicher.
Nochmal... Wer Lust hat, mal einen Pfadscanner für Betriebsysteme ab XP zu schreiben, kann von mir dafür Infos bekommen. Horst - keine Lust mal eine schöne Oberfläche für so etwas zu schreiben? -
Zitat
Horst - keine Lust mal eine schöne Oberfläche für so etwas zu schreiben?
Jederzeit, aber dann muss ein Grundprogramm vorliegen, damit ich weiß, was auf der Oberfläche angesiedelt wird
Frage dazu: Wie komme ich zu der Ehre
-
Zitat von horsthorn;685197
MüllSchlucker
Jederzeit, aber dann muss ein Grundprogramm vorliegen, damit ich weiß, was auf der Oberfläche angesiedelt wird
Es geht um das Scannen von Prozessen und das Anzeigen des richtigen Pfades zur Prozesserzeugenden EXE (müßte also wohl ähnlich aufgebaut sein, wie ein Taskmanager). Hat das Programm dort Unstimmigkeiten gefunden, soll es das dem User möglichst eindeutig anzeigen - das kann ja unter Umständen ein Hinweis auf Malware sein. Wie das umzusetzen wäre, wäre deine Sache, ich verrate dir die Technik dazu. Ein paar Kleinigkeiten wären ebenfalls noch auszutüfteln, ich denke aber, das bekommst du hin.
Zitat von horsthorn;685197
Frage dazu: Wie komme ich zu der Ehre
Da es so ein Programm scheinbar bislang noch nicht gibt (alle Programme, die ich kenne, zeigen bei meinem Testprogramm den falschen Pfad an), sollte möglichst schnell etwas geschrieben werden, was den korrekten Pfad anzeigen kann. Bei mir würde das noch dauern, bis ich Lust habe, mich da ranzusetzen.
Desweiteren: Das, was das Programm am Ende tut, ist sehr unscheinbar - da muss also die Oberfläche "was hergeben", damit die Leute es benutzen und gut finden. Im Prinzip bin ich gespannt, was du aus so einer unscheinbaren Sache machen würdest. -
Wenn ich Horst richtig verstanden habe, hat er doch erst mal wieder einen Rückzieher gemacht - kann ich im Prinzip verstehen, finde ich aber sehr schade :(.
Nochmals wegen Missverständnis: Es geht nicht darum, irgendeine Oberfläche für ein Programm für mich zu schreiben, sondern es geht darum, Infos zum Schreiben für eine Art "Taskmanagertool" ab XP zu bekommen, was eine bestimmte Sache kann, die weltweit wohl bislang kein anderes Tool auf die Reihe bekommt. Die Anwendung gehört dann dem, der sie schreibt - wer Lust hat, mich dort in den "Credits" zu erwähnen, kann das gerne tun, aber auch das muss nicht sein.
Grundvoraussetzungen, die man mitbringen sollte, um sich in das, was ich weiterzugeben habe, einfinden zu können:
1.) Grundkenntnisse (aber wirklich nur Grundkenntnisse) in der Anwendung von APIs
2.) Englischkenntnisse wären wünschenswert
3.) Man sollte in Profan programmieren
Sollte sich keiner melden, schreibe ich auf Dauer selbst was. -
Hallo Horst...
Nochmals ich - - hättet du Interesse an einer "Gemeischaftsarbeit" in dieser Sache; in etwas so, wie du dir das gedacht hast?
Ich traue dir zwar sehr viel mehr zu, als du dir selbst - hätte aber Lust und in zwei Wochen auch Zeit, dir ein paar sehr einfach aufzurufende Prozeduren bezüglich des "Pfadfinders" zu schreiben - du müsstest dich dann nicht mit Englisch und API auseinandersetzen.
Also - doch mal Lust und Zeit, ein "Sicherheitsproggie" zu schreiben?Ein "effektives Urheberrecht" an der Sache möchte ich im Prinzip nur soweit, dass du den Quelltext der Anwendung (auch in Teilen) nicht weitergibst - alle anderen Nutzungsrechte gebe ich dir. Du kannst es also veröffentlichen, wo du möchstest und zur Not dafür auch Geld kassieren (ich denke aber, dafür will keiner was bezahlen ). In den Teilen, wo das keine rechtliche Grundlage hat, vertraue ich dir. Du hättest die meiste Arbeit an dem Ding und sollst dann auch als Autor gelten, das ist mir wichtig.
Ich will "KernelLeak" insoweit fertig haben, dass es einigermaßen in Profan läuft - dann käme diese Sache. -
MüllSchlucker
Grundsätzlich: Ja - und wenn du schreibst, in 2 Wochen, ist das perfekt.
Im Moment "ärgere" ich mich nämlich mit einem Filter-Programm herum, dass ich einem Forum-Mitglied versprochen habe.
Das läuft aber noch nicht so, wie ich will. :mad:
Wenn du also die Proceduren schreiben willst, dann ist meine Antwort "Schau'n mer mal !"
Wenn erst mal ein Startcode da ist, werde ich mich schon "verbeissen !" -
Zitat von horsthorn;696007
MüllSchlucker
Grundsätzlich: Ja - und wenn du schreibst, in 2 Wochen, ist das perfekt.
Im Moment "ärgere" ich mich nämlich mit einem Filter-Programm herum, dass ich einem Forum-Mitglied versprochen habe.
Das läuft aber noch nicht so, wie ich will. :mad:
Wenn du also die Proceduren schreiben willst, dann ist meine Antwort "Schau'n mer mal !"
Wenn erst mal ein Startcode da ist, werde ich mich schon "verbeissen !"
Hört sich gut an. -
Hallo Horst...
Hab das "Grundgerüst" fertig (-> ist wirklich nur das Grundgerüst, so ziemlich ohne GUI). Das Ding sollte sich unter Vista Adminrechte anfordern - soll ich ein Manifest mitschicken, das ich persönlich dafür vorschlage, oder regelst du das lieber über das Profan ShellExec (beides hätte seine Vorteile, und bei Shellexec weißt du ja, wie es geht)?
Ich weiß nicht genau, ob die PM hier Anhänge in solcher Größe dulden - wäre nett, wenn du mir per PM eine Mailadresse senden könntest, an die ich die Sachen schicken kann.
Ich habe in den Quelltext einige Erklärungen eingefügt - solltest du dann doch noch irgendwelche Fragen haben, einfach noch mal melden. Verstehst du irgendwas nicht, liegt das an mir und nicht an dir - und Probleme, die an mir liegen, lassen sich auf jeden Fall beseitigen.
Das was ich dort verwende, ist komplett undokumentiert und funktioniert ab XP (bin zufällig auf meinem eigenen Rechner darauf gestoßen, als ich nach bestimmten undokumentierten Sachen gesucht habe) - ist an manchen Stellen also eigene "Bastelarbeit" hoch drei, die sich auf jeden Fall noch verbessern lässt (das würde jetzt unter Franks Try&Error fallen ).
PS: Bin zwar höllisch gespannt, was du aus der Sache mit XProfan11 machst - mach dir aber keinen Stress - progge also erst die anderen Sachen fertig, an denen du arbeitest.
Hier ein für mich sehr interessanter Screenshot des "Grundgerüstes" unter Vista:
http://www.postimage.org/image.php?v=aVnM_zA -
Zitat von horsthorn
Hallo Andreas
Dann lass mal "rüberwachsen"
Muss grad an einen anderen Rechner - hab hier keine Mail.
Quelltexte kommen gleich. -
Sorry, die PH hatte ich vergessen. Ist Unterwegs.
-
Hallo Horst...
Besten Dank für deine Rückmeldung wegen des "Ratterns".
Hab jetzt einen Rechner bei mir gefunden, wo es auch rattert - das du da Angst bekamst, kann ich gut verstehen .
Das Rattern liegt an der API GetVolumeInformation und daran, dass die versucht auf A: zuzuigreifen - die API brauche ich aber scheinbar gar nicht unbedingt.
Ich werde da noch was ändern und schicke dir das Ergebnis in den nächsten Tagen zu - hab im Augenblick leider Nachtdienst. -
So, hab's fertig :birne:.
Keine Bastelei mehr, kein Zugriff auf's Floppy und außerdem wesentlich schneller.
Schicke es gleich zu. -
Jetzt mitmachen!
Sie haben noch kein Benutzerkonto auf unserer Seite? Registrieren Sie sich kostenlos und nehmen Sie an unserer Community teil!