Sunday, 28. May 2006Generische Erkennung von gepackten/verschlüsselten Dateien
Im Rahmen meines Rootkit-Detector Projekts benötigte ich eine routine, die erkennen kann, ob eine Datei verschlüsselt oder gepackt ist, um eruieren zu können, ob die Datei auf der Festplatte der im Speicher gleichen kann oder nicht.
Auf alle Signaturen aller auf dem Markt befindlichen EXE-Packer/Crypter zu prüfen ist hier kein optimaler Ansatz. Stattdessen sollte die Erkennung möglich generisch sein. Was also tun? Im Prinzip ist die Lösung trivial: Durch was zeichnen sich gepackte Dateien aus? - Durch die Eigenschaft, dass sie sich schwer weiter komprimieren lassen, sprich: ihre Entropie ist möglichst klein. Dies kann man leicht auch mit einem Hexeditor feststellen: Sieht man sich eine gepackte, oder auch eine verschlüsselte Datei damit an, so wird man feststellen, dass es sehr viele unterschiedliche Zeichen gibt, die Zeichenauftrittswahrscheinlichkeit ist also ziemlich gleichmäßig verteilt, während bei unkomprimierten Dateien oftmals viele aufeinanderfolgende gleiche Zeichen vorzufinden sind (z.B. lauter 00 - Bytes). Man kann schon beim Betrachten der Struktur einer Datei mittels eines Viewers mit bloßem Auge sehen, ob eine Datei komprimiert ist oder nicht. Hier ein Beispiel (nicht gepackt vs. gepackt): Ich habe daher ein paar kleine Funktionen zum Prüfen der Entropie einer Datei geschrieben, um abschätzen zu können, ob eine Datei wahrscheinlich gepackt ist oder nicht. Ich habe das Ganze für WIN32 geschrieben, es lässt sich aber sehr einfach auf ANSI-C portieren: Noch etwas zu den Konfigurationsparametern: ENT_FREQ_MAX gibt an, wieviele Bytes der Datei maximal analysiert werden sollen. Diese Begrenzung ist durchaus sinnvoll, da eine Prüfung großer Dateien sonts ineffizient wäre.ENT_EXE_OFFSET gibt an, wieviele Bytes an Anfang der Datei bei der Prüfung übersprungen werden sollen. dies ist sinnvoll, da der header einer Executable normalerweise nicht komprimiert sein kann und die Prüfung daher erst ab dem Codesegment sinnvoll ist (man köntne natürlich den EXE-header analysieren und erst bei merste ncode-segment zu prüfen beginnen, aber der Einfachheit halber habe ich hier darauf verzichtet).ENT_BARRIER gibt den Schwellenwert an, bei dessen Überschreitung eine Datei als nicht gepackt/verschlüsselt gilt. 10 ist hier ein guter Wert.Der Rest dürfte selbsterklärend sein. Bei Fragen --> Comment hinterlassen. Monday, 15. May 2006Dynamische arrays in C
Von C++ her kennt man ja die praktischen Klassen zur dynamischen Datenverwaltung wie
set , map , vector , etc.In C sind vor Allem mehrdimensionale Arrays mit variabler Größe aber durchaus eine Herausforderung. Standardmäßig kann man mehrdimensionale arrays nur fix definieren, z.B.:
Dies ist für den C-Compiler einfach, da er hier nur entsprechend Speicher im DAtensegment reservieren muss, den man dann nach und nach füllen kann. Die dynamische Verwaltung einer solchen Strutkur am Heap ist der Runtime jedoch nicht zumutbar. Grund genug, ein paar kleine eigene Funktionn zu schreiben, um dynamische Arraybäume zu erstellen und verwalten. Die Dokumentation der kleinen Funktionen befindet sich in der Header-Datei, die hier gezeigt wird: Herunterzuladen gibt es die kleine Funktionssammlung hier Saturday, 1. April 2006Domain the-underdogs.org expired
Vielen Freunden von Abandonware, also alten DOS-Spielen, ist die Seite http://www.the-underdogs.org
wahrscheinlich bekannt als Fundgrube für die Kultspiele von damals. Dummerweise ist die Domainanmeldung abgelaufen, sodass die Seite unter der gewohnten URL nicht mehr erreichbar ist. Man muss daher vorübergehen die Seite über ihre IP aufrufen, bis das Problem gelöst ist. Da hat wohl jemand zu zahlen vergessen.... http://209.120.136.195/ [UPDATE: Die Homepage ist währenddessen auch unter der Adresse http://www.the-underdogs.info/ zu erreichen. Der Eigentümer der Seite kämpft derzwit mit registrar.com um die Reaktivierung der alten Domain, nachdem diese zwar bis 2007 bezahlt, aber aus irgendeinem Grund trotzdem abgeschaltet wurde.] Saturday, 25. March 2006In the Groove - Demo Beta 1Die Demo Beta von In the Groove, dem "Tanzmattenspiel" für PC, steht jetzt zum Download bereit. Das Spiel lässt sich natürlich auch mit den Cursor-Tasten steuern. Thursday, 16. February 2006Nintendo fanboyismSaturday, 10. December 2005The worst computer game ever..
Ich habe gerade etwas im Blog The oldnew thing gestöbert und bin in den Kommentaren zu einem Artikel über Belohnungen für Developer, deren Änderungen einen Build zerstören, auf einen Link zum schlechtesten Computerspiel aller Zeiten gestoßen:
Big Rigs: Over the Road Racing Wer sich die Beschreibung durchliest wird erstaunt sein, dass eine Firma sich tatsächlich traut, so etwas gegen Bargeld anzubieten... Aus Interesse habe ich mal nach der Herstellerfirma gesucht und tatsächlich deren Website gefunden: http://www.stellarstone.com/ Die Firma scheint sich für das einzige Spiel, was sie je entwickelt haben, regelrecht zu schämen, sosnt würden sie es wohl unter "Games" listen. Dafür erfährt man unter "Company" interessantes über diese Firma: ADVANTAGE "Employment" ist genausowenig vorhanden wie "Games". Und bei "Contact" erhält man nur einen 404 - Offenbar wünscht die Firma es nicht, dass man sie kontaktiert. Ein sehr interessantes Geschäftsmodell... Saturday, 12. November 2005Serious Sam II VS. Quake IV"Mit Quake IV und Serious Sam II treffen sich zwei Subgenres auf unerwartete Art und Weise. David gegen Goliath? In Quake IV zeigen sich die Schwächen, in Serious Sam II jedoch die unerwarteten Stärken des Genres Egoshooter" Zurück zur Sturm-und-Drang-Zeit der Egoshooter @ telepolis
(Seite 1 von 1, insgesamt 10 Einträge)
|
SucheBlog abonnierenTop ReferrerVerwaltung des Blog |