USB-Sticks und SD-Karten validieren

Nicht immer funktionieren USB-Sticks und SD-Karten so wie sie sollen. Bei meiner letzten Bestellung aus China hatte ich den Verdacht, dass einige SD-Karten defekt waren – sie funktionierten für einen kurzen Zeitraum und gaben dann den Geist auf. Aus der c’t kannte ich das Programm H2testw, mit dem Flashspeicher geprüft werden kann. Dazu wird das Speichermedium mit Testdaten vollständig beschrieben und die Daten anschließend wieder gelesen. Wenn alles korrekt läuft, stimmen die gelesenen Daten mit den ursprünglich geschriebenen Daten überein. Das kann je nach Größe des Speichermediums durchaus eine Weile dauern.

Für Linux gibt es hierfür das Paket f3, das mit den Programmen f3write und f3read das gleiche tut. Für einen korrekten USB-Stick läuft das Programm wie folgt ab:

$ f3write /media/STICK/
Free space: 196.84 MB
Creating file 1.h2w ... OK! 
Free space: 0.00 Byte
Average writing speed: 6.76 MB/s

Anschließend werden die geschriebenen Daten wieder gelesen.

$ f3read /media/STICK/
                  SECTORS     ok/corrupted/changed/overwritten
Validating file 1.h2w ... 403128/        0/      0/      0

  Data OK: 196.84 MB (403128 sectors)
Data LOST: 0.00 Byte (0 sectors)
          Corrupted: 0.00 Byte (0 sectors)
   Slightly changed: 0.00 Byte (0 sectors)
        Overwritten: 0.00 Byte (0 sectors)
Average reading speed: 7.75 MB/s

 

Patterns und Antipatterns

In dem Vortrag Antipatterns und Missverständnisse in der Softwareentwicklung – Eine Geschichte voller Missverständnisse spricht fefe über Patterns und insbesondere auch Anti-Patterns aus der Sicht von Softwareentwicklern und devOps. Unterhaltsam, kurzweilig, mit einem breiten Themenspektrum und vielen Anekdoten und konkreten Beispielen aus der Praxis gespickt. Sehenswert.

Eindrücke vom 34c3

Der 34C3 ist nun vorbei und die ersten Eindrücke der Veranstaltung sind gemischt aber überwiegend positiv. Nach dem Umzug von Hamburg im letzten nach Leipzig in diesem Jahr war zu erwarten, dass der neue Ort Risiken und Chancen bieten würde. Die Hallen waren sehr groß und ließen für meinen Geschmack zu wenig Raum für kleinere intime Treffen und Gespräche. Häufig war man auf der Suche nach einem Platz, an dem man ungestört hacken arbeiten konnte. Die riesige Halle 2 mit all ihren Hackingspaces, dem Künstlerbereich und der Hardware-Hacking-Area haben dennoch nie einen Hauch von Langeweile aufkommen lassen.

 

In diesem Jahr habe ich mich erstmals als Engel eingebracht. Das empfehle ich jedem Besucher, der dies bisher noch nicht gemacht hat oder sich bisher nicht traute. Es lohnt sich. Man bekommt eine tieferen Einblick in die Veranstaltung und lernt vor allem viele nette Leute kennen.

Nach meiner Wahrnehmung waren in diesem Jahr mehr Künstler, politische Gruppen, Frauen und Kinder auf dem Kongress. Insbesondere die Künstler- und politischen Gruppen verschieben etwas den Fokus – was ich nicht schlecht finde, sich aber in Zukunft als problematisch erweisen kann, sobald Interessen zu stark divergieren. Ich warte das aber zunächst ab, bevor ich mich sorge.

Jetzt beginnt die Nachbereitung, in der viele Ideen und Projekte umgesetzt und die Aufzeichnungen der Vorträge anschaut werden wollen.

Mailboxen, Fidonetz und Netzwerke der 90er Jahre

Auf dem 34C3 gab es den interessanten Vortrag BBSs and early Internet access in the 1990ies – Modems, FIDO, Z-Netz, Usenet, UUCP, SLIP and ISDN. Harald Welte erzählt aus persönlichen Erfahrungen über die frühe Zeit der Modems und Akkustikkoppler der Pre-Internet-Ära. Er erklärt die frühen „Mail“-Programme wie CrossPoint und sinniert über Features, die es nicht in die neue Zeit geschafft haben. Ich kann diese Gedanken sehr gut nachvollziehen. In einer Live-Demo zeigt er aktuelle Mailboxen, über die man heute noch per Telnet oder sogar Telefonleitung zugreifen kann und wundert sich, dass diese noch aktiv genutzt werden. Die Seite Telnet BBS Guide stellt eine ausführliche Sammlung von Mailboxen zusammen.

Besonders spannend fand ich den Gedanken, dass mit dem Einzug des Internet auch der Grad der Selbständigkeit in der Verwaltung der Netzinfrastuktur sank. Mailboxenetze wurden damals vonPrivatleuten organisiert, die ihre Telefonanschlüsse zur Verfügung gestellt und darüber Nachrichten mit anderen Mailboxen geteilt hatten. Mit dem Aufkommen von ISPs ging eine Entmündigung einher, die heutzutage, zumindest teilweise, durch das Freifunkprojekt adressiert wird – jedoch nicht mit der gleichen Wirkmacht, die ein Fidonetz in den 90er Jahren entfalten konnte.

CTF – Kreuzworträtsel für Nerds

CTF ist eine Abkürzung für „Capture the Flag“. Auf dem Chaos Communication Congress wird eine solche Veranstaltung traditionell immer am Ende des Jahres durchgeführt. In diesem Jahr habe ich mich erstmals auch bei der Junior-Version beteiligt und in einem kleinen Team versucht, verschiedene Aufgaben aus den folgenden Bereichen zu lösen: Reverse Engineering, Kryptographie, Passwörter-Knacken, Web und Verschiedenes. Trotz der Klassifikation als Einsteigerveranstaltung, waren die Aufgaben alles andere als leicht. Über mehrere Schritte musste man gehen, um am Ende ein flag zu erhalten – dies war ein String, der mit „34C3_“ beginnt und den man in eine Weboberfläche eingeben kann, um damit die Aufgabe lösen.

Unser Team laborratten hat am Ende den 147. Platz belegt – bei 435 teilnehmenden Teams ist das schon ein gutes Ergebnis, auf das sich aufbauen lässt. Neben dem Konkurrenzaspekt, war das Lösen der Aufgaben jedoch Ansporn genug, sodass es nicht unser letzter CTF gewesen sein wird.

So etwas möchte ich auch einmal selbst veranstalten – vielleicht sogar im Rahmen einer Schulveranstaltung oder bei einem GameJam. Die einsteiger-freundlichen CTFs picoCTF, EasyCTFOverTheWire: WargamesSchool CTF und Juniors CTF könnten als Vorbild und Aufgaben-Pool dienen.

Update
Das Buch Kali Linux CTF Blueprints zeigt, wie man selbst eine solche Challenge erstellen kann. Die Liste Awesome CTF bei github stellt Frameworks, Tutorials und Software rund um CTF zusammen. Der openflagserver von Jason Gillam ist z.B. ein einfacher in Python geschrieberen und leicht anpassbarer Server, um Flags, User und Punkte zu verwalten.
Auch die Formel zur Berechnung der Punktzahl in Abhängigkeit der Anzahl der Lösungen ist noch einen separaten Blick wert:
int(round(30 + 470 / (1 + (max(0, solves – 1) / 11.92201) ** 1.206069)))

Blinken-Rocket

Auf dem 34C3 habe ich mir einen Bausatz (12 €) einer blinken rocket gekauft: eine Platine in Raketenform mit einer 8×8-LED-Matrix und zwei Buttons. Eine Anleitung erklärt, wie ich die Bauteile korrekt anlöten kann und ein Editor hilft bei den ersten Schritten, eine Schrift oder einfache Animationen über das Display laufen zu lassen. Das Programm wird über ein Audioschnittstelle übertragen und so kann man mit seinem Handy direkt ein kleines Programm erstellen und loslegen. Betrieben wird die Schaltung mit einer CR2023 Knopfzelle. Die Quellen für das Hardware-Design und auch die Firmware für den auf der Platine verbauten ATiny88 sind bei github verfügbar.

Nach meinen ersten Lötversuchen mit SMD-Bauteilen, konnte ich die Rakete innerhalb kurzer Zeit in Betrieb nehmen. Leider lassen sich die Buttons nicht über das Interface programmieren – sie dienen lediglich zum Durchschalten verschiedener Programme und als Ausschalter. Da die Firmware aber offen ist, kann sie vielleicht einfach erweitert werden, so dass auch komplexe Programme ablaufen können. Mangels internen Zustands ist z.B. auch kein Game of Life möglich.

Update
Ich habe gesehen, dass die Rakete bei einem Shop aus dem Dunstkreis des Metalab in Wien vertrieben wird – dort allerdings für gut investierte 25€.

34C3 Packliste

Das wichtigste für den Congress in Leipzig – neben unwesentlichen Dingen wie einer Unterhose oder Zahnbürste.

  • Aufkleber
  • RasPi
  • Powerbank
  • DECT-Telefon
  • GSM-Handy
  • Batterien AAA
  • LED-Blink-Kram
  • Geräuschsensor
  • microbit
  • Lockpickingset
  • Lupe
  • ESP8266
  • Steckbrücken
  • USB-Kabel
  • USB-Steckladedingens
  • Servomotor
  • Laptop
  • Pegelwandler

Charset – Encoding – Font

Immer wieder komme ich mit den Begrifflichkeiten Zeichensatz (Characterset), Zeichkodierung (Encoding) und Schriftart (Font) durcheinander. Damit scheine ich nicht alleine zu sein. Das Chaosseminar Ulm hat daher einen Vortrag mit dem gleichen Titel veröffentlicht, der die Begrifft erklärt.

  • Font: Schriftzeichen, die auf einem Bildschirm oder Papier ausgegeben werden – „das, was man sieht“. Es werden Bitmap- und Proportionalfonts unterschieden. Erstere beschreiben die Zeichen in einem Pixelformat, letztere in Kurven.
  • Characterset: Alle Zeichen, die relevant zu sein scheinen: nur US-amerikanische, Chinesische, Griechische etc. Nicht alle Schritftarten unterstützen alle Zeichen und sind in ihrem Umfang unterschiedlich groß. Der umfangreichste Zeichensatz ist derzeit Unicode. Die Zeichen werden durchnummeriert abgelegt.
  • Encoding: Die Beschreibung, wie Zeichen eines Zeichensatzes im Rechner in Form von Bitmustern abgelegt werden. Solange maximal ein Byte benutzt wird, entspricht die Kodierung genau der Interpretation als Ganzzahl in der Zeichentabelle. ASCII (7 Bit) und latin1 (8 Bit) machen dies so. Bei mehr als einem Byte pro Zeichen, können die Zeichen mit fester oder variabler Anzahl von Bytes kodiert werden. Bei fester Anzahl werden für reine ASCII-Buchstaben viele Bytes häufig nur mit Nullen befüllt und damit schlecht ausgenutzt. Eine variable Breite, wie etwa bei UTF8 genutzt, ermöglicht, ein Zeichen auf mehrere Bytes zu verteilen. Beginnt ein UTF8-Zeichen mit 110xxxxx, so folgen ein oder mehrere Bytes, die mit 10yyyyyy beginnen. Die freien Plätze xxxxxyyyyyy zusammen ergeben damit den Eintrag in der Zeichentabelle.

Sammelsurium Oktober – November 2017

cc: Freepik

 

Tweets aus dem Oktober

  • Spaß mit Tastaturen und Beamern. [Quelle]
  • Spaß mit Tastaturen.  [Quelle]
  • Einen #RaspberryPi herunterfahren, indem zwei Pins über einen Jumper überbrückt werden. [Quelle]
  • Bitcoin Mining: Demnächst auch in Android Apps?! [Quelle]
  • Erstaunlich, wie weit wir schon einmal mit „Home Automation“ waren. [Quelle]
  • Diese Vorträge der diesjährigen SHA17 haben mir besonders gut gefallen.  [Quelle]
  • Mit ‚git bundle‘ können Änderungen an Repos per Mail oder USB-Stick verteilt werden. [Quelle]
  • Der Nerd erklärt das Internet in überraschend eloquenten Worten. #AVGN  [Quelle]
  • rpitc ist der Versuch, den #RaspberryPi als ThinClient einzusetzen.  [Quelle]
  • Clonezilla kann nun Festplatten-Images nicht nur per Multicast, sondern auch via Bittorrent verteilen. [Quelle]
  • #westvisions Coole Location, super Lasershow, durchwachsenes Programm, tolle Verpflegung. Wunsch: inhaltlicher Fokus @WestVisions
  • Au weia, WiFi ist kaputt. [Quelle]
  • Eine Blockchain in Python in unter 50 Zeilen Quelltext. Nicht für den produktiven Einsatz aber für das Verständnis. [Quelle]
  • Der nächste @GameJamDortmund findet am 10.2.2018 in Dortmund statt. Zeit genug, sich Zeit nehmen. [Quelle]
  • TERES-I: ein Laptop zum Selbstbauen. Mit offenen Spezifikationen.  [Quelle]
  • Ich bin dann auch mal auf dem #hacktoberfest  [Quelle]
  • Ein Open-Soruce-, Open-Hardware-Taschenrechner: NumWorks graphing calculator. [Quelle]
  • „Never run a changing system.“
  • „The flat earth society has members all around the globe.“
  • Der ewige Kampf „screen“ gegen „tmux“… #Linux #nerd
  • Werbung macht dumm! Glaubt ihr nicht.  [Quelle]
  • Erst Schummelsoftware im Auto, nun eine Schummelsoftware bei der Berechnung der Verbrauche. [Quelle]
  • Devuan ist ein Fork von Debian, der ohne systemd auskommt. [Quelle]
  • #RaspberryPi in einem ReadOnly-Modus betreiben und nicht mehr herunterfahren müssen: einfach Kabel ziehen. [Quelle]
  • Hier stehen Atomwaffen in der Welt. [Quelle]
  • Die ist KEINE Meldung des @Der_Postillon [Quelle]
  • Den Nürnberger Trichter gibt es es jetzt auch in einer digitalen, deutlich gruseligeren, Version.  [Quelle]
  • #grandioseTitel [Quelle]
  • Software, aus öffentlichen Geldern finanziert, sollte Open Source sein. Habe den Offenen Brief unterschrieben. [Quelle]
  • Mit pandoc aus einer Webseite ein Office-Dokument erzeugen: $ pandoc -f html -t odt -o bakera.de.odt [Quelle]
  • Das „Civil Infrastructure Project“ will Software entwickeln, die Jahrzehnte lang läuft. #FSF @fsf [Quelle]
  • Beagle Bone Boards haben eine Echtzeit-CPU (PRU), die man selbst programmieren kann. [Quelle]

Tweets aus dem November

  • Wie produziert man heute ein C64-Spiel? Der 8-Bit-Guy hat es in einem kurzweiligen Video festgehalten  [Quelle]
  • „Hello Sir“ ist eine interessante Podcastserie über Scam [Quelle]
  • Ein einfacher Domino-Effekt in #Blender und #Python  [Quelle]
  • tuwat #34c3 [Quelle]
  • Google erfasst Standortdaten auch wenn Standortdienste deaktiviert sind. #android [Quelle]
  • „Es wird immer deutlicher, dass wir in einen Realitätszweig abgebogen sind, der nicht für den Produktivbetrieb gedacht war.“ – fefe
  • Ich vermute es schon länger: die Google-Suche ist kaputt. Ich probiere jetzt mal metager.  [Quelle]
  • Ein eigener PyPI-Server  [Quelle]
  • Endlich ein wertvoller Debattenbeitrag zur Frage „Wal oder Riesenrad?!“  [Quelle]
  • Eine optische Mouse als „Kamera“ nutzen.  [Quelle]
  • Oszilloskop aus einem Laser, Spiegel und zwei Lautsprechern. [Quelle]
  • Gestern habe ich zwei Sonnenaufgänge im Sonnenaufgangsautomaten erlebt. #RaspberryPi #blicke [Quelle]
  • Danke für die gestrige Verstörung im Theater Rottstr. #alice #bochum #youngnrotten
  • Technikverständnis ist eine notwendige Bedingung für Technikkritik.
  • Pauschale Aussagen sind immer falsch.
  • „We got the airplane on Sept. 19, 2016. Two days later, I was successful in accomplishing a remote, non-cooperative, penetration,“ [Quelle]
  • Visualisierung und Erklärung eines Modem Dialup Sound. [Quelle]
  • #labortage Danke für die interessanten Vorträge und die schöne Stimmung.
  • Auf zu den #labortage n im Bochumer @dasLabor
  • imress!ve macht aus PDF-Dokumenten Präsentationen. [Quelle]
  • Mikrofon in Steckern von Ethernetkabeln – gruselig.  [Quelle]
  • Neuzugang in der Hardwarekiste: zwei ThinClients IGEL D200. [Quelle]
  • FAIL = First Attempt In Learning #Fehlerkultur
  • Es ist lange her seit ich die letzte Ausgabe gelesen habe. #retro #amiga  [Quelle]
  • Neuzugang in der Hardwarekiste: ein ThinClient von Fujitsu [Quelle]
  • Arbeitsamt spricht von Bewerbermangel wenn auf eine offene Stelle drei o. weniger Bewerber kommen. Schräge Begriffsdefinition @AufwachenPod
  • Kaum ist das #Hacktoberfest vorbei, beginnt auch schon der #Makevember
  • „Python is the fastest-growing programming language, and by 2019 will … outstrip other languages.“  [Quelle]
  • Remote Desktops: Mein Erfahrungsbericht #rdp #pxe #x2go #vnc #thinstation #rpitc #thinclient /home/bakera/blog  [Quelle]

Wie produziert man heute ein C64-Spiel?

Früher wurden Spiele für den C64 in Schachteln ausgeliefert. Die Schachtel kaufte man im Laden und darin befand sich eine Diskette oder Kassette sowie eine Anleitung. Aber wie produziert man ein Spiel für den C64 heutzutage? Der 8-Bit-Guy hat das Spiel Planet X2 für den C64 selbst produziert – inklusive Soundtrack, Schachtel, Grafiken, Anleitung und Vertrieb. Den Prozess der Entwicklung hat er in dem kurzweiligen Video Planet X2 for the Commodore 64 dokumentiert. Hier fließen Entscheidungen darüber, wie die 64 kB RAM des C64 genutzt werden können, ebenso ein wie das Beta-Testing und die Bestellung und Produktion von Disketten.