Philipp Hasenfratz: Software PC Phone Home - wie kann die funktionieren?

Beitrag lesen

Halihallo

Dieses müßte sich trotzdem noch an einer (festen?) Stelle auf der Festplatte
befinden.

Fest nicht, aber es muss sich irgendwo verstecken. [..] Jedoch, um ein Programm in 512 Bytes zu coden, welches dann auch noch die versteckten anderen Dateien findet halte ich für fast unmöglich. Was feststeht ist, dass die Daten nirgens referenziert werden dürften (eg. keine FAT Tabellen oder Inodes), und woher soll dann das kleine Assembler-Ding im MBR oder BIOS wissen, wo sich die Dateien befinden??

Deshalb müßten sich diese wirklich irgendwo an einer festen Stelle befinden -
also eben in einem definitiv nie vom Betriebssystem benutzten Bereich der
Festplatte - sofern es einen solchen gibt. Auf das Dateisystem des Betriebs-
systems hat das Programm ja noch keinen Zugriff, und daß es eine eigene
Zugriffsfunktionalität für die verschiednen Dateisystem mitbringt, halte
ich für unwahrscheinlich.

dito ;)

Also müssen es wohl doch ein oder mehrere feste Sektor auf der Platte sein,
die sich das Programm von den vom Betriebssystem eingerichteten Partition(en)
abzwackt, indem es die Partition(en) z.B. um die benötigte Größe verkleinert.
Diese Funktionalität könnte man ja dann sogar ins eigentliche (Windows-)
Programm stecken. Das MBR-Programm müßte dann nur die Programme in den Sektoren
aufrufen, die sich nicht mehr in den vom Betriebssystem verwalteten
Partitionen befinden. Die Programme hätten natürlich auch keine Größenbeschränkung
auf 512 Bytes. Sie würden sich also als TSR einrichten und könnten permanent den Boot-
Sektor überwachen. Das würde sich allerdings natürlich durch (fast) permanenten
Festplattenzugriff bemerkbar machen.

Ja, da hast du recht. Noch ein kleiner Gedankengang:
Die Festplatte wird ja in logische Sektoren unterteilt (bei Unix in Inodes). Eine Datei füllt in den meisten Fällen nicht einen ganzen Sektor; im übrigen Platz könnte man die Dateien unterbringen. Das Auslesen der "wirklichen" Datei in diesem Sektor würde auch ganz normal ausgelesen, der restliche Bereich wird ja nie überprüft... Und fester Ort? - Nicht umbedingt... Es gibt z. B. einen Virus, der eine infizierte Datei daran erkennt, ob sie drei NOP's enthält (ein Assembler-Befehl, der einfach gar nix macht, 0x90 der Bytecode [ich Angeber ;)]). Es wäre möglich die Daten irgendwo auf der Platte zu speichern, jedoch du hast mich hierbei bereits "wiederlegt": Das auffinden dieser Zeichenkette wäre ein viel zu grosser Aufwand und würde bemerkt werden.

Klüger wäre es, sich in die verschiedenen
BIOS-Interrupts zum Zugriff auf die Festplatte einzuklinken und alle Schreib-
versuche dahingehend zu überprüfen, ob der eigene Speicherbereich im MBR
überschrieben wird, und das zu verhindern oder nach erfolgtem Überschreiben
den eigenen MBR wieder zurückzuschreiben.
Der Fantasie sind keine Grenzen gesetzt! :-)

Das ist ein sehr guter Vorschlag! - Mag mich da noch an ein kleines Programm erinnern, dass mir bei jedem Lese-/Schreibzugriff ein Symbol ganz rechts oben im DOS-Fenster angezeigt hat... Das liesse sich sicher entsprechend erweitern.

PS: Ich erlebe gerade wieder Kindheitsgefühle (Assembler, Pascal und DOS-Interrupts) ;-)

Du auch? Ja, das waren noch Zeiten, damals. Da war die Welt noch nicht
von Windows verweichlicht! ;-)

OHHHHH, JAAAAA, 100%-ige Übereinstimmung! :-)
War doch schön, als man sich noch um Listen/Sortier-Algorithmen kümmern musste und nicht einfach

push @list, 'value';
oder
sort keys %hello_world

eintippen konnte... ;-)
Entschuldigt bitte, wenn ich hier altklug wirke; solange ist das bei mir ja noch nicht her. Aber es waren eben schon noch andere, ebenso schöne Zeiten...

Viele Grüsse

Philipp