Programmieren - alles kontrollieren 4.940 Themen, 20.676 Beiträge

Groß- und Kleinschreibung

jueki / 13 Antworten / Baumansicht Nickles

Bitteschön - eine Frage, die Theorie betreffend - keine Bitte um Hilfe bei einem Fehler!
Und ich hoffe, das richtige Brett gewählt zu haben.

Ich bin mit nicht ganz klar darüber, wie die Groß- und Kleinschreibung nun unter Windows exakt behandelt wird.
Es gibt da zwar einen Wiki- Text dazu:
http://de.wikipedia.org/wiki/Case_sensitivity
- aber der klärt mich auch nicht auf.
Ich bin nun der Meinung, das die unterste Ebene der Befehls- und Datenverarbeitung rein auf hexadezimaler Ebene vonstatten geht. Das also zwischen einem großem A - hexa=65 und einem kleinen a - hexa=97 durchaus ein Unterschied besteht.
Und die Maske, die diese Unterschiede intelligent ausgleicht, erst drübergelegt wird, wenn erkannt wird, das es sich nicht um Text oder Namen handelt.
Bei eMails zum Beispiel spielt (emprisch durch Tests ermittelt) die Groß- und Kleinschreibung keine Rolle - hier im Forum ist es ebenfalls gleichgültig, ob ich mich mit "jüki" oder "Jüki" anmelde.
Ebenso behandelt ja auch Google die Suchanfragen - es wird kein Unterschied zwischen Groß- und Kleinschreibung gemacht.
Wie ist das aber nun intern im PC - zum Beispiel bei System- dll? Ich habe gelesen, das sich manche Trojaner eben dieser Unterschiede bedienen - die koschere dll hat einen kleingeschriebenen Namen - der Schädling hingegen einen großgeschriebenen.
Was ich übrigens auch schon einmal -damals ohne mir, wie jetzt, tiefere Gedanken darüber zu machen- auf einem korrumpierten PC erlebte.
Ich würde mich freuen, wenn es hier Spezies gäbe, die mir das erklären könnten. Danke!

Jürgen

- Nichts ist schwerer und nichts erfordert mehr Charakter, als sich im offenem Gegensatz zu seiner Zeit zu befinden und laut zu sagen "NEIN!" Kurt Tucholsky
bei Antwort benachrichtigen
peterson jueki „Groß- und Kleinschreibung“
Optionen

Du machst schon mal ein Fehler.
A ist 41h und nicht 65.
Wenn Du nun das große und das kleine A binär vergleichst, dann siehst Du, dass hier nur ein einzige Bit den Unterschied ausmacht.

Jeder Buchstabe oder jede Zahl ist nur ein Byte.

In email-Adressen oder Dateinamen auf der Platte macht das keinen Unterschied, da man das ja maskieren kann und dann ist das Ergebnis immer gleich, egal ob groß oder klein.

Wo man aber keine Unterschiede macht, ist bei Dateinamen im Webspace. Da kann man schon Xxx.txt und xxx.txt in einem Verzeichnis habe.
Demzufolge muss man auch in dem Link auf Groß- und Kleinschreibung achten.

Um Probleme zu vermeiden, sollte man alles klein schreiben.

Passwörter sollten allerdings schon Case-sensitive sein, weil es dann wesentlich mehr Möglichkeiten gibt.

bei Antwort benachrichtigen
jueki peterson „Du machst schon mal ein Fehler. A ist 41h und nicht 65. Wenn Du nun das große...“
Optionen

Danke, Peterson -
Du machst schon mal ein Fehler. A ist 41h und nicht 65.
Stimmt - meine Darstellung betraf ASCII - und ist schlicht aus dem Link oben abgeschrieben.
Nichtsdestotrotz gibt es eben einen Unterschied - auch wenn es nur ein Bit ist.
Das war eigentlich der Hauptgrund meiner Frage - unterscheidet Windows zwischen
msshavmsg.dll und Msshavmsg.dll ? (diese dll nur als Beispiel!)
Das möcht ich gern wissen.
Ja - das bei Internet- Links die Groß- und Kleinschreibung wohl eine Rolle spielt, das hab ich auch schon mal unsanft erlebt.
Es ist ganz einfach so, das ich eben der Meinung bin, das auf der unteren Ebene der Prozessverarbeitung, also dort, wo Ja-Nein, Und-Oder- Entscheidungen vom Betriebssystem getroffen werden schon unterschieden wird, ob ein Byte -ganz allgemein- einen großen oder kleinen Buchstaben darstellt.
Und demzufolge eine Abarbeitung eine ganz andere Richtung erfährt.
Denn eine koschere System- dll, bei der plötzlich der Anfangsbuchstabe groß geschrieben wird, kann einen gänzlich anderen Inhalt haben - kann ein Trojaner sein.
Und das möchte ich gerne genau wissen. Um unter anderem damit argumentieren zu können, argumentieren und nicht nur behaupten.
Ich weiß auch, das diese Fragestellung ein bischen ungewöhnlich ist und vom Antwortenden ein normalerweise nicht unbedingt erforderliches Maß an Detailwissen voraussetzt.
Nun ist es aber leider so, das so manch einer eine Behauptung in die Welt setzt, einfach so - die Widerlegung dieser Behauptung dann aber ganz präzise haben will...

Jürgen

- Nichts ist schwerer und nichts erfordert mehr Charakter, als sich im offenem Gegensatz zu seiner Zeit zu befinden und laut zu sagen "NEIN!" Kurt Tucholsky
bei Antwort benachrichtigen
peterson jueki „Groß- und Kleinschreibung“
Optionen

msshavmsg.dll und Msshavmsg.dll

Nein, das ist beides das gleiche.

Versuche mal, die Dateien in einem Verzeichnis zu speichern.
Sie werden überschrieben.
Und die ursprüngliche Schreibweise bleibt.

In der Regel werden aber Microsoft DLLS klein geschrieben.

Sollte eine mit einem großen Anfangsbuchstaben dabei sein, ist das meist eine nachinstallierte Fremddatei von einem Programm.

bei Antwort benachrichtigen
Nickeline jueki „Groß- und Kleinschreibung“
Optionen

Du kannst ja mal selbst eine Datei umbenennen und feststellen, daß es normalerweise keinen Unterschied macht. Windows ist es egal, und selbst dem guten alten DOS war es das. DOS z.B. benutzt bei Dateinamen nur Großbuchstaben. Patche ich jedoch einfach Kleinbuchstaben hinein, dann werden sie anstandslos akzeptiert.

Anders ist dies natürlich, wenn jemand explizit ein Programm schreibt, welches die Schreibweise eines Dateinamens überprüft und abhängig vom Ergebnis irgendeine Routine aufruft, die irgendetwas macht.

Ich habe solche Eigenschaften früher einerseits zu Kopierschutzzwecken, andererseits aber auch als Ordnungskriterium genutzt. Denn sobald DOS den Dateinamen zurückgeschrieben hat war dieser gross. (Auch die Reihenfolge der Dateien auf dem Datenträger kann durchaus interessant sein. Ich kann z.B. Dateinamen in eine Reihenfolge bringen, die Window niemals darstellen kann, da sie mit keiner der verfügbaren Sortierreihenfolgen vereinbar ist.)

Mir ist keine Windows-Version bekannt, welche bei Dateinamen einen Unterschied bei der Schreibweise macht (würde sie dies tun, so wären ja auch mehrere gleiche Dateinamen in einem Verzeichnis möglich, natürlich mit unterschiedlicher Groß- und Kleinschreibung. Tut sie aber nicht.)

Dennoch ist es durchaus natürlich selbstverständlich möglich, daß der Unterschied von einem (Fremd-)Programm ausgewertet wird.

Eure Nine

Satiren, die der Zensor versteht, werden zu Recht verboten (Karl Kraus)
bei Antwort benachrichtigen
dalai jueki „Groß- und Kleinschreibung“
Optionen
Wie ist das aber nun intern im PC - zum Beispiel bei System- dll?
Recht einfach: NTFS unterscheidet zwischen Groß- und Kleinschreibung, das darauf laufende Windows tut es aber nicht. Das bedeutet, dass es für den Windows-Benutzer überhaupt keine Rolle spielt, wie ein Dateiname geschrieben wird.

Keine Regel ohne Ausnahme natürlich, denn eine Sache gibt es, bei der man auch als Windows-Nutzer an die Schreibung denken muss: BartPE. Dort müssen alle relevanten Dateinamen großgeschrieben werden, damit Windows sauber von CD/DVD bootet. Wenn Interesse besteht, kann ich gerne weiterreichen, welche Dateien das betrifft. Es gibt schon seit einiger Zeit Hilfstools, die das automatisch beachten und in den Erstellungsprozess integrierbar sind (z.B. InfCacheBuild).

MfG Dalai
Echte Hilfe kann´s nur bei Rückmeldungen geben.
bei Antwort benachrichtigen
jueki Nachtrag zu: „Groß- und Kleinschreibung“
Optionen

Danke, Nickeline, danke, dalai.
Mir geht es wirklich in der Hauptsache darum: Es werden mittlerweile fast alle Systemdateien durch Viren ersetzt. Teilweise mit gleichem Namen, teilweise mit leicht abgeänderten Namen. Und sogar nur Unterschiede in der Groß- und Kleinschreibung. Und genau das verstehe ich eben nicht.
Die originale, koschere Datei wird durch eine korrumpierte Datei ersetzt, die den gleichen Namen hat - nur ein Buchstabe ist groß geschrieben.
Denn einerseits ist klar - die Codierung eines Zeichens unterscheidet sich in einem Bit, wenn es groß- oder kleingeschrieben wird.
Und für einen Entscheidungsprozeß im PC ist eine Koizidenz nur gegeben, wenn alle Bits eines oder mehrerer Bits vollkommen übereinstimmen.
Ist das richtig?

Jürgen

- Nichts ist schwerer und nichts erfordert mehr Charakter, als sich im offenem Gegensatz zu seiner Zeit zu befinden und laut zu sagen "NEIN!" Kurt Tucholsky
bei Antwort benachrichtigen
dalai jueki „Danke, Nickeline, danke, dalai. Mir geht es wirklich in der Hauptsache darum: Es...“
Optionen

Mehrere Dateien im selben Verzeichnis mit demselben Namen, nur unterschieden durch Groß- und Kleinschreibung kann es unter Windows nicht geben. Wenn sich Dateien in der Schreibung unterscheiden, hat das noch gar nichts zu sagen, außer dass es ein Indiz sein kann.

Da Windows aber auch auf einem FAT(32)-Dateisystem liegen kann (wie bei mir momentan noch der Fall), und noch dazu die Anzeige im jeweiligen Dateimanager eine Rolle spielt, gibt es noch eine Reihe weiterer Faktoren, die zu (vermeintlich) unterschiedlicher Schreibung führen können.

Wichtiger sind hier: leicht geänderter Dateiname (ein Buchstabe mehr/anders/weniger) und vor allem ein anderes Verzeichnis (z.B. \Windows\System32 statt \Windows) - das kann schon eine Menge Unterschied ausmachen.

MfG Dalai

Echte Hilfe kann´s nur bei Rückmeldungen geben.
bei Antwort benachrichtigen
Nickeline jueki „Danke, Nickeline, danke, dalai. Mir geht es wirklich in der Hauptsache darum: Es...“
Optionen

Eine weitere Möglichkeit wäre vielleicht, die Originaldatei so umzubenennen, wie es der vermeintliche Virus tut. Windows bekommt ohnehin nichts davon mit und der Virus (so es denn einer ist) verschont die Datei möglicherweise, weil er glaubt, sie sei schon infiziert. (Sofern der Virus sich auf andere Art und Weise nachschaut, ob die Datei schon infiziert ist, wäre die andere Schreibweise des Dateinamens völlig überflüssig und der Virus würde sich dadurch nur verraten.)

Nein, es ist für Windows absolut uninteressant, ob Dateinamen aus grossen oder kleinen Buschstaben bestehen. Relevant ist es nur für ein Programm, welches dies auch auswertet.

Ein kleines Beispiel. Unter Windows geht ein Fenster auf und ich habe die Felder 'ja' und 'nein' zur Verfügung. Wo genau ich mit der Maus in ein Feld hineinklicke ist Windows egal. Für die Entscheidung zählt nur, in welches Feld ich klicke.

Wenn ich nun (warum auch immer) einen Patch programmiere, der z.B. in der Mitte des 'ja'-Feldes 100%ig 'ja' auswählt, und zwar mit zum Rand hin abnehmender Wahrscheinlichkeit, so weiß Windows nichts davon, aber das Ergenbis wird dennoch ein anderes sein.

Nicht das Bit macht den Unterschied, sondern die Routine, welche dieses Bit auswertet, sowie die Routine, welche daraufhin aufgerufen wird.

Eure NiNe

Satiren, die der Zensor versteht, werden zu Recht verboten (Karl Kraus)
bei Antwort benachrichtigen
jueki Nickeline „Eine weitere Möglichkeit wäre vielleicht, die Originaldatei so umzubenennen,...“
Optionen

Ganz genau das meine ich.
Ich habe Null Ahnung, wie Windows programmiert ist - aber ich habe jahrelang die Steuerungen von computergesteuerten Großwerkzeugmaschinen entwickelt, gewartet und programmiert.
Wenn in einer Million installierter, koscherer Win XP eine dll den Namen hat xxx.dll - und in dem einen korrumpierten XP aber Xxx.dll - dann ist das eben ein eindeutiger Hinweis - so nahm ich bisher an. Und das war die Ursache meiner Frage!
Das das Betriebssystem, so vermute ich mal ganz laienhaft, da keine Unterschiede macht, ist mir eben klar geworden.
Aber das ist nun sicher eben auch eine Möglichkeit, einen Trojaner einzuschleusen - die verseuchte Xxx.dll ersetzt, ohne das Windows mault, die koschere xxx.dll.
Und das "Zentrum" des Trojaners wertet aber das eine Bit für sich aus - der Trojaner wird aktiv.
Ist diese Denkrichtung erst einmal logisch?
In meinem Fall war es nun klar, deutlich und reproduzierbar - nach der Aktivierung eines Keygenerators begann der fragliche PC plötzlich mit der gesamten zur Verfügung stehenden Bandbreite Mails zu senden.
Nachdem ich diese dll fand und ersetzte, war die Senderei beendet.
Damit das klar ist: Ich habe es nicht beim Ersatz dieser dll belassen und mich in meiner Genialität, einen Trojaner beseitigt zu haben gesonnt - ich habe anschließend formatiert und neu installiert - was ich immer und immer wieder vertrete und empfehle..
Ist schon eine Weile her und ich nenne mich selbst heut noch "Schafskopp", weil ich mir das damals nicht konkret dokumentierte.
Nun aber bin ich im Streit mit einem "Reiniger", einem sehr jungen, der behauptet, das wäre eben nicht möglich...
Deshalb mein Fragen und Nachstoßen hier.
Denn eine Behauptung, möglichst noch unter Verwendung eines Fachwortes, ist in einer Sekunde gesprochen.
Die Widerlegung (oder auch Begründung) hingegen erfordert einiges an Wissen.
Was ich versuche, aus Euch herauszulocken.

Jürgen

- Nichts ist schwerer und nichts erfordert mehr Charakter, als sich im offenem Gegensatz zu seiner Zeit zu befinden und laut zu sagen "NEIN!" Kurt Tucholsky
bei Antwort benachrichtigen
dalai jueki „Ganz genau das meine ich. Ich habe Null Ahnung, wie Windows programmiert ist -...“
Optionen
Aber das ist nun sicher eben auch eine Möglichkeit, einen Trojaner einzuschleusen - die verseuchte Xxx.dll ersetzt, ohne das Windows mault, die koschere xxx.dll.
Windows mault nur dann rum (und dem Benutzer fällt es dadurch hoffentlich auf), wenn die fragliche DLL im DLL-Cache liegt - unter XP \Windows\system32\dllcache.

Wird hingegen eine andere DLL ersetzt, die Windows nicht als derart wichtig ansieht, kann eine Schadsoftware schalten und walten, wie sie will. Aber selbst das ginge noch einfacher, indem sie die DLL einfach in ein anderes Verzeichnis entpackt, der Ersetzung einer existierenden DLL aus dem Weg geht (Eigene Dateien bietet sich für sowas an, weil dort immer Schreibrechte bestehen).

Nun aber bin ich im Streit mit einem "Reiniger", einem sehr jungen, der behauptet, das wäre eben nicht möglich...
Was wäre nicht möglich?

MfG Dalai
Echte Hilfe kann´s nur bei Rückmeldungen geben.
bei Antwort benachrichtigen
jueki dalai „ Windows mault nur dann rum und dem Benutzer fällt es dadurch hoffentlich auf ,...“
Optionen
Was wäre nicht möglich?
Der von mir beschriebene Effekt - das man einen durch einen Keygenerator eingeschleusten Trojaner - wie in meinem Fall - durch die Großschreibung eines Buchstabens erkennt.
Ein User bat vor einiger Zeit um Hilfe, weil sein PC laufend sentete und ich erinnerte mich - auf Anfrage machte er vom fraglichen Bereich einen Screenshot und ich sah, das die üblicherweise kleingeschriebene dll einen großgeschrieben Buchstaben aufwies. Wie zuvor bei dem oben beschriebenen PC.
Aber das soll bitte hier nicht das Thema sein - meine Frage wurde eigentlich beantwortet.
Ich bedanke mich dafür.

Jürgen
- Nichts ist schwerer und nichts erfordert mehr Charakter, als sich im offenem Gegensatz zu seiner Zeit zu befinden und laut zu sagen "NEIN!" Kurt Tucholsky
bei Antwort benachrichtigen
dalai jueki „ Der von mir beschriebene Effekt - das man einen durch einen Keygenerator...“
Optionen
Der von mir beschriebene Effekt - das man einen durch einen Keygenerator eingeschleusten Trojaner - wie in meinem Fall - durch die Großschreibung eines Buchstabens erkennt.
Das kann man auch nicht, eben weil Windows die Schreibung nicht unterscheidet. Wie ich oben schon schrieb: es kann ein Anzeichen sein, muss es aber nicht, weil noch mehr Faktoren eine Rolle spielen.

MfG Dalai
Echte Hilfe kann´s nur bei Rückmeldungen geben.
bei Antwort benachrichtigen
jueki dalai „ Das kann man auch nicht, eben weil Windows die Schreibung nicht unterscheidet....“
Optionen

Richtig - es kann ein Anzeichen sein.
In meinem Falle traf das eben zu.
Nur war mir der sozusagen "innere Ablauf" nicht klar - eben das einerseits ein großer Buchstabe eine andere hexa- Verschlüsselung als ein kleiner hat - und wenn das eine Rolle spielt und wenn nicht.
Jetzt weiß ich es - oberflächlich zwar, aber genügend.

Jürgen

- Nichts ist schwerer und nichts erfordert mehr Charakter, als sich im offenem Gegensatz zu seiner Zeit zu befinden und laut zu sagen "NEIN!" Kurt Tucholsky
bei Antwort benachrichtigen