ProzessTotal - Klappe, die erste!

(Originalartikel schöner formatiert und lesbarer unter http://ken.xe.cx/)

* * * * * * * * * * * * * * * * * * * * * * * * * * * *
ProzessTotal - Klappe, die erste!

(Klicken zum vergrößern)

Hallo.

Ich lerne C# und jetzt ist mein allererstes Programm fertig. Ich zitiere in diesem Artikel hier am besten einfach an einigen Stellen aus der beigelegten Hilfe.
Was ist ProzessTotal?
Mit ProzessTotal kann man alle aktuell laufenden Programme ermitteln und von VirusTotal.com analysieren lassen. Dabei kann man zum einen die md5-Summe derselben errechnen (das ist quasi eine für jedes Programm spezifische, 32 Zeichen lange Zeichenkette) und schauen, ob das Programm bereits bei VirusTotal.com analysiert wurde - und zum anderen die Programme auch einfach direkt hochladen.
Download
@filebin.ca
@multiupload.com (@rs, @ml, @df, @hf)

Weiterführende Informationen
Wie zuverlässig sind die Ergebnisse?
Das lässt sich nur schwer sagen. Es ist möglich, dass ein System von völlig unerkannter Malware infiziert ist, welche selbst von den teuersten AntiViren-Programme nicht erkannt werden kann. Denn AntiViren-Programme sind im Grunde nichts anderes als schwarze Listen - und wie soll etwas auf einer schwarzen Liste landen, von dem niemand weiß?
Sicher ist aber, dass Sie mit dem Benutzen von ProzessTotal den Malware-Herstellern keinen Gefallen tun: Denn da VirusTotal.com mit den AntiViren-Herstellern zusammenarbeitet, werden alle dort hochgeladenen Programme weitergereicht und von den Herstellern analysiert, da diese grundsätzlich alle verdächtig sind. Die Folge ist, dass unerkannte Malware in vielen Fällen nach einigen Wochen erkannt wird.
Der Quellcode
Ich werde die Projektmappe von ProzessTotal jedem komplett zur Verfügung stellen und das hat drei Gründe. Zum ersten ist es eigentlich keine große Sache, wahrscheinlich für den C#-Erfahrenen keine halbe Stunde Arbeit und wenn ich damit jemandem helfen kann, etwa bei der Kommunikation mit VirusTotal.com via C#, dann ist das doch eine gute Sache. Zweitens sind freie Werke im Internet sowieso eine gute Sache. Und der dritte Grund ist der eigentlich mir am nahe liegenste: Wie gesagt, ich bin auf dem C#-Gebiet ein blutiger Anfänger, noch völlig neu. Und wenn jetzt jemand aus Interesse mal in den Quellcode 'reinschaut, wäre es mir eine Freude, wenn er mir sagt, was ich besser machen kann. Wenn ich etwas geschickter und eleganter lösen könnte, wenn etwas viel zu kompliziert ist, wenn es logische Fehler gibt, wenn es Unstimmigkeiten gibt - dann möchte ich das gerne wissen. Also nur zu, wer sich das Programm "von Innen" anschaut, der darf mich auch gerne kontaktieren und sagen, was er weiß oder anmerken will.
@filebin.ca
@multiupload.com (@rs, @ml, @df, @hf)

Schlusswort
Am meisten Sicherheit ist bei einem restriktiv-konfiguriertem System gegeben, auch eine gute Firewall könnte eventuell helfen. Man sollte zudem seine Programme immer aktuell halten, damit gefundene Sicherheitslücken dort schnellstmöglich behoben werden können. AntiViren-Programme selbst können zwar nicht schaden, helfen im Ernstfall aber nur bedingt.
ProzessTotal wirkt nicht präventiv gegen Malware, ist aber nette und erleichternde Methode, die aktuell laufenden Programme doch mal unter die Lupe zu nehmen.

Lizenz
ProzessTotal ist unter einer Creative Commons-Lizenz lizenziert. Sie dürfen es vervielfältigen, verbreiten, öffentlich zugänglich machen und Abwandlungen und Bearbeitungen anfertigen. Es wäre toll, wenn Sie dabei irgendwo lesbar auf meine Webseite http://ken.xe.cx/ verlinken würden.
Den Lizenzvertrag finden Sie hier: http://creativecommons.org/licenses/by-nc/3.0/de/legalcode
 
Ähem. Also wenn man schon C# benutzt, könnte man auch eine vernünftige Benutzeroberfläche zur Verfügung stellen. Ansonsten ein recht interessanter Ansatz, könnte ganz praktisch sein, sofern du die Prozesse Lowlevel abfragst. Das vermute ich aber aufgrund der Tatsache, dass du C# verwendest, nicht.
 
Ähem. Also wenn man schon C# benutzt,
Was hast Du für'n Problem mit C#?
könnte man auch eine vernünftige Benutzeroberfläche zur Verfügung stellen.
Wie meinen?
Ansonsten ein recht interessanter Ansatz, könnte ganz praktisch sein,
Dankeschön.
sofern du die Prozesse Lowlevel abfragst. Das vermute ich aber aufgrund der Tatsache, dass du C# verwendest, nicht.
Nein, noch nicht, daran werd ich mich demnächst mal machen. Die Prozesse werden ganz normal mit der C#-Funktion GetProcesses abgefragt, ich hatte irgendwie nicht dran gedacht, dass das längst nicht alle sein können. Denn wie gesagt, ich bin blutiger Anfänger in C#.
 
C# ist mir zu Higlevel. Aber das ist ein anderes Thema...

Fürs erste publik gemachte Programm ist das schon ganz ok.

/edit:
Ok ich geb zu, "vernünftiges UI" war ein bisschen harsch. Ich fänds persönlich nur besser statt der md5-Summe in der Tabelle den Abbildpfad anzugeben und die untere Fensterhälfte durch Tabs zu strukturieren.
 
Zuletzt bearbeitet:
Die Informationen bei Treffer könnte man zumindest in der Hilfe nochmal kurz erklären wäre
dann für jeden etwas leichter zu interpretieren. Die Oberfläche finde ich ansonsten durchaus ansprechend!
 
Hallo Ken,

ich finde Dein Tool gut. Inhaltlich finde ich besonders cool, dass Du das Wissen anderer (hier bekannte Programme von Virustotal) integrieren willst. Meiner Meinung nach ist das komzeptionell sehr zielführend.

Ah im Übrigen: GetProcesses() nutzt:
ntdll.dll: NtQuerySystemInformation
 
Die Idee finde ich sehr gut, mir ist bis jetzt nichts ähnliches untergekommen.
Ausserdem ist der Post schön durchgearbeitet, Programm gut vorgestellt, Source + Binaries auf verschiedenen Hostern. Solche Threads braucht das Board :)

Lass dir von ewigen Ich-bin-sowas-von-besser-als-du!-Leuten nicht die Motivation verderben, die sind nur neidisch weil sie 3 Zeilen unter ihrem Namen was Rotes haben :wink:
 
Mir sind mehrere Kleinigkeiten aufgefallen:
- Wenn ich das Programm bei mir als Vollbild ausführe, dann ist die Höhe der Liste ungünstig, da der unterste Eintrag nur zur Hälfte lesbar ist. (eher kosmetisches Problem)

- Gerade für eher unerfahrene User sollte mindestens ein Hinweis gezeigt werden, dass das Programm nur die Prozesse des genutzten Benutzeraccounts analysiert werden können. Wenn der Account Adminrechte hat, mag das egal sein, aber bei eingeschränkten Rechten kann es dann doch sinnvoll sein, das Programm als Administrator zu starten. Darauf könntest du z.B. bei der Info zu Prozessen hinweisen, die du ausgegraut hast.

- Irgendwie ist es mir nicht ganz klar, was passiert, wenn man einen Prozess auswählt und bei VT hochläd. Für Treffer steht da nur "Ausstehend" und das war es. Ein Ergebnis bekomme ich nur, wenn ich auf "Auf VT suchen" klicke. An dieser Stelle finde ich den Programmablauf unlogisch.



Ich habe mir den Source noch nicht angesehen, aber so wirkt das Programm erstmal ganz gut :)
 
ich nehme an du setzt den upload per http1.1 ab?
damit habsch hier mit nem transparenten squidproxy probleme :)
für bessere compatiblität wäre http1.0 besser :)
 
Hallo nochmal,
hab mir mal die source angeschaut. Probleme wird es dann geben, wenn der Anbieter seine HTTP Forms ändert. Warum stellt der Anbieter denn nicht einfach xml webservices zur Verfügung. Schlag ihm das doch mal vor. Ansonsten mach ich es.
Ansonsten:
Schön, dass Du die User-Agents variierst.
VT_Upload: sehr elegant: new Byte[checked((uint)Math.Min(4096, (int)fileStream.Length))];
VT_Upload: Du solltest hier eine Fehlerbehandlung einbauen. Das Programm würde crashen wenn die Datei im nicht lesbaren Zugriff ist, die hochgeladen wird.
Vorschlag: Ich würde vielleicht noch ein bisschen objektorientierter herangehen. Wenn Du das Analyzen und Uploaden als Interface definieren würdest, könntest Du später theoretisch weitere Webdienste über ProzessTotal zu rate ziehen!
Noch eine Anregung: Wie wäre es wenn Du in Zukunft den Prozessstart unter Windows hookst, Also bei Starten eines Prozesses sofort kommst und Ihn mit in Deinen Pool aufnimmst. Das Problem einige Prozesse sieht man nur ganz kurz!
 
Zurück
Oben