So, jetzt finde ich langsam wieder ein bisschen Zeit mich um mein Blog zu kümmern. Das nutze ich gleich mal um ein Stück Code zu posten, was mich schon länger fasziniert.
Es ist eigentlich nur kurz, aber ich fordere jeden heraus selbst herauszufinden, was es tut, ohne es vorher zu kompilieren.
#include <stdio.h>
struct values {
int a;
char b;
short c;
double d;
int* e;
};
int main() {
int i = 0;
struct values val;
val.a = 1819043144;
val.b = 111;
val.c = 8236;
val.d = 17772928018443055750142378752
9445406531473442920180139133343049801
2916652608327063483957532130480119417
0146354883598704890228200485135295197
79571104209539432448.000000;
val.e = &i;
char* pointer = (char *) &val;
printf("%s\n", pointer);
return 0;
}
Die Programmiersprache ist (offensichtlich) C. Die Zahl hinter 'val.d' muss selbstverständlich auf eine Zeile - die hab ich nur der besseren Lesbarkeit halber umgebrochen.
Wer rausgefunden hat was dieses Programm macht und seine Hypothese überprüfen will: übersetzen lässt es sich einfach mit
gcc -Wall $DATEINAME
Man beachte, dass - trotz "Warn-Parameter" '-Wall' keine Warnungen ausgestoßen werden. Man kann mit C und Pointern halt wunderbar kryptische Sachen schreiben :)
Donnerstag, Mai 01, 2008
Mal wieder Zeit
Weiterlesen / Read more
Eingestellt von balanceofcowards um 14:37 0 Kommentare
Labels: code
Dienstag, Februar 12, 2008
Trigger Happy
Am neunten Februar 2008 wurde die militärische Entwicklung der Schusswaffen vollendet. Seit Samstag verfüge ich über eine funktionsfähige Lego-Knarre.
Als Handfeuerwaffe ergänzt sie sich wunderbar mit der Trebuchet. Zwar lassen Durchschlagskraft und Reichweite noch zu wünschen übrig, aber die Feuerfrequenz kann sich im Vergleich zur Trebuchet durchaus sehen lassen. Ausserdem macht es einfach unglaublich Spass, das Ding durchzuladen :)
Fairerweise muss ich gestehen, dass der Michi einen wesentlichen Teil der Arbeit geleistet hat. Insbesondere war er verantwortlich für Design und Entwicklung von Griff und Auslösemechanismus zu einem Zeitpunkt an dem ich schon am resignieren war und mich damit beschäftigte, einen Boxermotor nachzubauen.
Aber schließlich hat es doch geklappt. Obwohl es schon noch was zu tun gibt: Bislang ist es nur ein einfacher Vorderlader. Zudem zerlegt sich der Schlagbolzen nach häufiger Benutzung. Das Problem ist zwar schon besser geworden, aber noch lange nicht gelöst.
Es bleibt zu erforschen, wie man eine Vollautomatik realisiert. Zum dauernden Nachladen ist man ja schließlich viel zu faul ;)
Allerdings fürchte ich dazu benötige ich eine verlässlichere Energiequelle als Gummibänder. Naja... erstmal ein Magazinsystem entwickeln...
Irgendwann find ich noch raus, wie ich mit Lego einen Nuklearsprengkopf bastle ;)
Ach ja, bei Gelegenheit poste ich noch Fotos...
Weiterlesen / Read more
Eingestellt von balanceofcowards um 10:46 0 Kommentare
Sonntag, Februar 03, 2008
Virenscanner und PFWs - Diskussion
Ich will mich hier mal mit einigen weitverbreiteten Irrtümern zum Thema Computerviren, Personal Firewalls und allgemeine Computersicherheit beschäftigen. Leider tauchen in verbreiteten Foren immer wieder dieselben Halbweisheiten und Mythen auf, und es wird mit der Zeit mühsam, immer wieder die selben Scheinargumente entkräftigen zu müssen. Darum hier ein konzentrierter Versuch, die gängigsten Mythen zu enttarnen.
Diese Betrachtungen beziehen sich in erster Linie auf PCs im Heimanwenderbereich. Größere Firmennetzwerke haben andere Bedürfnisse - allerdings meist auch einen (hoffentlich) geschulten Netzwerkadmin, der kaum meines Ratschlags bedarf und in der Lage sein sollte, seine Anforderungen selbst zu beurteilen.Irrtum 1:
"Ich kann mich absichern, indem ich nur genug Sicherheitssoftware installiere."Theorie:
Mehr Software kann immer nur mehr Bugs haben - nie weniger. Zusätzliche Software bringt immer die (sehr reale) Gefahr mit sich, noch weitere Sicherheitslücken ins eigene System zu reißen. Die korrekte Frage, die man sich stellen sollte, lautet daher nicht "Was muss ich installieren, um sicher zu werden?" sondern "Was muss ich deinstallieren, um sicher zu werden?".Praxis:
Sicherheitslücken, die von der Sicherheitssoftware erst aufgerissen wurden, sind durchaus keine nur abstrakte Gefahr. In einem sehr informativen CCC-Video[1] wird gezeigt, wie man einem Rechner, dank installierter Firewall, das Internet (genauer: den Zugriff auf einen DNS-Server) von einem anderen Rechner aus unbefugt "abstellen" kann. Weiter berichtete Heise Online erst vor kurzem von der Gefahr, die von nachlässig programmierten Virenscannern ausgeht[2].Irrtum 2:
"Ein Virenscanner wird mich zuverlässig vor eingehenden Schädlingen schützen."Theorie:
Es ist beweisbar unmöglich, Viren zuverlässig zu erkennen. Das wurde schon vor langer Zeit von Fred Cohen[3] erkannt.[4]Praxis:
Bislang arbeiteten Virenscanner mit Virensignaturen bekannter Viren. Allerdings gibt es inzwischen derart viele Mutationen, dass viele Virenscanner dem nicht mehr gewachsen sind und sich auf die eingebauten Heuristiken verlassen müssen. Die sind jedoch bedeutend schlechter in ihrer Erkennungsrate. Zudem kämpfen Virenscanner zunehmend mit sogenannten "False Positives" - also Fehlalarmen[5]. Und mit Malware wie beispielsweise Blue Pill[6] wird sich die Situation noch weiter verschärfen.Irrtum 3:
"Linux/Unix ist unsicher, weil es keine Virenscanner gibt."Theorie:
Diese Aussage (die leider in der ein oder anderen Form immer wieder auftaucht) ist zuallererst einmal falsch. Es gibt durchaus Virenscanner für Linux und andere Unices[7, 8].Praxis:
Da es unter Nicht-MS-Systemen praktisch nur Viren "aus dem Labor" gibt[9], und damit nahezu keine Gefahr besteht, sich zu infizieren, werden die verfügbaren Virenscanner unter Unix dazu eingesetzt, angeschlossene Windowsrechner zu schützen - beispielsweise indem eingehende Mails auf dem Mailserver geprüft werden, bevor sie von einem Windowsrechner abgeholt werden.Irrtum 4:
"Linux/Unix ist unsicher, weil es keine Firewalls gibt."Theorie:
Auch hier gilt dasselbe wie beim vorherigen Argument: Es gibt durchaus leistungsfähige Firewalls für Linux und andere Unices[10, 11]
Zugegebenermaßen haben diese Programme meist kein so nettes Interface, wie gängige Windows-Securitylösungen. Das hat einen Grund: Auf dem Desktop werden diese Anwendungen selten benötigt - und Vollzeitadministratoren, welche größere Computernetzwerke betreuen müssen, haben einerseits die Zeit, sich in komplexe Software einzuarbeiten, brauchen aber auch andererseits die zusätzliche Flexibilität, die anderer Software fehlt.Praxis:
Firewalls werden unter Unix meist dazu eingesetzt, ganze Netzwerke zu schützen, nicht einzelne Rechner. Einen einzelnen Rechner zu schützen ist oft sinnlos: Der Software auf einem befallenen Rechner kann man generell nicht vertrauen. Auch wenn groß "Sicher" draufsteht. Eine Firewall sollte aus diesem Grund immer auf einem anderen Rechner laufen, als der gefährdete Dienst. Ich empfehle noch einmal, sich das CCC-Video zum Thema "Personal Firewalls"[1] zu Gemüte zu führen.Irrtum 5:
"Linux/Unix wäre genauso gefährdet wie Windows, wäre es genauso
verbreitet."Theorie:
Ja und nein. Einerseits sorgt eine Monokultur immer für eine übermäßige Anzahl an Schädlingen - in der Biologie genauso wie in der Softwarelandschaft. Andererseits hinken MS-Betriebssysteme seit Jahren der Konkurrenz in Sachen Sicherheit hinterher. Mechanismen, die erst vor kurzem mit Vista eingeführt wurden[12, 13], sind woanders längst bekannt und perfektioniert[14, 15, 16]. Und Microsoft hat es bislang - zur Freude der Virenautoren - noch nie versäumt, die Sicherheit ihrer Produkte zugunsten der "Benutzerfreundlichkeit" zu vernachlässigen.Praxis:
Es gibt derart viele Linuxdistributionen[17], dass eine Monokultur nicht zu befürchten ist. Und dann gibt es ja auch noch MacOS X, FreeBSD, NetBSD,
OpenBSD, Solaris, ...
Tatsächlich würde in Sachen Sicherheit eine Verringerung des Marktanteils auf - sagen wir - 30% Windows mehr nützen als schaden: Dann gäbe es kein bevorzugtes Ziel für Virenautoren mehr, und der Aufwand um einen funktionierenden Virus zu schreiben würde sich bedeutend erhöhen - möglicherweise derart stark, dass es nicht mehr rentabel wäre ihn zu schreiben.Fazit:
Es gäbe zu diesem Thema noch jede Menge zu schreiben, aber da dieser Post sowieso schon übermäßig lang ist, werde ich mich mit dem hier geschriebenen erstmal zufriedengeben. Ich hoffe das ein oder andere zur Aufklärung beigetragen zu haben.
Zum Schluss noch ein kleiner Disclaimer:
Bin ich dagegen, dass jemand Microsoft Windows als Betriebssystem verwendet?
Ich bin der festen Überzeugung, dass MS Windows in vieler Hinsicht ein minderwertiges Betriebssystem ist - nicht nur aus Sicherheitsgründen. Trotzdem sollte jeder natürlich die freie Wahl haben, selbst zu entscheiden, welches Betriebssystem er verwenden will. Ich will alle dazu ermutigen, sich ohne Vorbehalte andere Betriebssysteme anzuschauen und sich dann für das passendste zu entscheiden - ggf. auch Windows. Immerhin ist es ja möglich, dass ich - trotz Erfahrung mit Windows 3.11, 95, 98 und 2000 und trotz meiner Gehversuche mit XP und Vista - einfach noch nicht weiß, wie man Windows richtig" bedient ;)Quellen:
Weiterlesen / Read more
Eingestellt von balanceofcowards um 20:41 0 Kommentare
Labels: IT-Security
Samstag, Januar 26, 2008
Virenscanner und Personal Firewalls
Ok, hier biete ich vorrangig erstmal die Möglichkeit als aktuelle Reaktion auf eine Lawblog-Diskussion über Sinn und Unsinn von Virenscannern und Personal Firewalls zu debattieren - auch um dort das endgültige Abrutschen ins Off-Topic zu vermeiden.
Längerfristig werde ich versuchen einige Argumente zusammenzuschreiben um endlich eine dauerhafte Diskussionsgrundlage zu diesem Thema zu haben.
[Update]
Fertig:
http://balanceofcowards.blogspot.com/2008/02/ich-will-mich-hier-mal-mit-einigen.html
Weiterlesen / Read more
Eingestellt von balanceofcowards um 20:23 0 Kommentare
Labels: IT-Security