Lego Fort Wolfenfels

2018-05-19 von admin

Am Rande der karibischen See ragen unscheinbare Felsen aus dem Wasser, welche ein schreckliches Geheimnis bewahren. Vor langer Zeit dienten diese Ureinwohnern regelmäßig dazu, grausame Rituale abzuhalten.

Nach der Besiedelung durch die Europäer wurden diese Rituale unter Todesstrafe gestellt und mit der Zeit gerieten die Taten in Vergessenheit. Doch die Geschichten und Mythen um die sagenumwobenen Felsen und die dort praktizierten Gewalttaten wurden von Seemann zu Seemann unter vorgehaltener Hand weiter erzählt.

Trotz der Schauermärchen hielt es Sir Wallenstein nicht davon ab, einen Außenposten genau auf einem dieser Felsen zu errichten. Das Fort Wolfenfels ist mit mehreren Kanonen bestückt und durch ein natürliches Riff umgeben, das es vor potenziellen Angreifern ausreichend schützt.

Der Außenposten enthält einen Steg und einen Kran, um schwere Lasten zu heben.

Die Beobachtungsposten sind rund um die Uhr mit Soldaten besetzt, um den Horizont nach Feinden abzusuchen.

Das Fort Wolfenfels verbirgt eine gespenstische Unterwelt, welche durch einen schmalen Gang betreten werden kann.

Eine Geschichte, die erzählt wird, lautet: „Ein gefangener Pirat wurde vor einigen Jahren in das unterirdische Gewölbe eingesperrt. Als man ihn am nächsten Tag etwas zu Essen brachte, fand man nur noch sein Skelett vor. Es existiert kein weiterer Eingang in die Höhle als über eine verschlossene Luke, die Tag und Nacht bewacht wurde…“

Seit diesem Zeitpunkt wagt es niemand mehr, die Nacht dort unten zu verbringen.

Kategorie: Allgemein Schlagwörter: , ,

Hack-IT: Zahlenschloss

2018-05-12 von admin

Es ist ein Schloss gegeben, welches drei Felder für die Eingabe einer Zahl erwartet. Wird die richtige Kombination eingegeben, so öffnet sich das Schloss.

Folgende Hinweise (A bis E) helfen bei der Lösungsfindung:

Hinweis Nr. 1 Nr. 2 Nr. 3 Beschreibung
A 6 8 2 Eine Nummer ist richtig und richtig platziert
B 6 1 4 Eine Nummer ist richtig aber falsch platziert
C 2 0 6 Zwei Nummern sind richtig aber falsch platziert
D 7 3 8 Nichts ist richtig
E 7 8 0 Eine Nummer ist richtig aber falsch platziert

 

 

Im weiteren folgt eine Darstellung eines Lösungswegs. Vor dem Weiterlesen sollte selbst eine Runde probiert werden! :)

Hinweis D

Nach dem Durchlesen der Hinweise verspricht der Hinweis „D“ eine größere Reduktion der Kombinationsmöglichkeiten. Nach der Anwendung werden alle Werte mit 7, 3 und 8 entfernt.

Hinweis Nr. 1 Nr. 2 Nr. 3
A 6 2
B 6 1 4
C 2 0 6
D
E 0

 

Hinweis E

Der Hinweis „E“ führt zu einer weiteren Reduktion der Möglichkeiten. D.h., die Nr. 1 oder die Nr. 2 der Kombination muss eine Null enthalten.

Nr. 1 Nr. 2 Nr. 3
0
0

 

Hinweis C

Der Hinweis C sagt: „Zwei Nummern sind richtig aber falsch platziert“. Daraus ergeben sich die Kombinationen:

Kombination Kombination
2 0
6 0
2 6

Da der Hinweis E festlegt, dass eine „0“ enthalten sein muss, entfällt hier die letzte Kombination.

 

Hinweis A

Aus den aktuell gewonnen Erkenntnissen ergibt sich folgender Zwischenstand der Kombinationsmöglichkeiten unter Anwendung des Hinweises „A“. D.h., „Eine Nummer ist richtig und richtig platziert“. Somit kann die Zahl „6“ oder „2“ in Kombination mit der Zahl „0“ gesetzt werden.

Nr. 1 Nr. 2 Nr. 3
0 2
6 0
0 2

 

Hinweis B

Der Hinweis B besagt „Eine Nummer ist richtig aber falsch platziert“.

Hinweis Nr. 1 Nr. 2 Nr. 3
B 6 1 4

 

Dadurch entfällt die Kombination in der Mitte, da die Nummer „6“ nur an erster Stelle stehen darf (Hinweise A, D, E, C) und laut Hinweis B umplatziert werden muss.

Nr. 1 Nr. 2 Nr. 3
0 2
6 0
0 2

 

Die beiden übrigen Kombinationen („0“ und „2“) werden mit den Nummern „1“ und „4“ aus dem Hinweis B erweitert. Daraufhin werden die Hinweise je Kombination geprüft.

Nr. 1 Nr. 2 Nr. 3 Hinweis A Hinweis B Hinweis C Hinweis D Hinweis E
0 1 2 Ja (2) Nein (1) Ja (2,0) Ja Ja (0)
0 4 2 Ja (2) Ja (4) Ja (0,2) Ja Ja (0)
1 0 2 Ja (2) Ja (1) Nein (0) Ja Ja (0)
4 0 2 Ja (2) Ja (4) Nein (0) Ja Ja (0)

 

Die Zahl in den Klammern steht für den Widerspruch oder für die Zustimmung der Regel.

 

 

Quellenangabe:

Kategorie: IT Schlagwörter: , ,

Hack-IT: Reverse Engineering – Aktivierungscode (.NET)

2018-05-06 von admin

Auf der leider nicht mehr verfügbaren Plattform „CanYouHack.it“ gab es die Challenge „I’m sure you’ve just lost the key“. Dabei handelte es sich um eine EXE-Datei (Crack1.exe), welche nach dem Starten einen Aktivierungscode verlangte.

1. Analyse der Datei

Mit dem Befehl „strings“ habe ich die EXE-Datei etwas näher untersucht. Dadurch sind folgende interessante Zeichenketten zum Vorschein gekommen.

WindowsFormsApplication1.exe
WindowsFormsApplication1.Properties
System.Windows.Forms
.NETFramework,Version=v4.5

D.h., die EXE-Datei wurde mit großer Wahrscheinlichkeit mit .NET erstellt.

2. Quellcode dekompilieren

Da es sich bei .NET um eine Common Intermediate Language handelt, ist eine Rückumwandlung des Quellcodes relativ leicht umsetzbar. Es existieren dafür verschiedene Tools. In dem Beispiel wurde ILSpy verwendet.

3. Quellcode untersuchen

Aus dem Code geht hervor, dass auf eine Seite zugegriffen und der eingegebene Aktivierungscode als Parameter übergeben wird. Daraufhin erhält man den Antworttext „Valid“ zurück und das gesuchte Passwort wird erstellt und ausgegeben.

Der erste Teil kann ignoriert werden, da dieser nur Mittel zum Zweck ist. Der Wert „Valid“ kann einfach vorausgesetzt werden. Interessant ist hingegen folgender Abschnitt:

Es ist ein Array gegeben, welches die Buchstaben „a“ bis „z“ beinhaltet. Über die Inhalte des Arrays wird iteriert und jeder Index wird durch 7 geteilt (Modulo). Ergibt der Rest 0, dann wird der entsprechende Buchstabe in der Variable „text2“ gespeichert. Dadurch entsteht das begehrte Passwort.

4. Script erstellen

Die Lösung kann in dem Fall auch per Hand ermittelt werden, jedoch wo bleibt da der Spaß. ;) Hier das erstellte Python Script:

#!/usr/bin/python3

for i in range(97,123,1):
	if ((i-97) % 7 == 0):
		print(str(chr(i)))

 

Zeile Beschreibung
1 Shebang
3 Eine Schleife über die ASCII Werte a bis z.
4 If Abfrage ob die Division (Modulo) den Rest 0 ergibt.
Der Kniff „i-97“ erspart die Deklaration eines Arrays mit den Buchstaben „a“ bis „z“.
5 Ausgabe des Buchstabens

 

Das Passwort lautet „ahov“.

Kategorie: IT Schlagwörter: , , , ,

Hacken wie in einem Hollywood Blockbuster

2018-04-28 von admin

Wenn Du schon immer mal Freunde oder Familie mit deinen Hacker-Fähigkeiten beeindrucken wolltest, dann einfach das Programm „hollywood“ unter Linux installieren und starten.

Ein kleiner Eindruck gibt das folgende Video:

Kategorie: Unterhaltung Schlagwörter: ,

Raspberry PI: Board Version herausfinden

2018-04-21 von admin

Von Zeit zu Zeit kommen neue Raspberry Pi Boards auf den Markt. Der Unterschied der neueren Boards sind meist Hardwareveränderungen. Diese Änderungen können Auswirkungen auf eigene Projekte haben. Jeder Pi besitzt eine eindeutige Revisionsnummer. Mit der Nummer kann das Modell eines Raspberry Pi identifiziert werden.

Mit dem Befehl „pinout“ wird auf der Konsole folgende Darstellung ausgegeben und die Revisionsnummer kann in Erfahrung gebracht werden.

Eine weitere Möglichkeit ist die Anzeige der Datei „cpuinfo“. Dafür auf der Konsole den Befehl:

cat /proc/cpuinfo

ausführen und folgende Informationen werden angezeigt:

Mit der Revisionsnummer ist es daraufhin möglich, in der folgenden Tabelle das Modell zu recherchieren.

Model und PCB Revision RAM Revisionsnummer
Model B Rev 1 256MB 0002
Model B Rev 1
ECN0001 (no fuses, D14 removed)
256MB 0003
Model B Rev 2 256MB 0004
0005
0006
Model A 256MB 0007
0008
0009
Model B Rev 2 512MB 000d
000e
000f
Model B+ 512MB 0010
0013
900032
Compute Module 512MB 0011
Compute Module 512MB 0014
Model A+ 256MB 0012
Model A+ 256MB 0015
Model A+ 512MB 0015
Pi 2 Model B v1.1 1GB a01041
Pi 2 Model B v1.1 1GB a21041
Pi 2 Model B v1.2 1GB a22042
Pi Zero v1.2 512MB 900092
Pi Zero v1.3 512MB 900093
Pi Zero W 512MB 9000C1
Pi 3 Model B 1GB a02082
Pi 3 Model B 1GB a22082
Pi 3 Model B+ 1GB a020d3

 

Quellen

elinux.org/RPi_HardwareHistory

Kategorie: IT

Raspberry PI: WLAN manuell einrichten

2018-04-14 von admin

Mein Link Raspberry PI (Modell 2 Modell B Rev. 1.1, Debian Stretch) verfügt per default über kein WLAN. Durch einen USB Stick (EDIMAX EW-7811UN Wireless USB Adapter) kann WLAN ganz einfach nachgerüstet werden.

Als erstes den USB Stick einstecken, dieser wird automatisch erkannt. Danach sollte vorsorglich das System des Pi aktualisiert werden. Dafür folgende Befehle auf dem Pi eingeben:

sudo apt update
sudo apt upgrade
sudo reboot

Als zweites muss lediglich das WLAN konfiguriert werden. Dafür die Datei „/etc/wpa_supplicant/wpa_supplicant.conf“ als Root bearbeiten. Die folgenden Zeilen in die Datei einfügen und die beiden Attribute SSID und PSK entsprechend der eigenen WLAN Konfiguration anpassen.

network={
  ssid="meinWLAN"
  psk="strenggeheim"
}

Als drittes und letztes gilt es, das Device zu aktivieren.

sudo ifup wlan0

 

Kategorie: IT

Raspberry PI: GPIOs mittels I2C Port Expander (MCP23017) erweitern

2018-04-11 von admin

Mit dem Chip MCP23017 ist es sehr einfach möglich, eine Porterweiterung (Port Expander) des Raspberry Pi vorzunehmen. Dafür wird der I2C-Bus (Inter Integrated Circuit) des Raspberry Pi verwendet, um mit dem Baustein MCP23017 zu kommunizieren.

 

Setup

Komponenten Beschreibung
Raspberry PI Raspberry Pi 2 Model B v1.1
Betriebssystem Raspbian Stretch
Chip MCP23017
Datenblatt microchip.com/wwwproducts/en/MCP23017 (Documents)
Software fritzing.org

 

Vorbereitung

Vor dem Einsatz sollte das System des Raspberry Pi aktualisiert werden. Dafür die folgenden Befehle eingeben:

apt-get update
apt-get upgrade

Daraufhin die Verwendung von I2C in der Datei „/boot/config.txt“ aktivieren (Zeile einfügen oder auskommentieren).

dtparam=i2c_arm=on

Als nächstes in der Datei „/etc/modules“ zwei Module einfügen.

i2c-dev
i2c-bcm2708

Bei neueren Pi Versionen müssen die Module noch aus der Blacklist Datei entfernt werden:

sudo vi /etc/modprobe.d/raspi-blacklist.conf

Vor den beiden Einträgen eine Raute (#) setzen.

#blacklist spi-bcm2708
#blacklist i2c-bcm2708

 

Damit der I2C Bus angesprochen werden kann, folgende Pakete installieren:

sudo apt-get install python-smbus i2c-tools

Anschließend den Pi neu starten.

 

Verkabeln

Der MCP23017 besitzt den folgenden Aufbau, wie auf dem Bild ersichtlich. Weitere Information können dem Datenblatt entnommen werden.

Um sich mit der Funktionsweise des MCP23017 vertraut zu machen, wurden 3 Dioden angeschlossen.

Folgende PINs sind belegt:

Pin (MCP23017) Pin (Pi)
Pin 9 (VDD) Pin 1 (Power 3.3V)
Pin 10 (VSS) Pin 30 (GND)
Pin 12 (SCL) Pin 5 (GPIO3 – SCL1)
Pin 3 (SDA) Pin 3 (GPIO3 – SDA1)
Pin 18 (Reset) Power 3.3V
Pin 15 (A0)
Pin 16 (A1)
Pin 17 (A2)
GND

 

Aufbau

 

Testen

Die Adresse einen angeschlossenen I2C-Bausteins kann mit dem Programm „i2cdetect“ geprüft werden:

sudo i2cdetect -y 1
Befehl Beschreibung
ic2detect Der Befehl aus i2c-tools zum “Auffinden” von I2C Peripherie
-y Parameter zum Ausführen ohne Nachfrage
1 Nummer des Busses; Die Nummer kann 1 oder 0 sein,
je nachdem, ob der I2C0- oder I2C1-Port verwendet wird.

 

Die Ausgabe des Befehls sollte sich so darstellen:

Werte schreiben

Nachdem die Baustein-Adresse ablesbar ist, kann jetzt mit dem Schreiben von Werten begonnen werden. Dafür müssen alle Pins der Bank A (GPA) als Ausgang deklariert werden:

i2cset -y 1 0x20 0x00 0x00

Es wird in jedes der 8 Bits eine “0” geschrieben. Eine 1 würde den entsprechenden Pin als Eingang deklarieren (Default). Daraufhin können einzelne Pins oder alle angesprochen werden. Danach können mit dem Befehl „i2cset“ einzelne Pins geschaltet werden.

i2cset -y 1 0x20 0x14 0xff
Befehl Beschreibung
i2cset Der Befehl aus i2c-tools zum “Setzen” von Werten
-y Parameter zum Ausführen ohne Nachfrage
 1 Bus Nummer
0x20 Bausteinadresse
0x14 Zeile (GPA = 0x14; GPB = 0x15)
0xff Der jeweilige Wert (Pin) in hexadezimal. In diesem Fall werden alle PINs gesetzt.

 

Folgende PINs können je Bank (GPA/GPB) belegt werden:

Pin
(Wert)
Hex
7 0x80
6 0x40
5 0x20
4 0x10
3 0x08
2 0x04
1 0x02
0 0x01
all 0xff
off 0x00

 

Wenn z.B. der PIN 0 und 2 gleichzeitig gesetzt werden soll, dann muss der Hex Wert 0x05 (Binär 101) vergeben werden.

0x01 + 0x04 = 0x05

 

Werte lesen

Zum Auslesen wir der Befehl „i2cget“ verwendet.

i2cget -y 1 0x20 0x14
Befehl Beschreibung
i2cget Der Befehl aus i2c-tools zum „Auslesen“von Werten
-y Parameter zum Ausführen ohne Nachfrage
1 Bus Nummer
0x20 Adresse des Bauteils
0x14 Auszulesende Zeile
Kategorie: IT Schlagwörter: , ,

Rezension: Reden wir über Geld

2018-04-07 von admin

Autor: Niki Lauda, Conny Bischofberger

Taschenbuch: 203 Seiten

Verlag: edition a; Auflage: 2 (8. Oktober 2015)

Sprache: Deutsch

ISBN-10: 399001143X

ISBN-13: 978-3990011430

Das Hörbuch „Reden wir über Geld“ von Niki Lauda ist ein spannender und lehrreicher Genuss. Die Laufzeit beträgt 4 Stunden und 34 Minuten. Der Titel lässt mutmaßen, dass Herr Lauda Patentrezepte zum Geld verdienen erläutert, dem ist nicht so. Vielmehr werden Ausschnitte aus seinem beruflichen Leben beschrieben. Bei der Beschreibung der verschiedenen Lebensabschnitte werden zwischen den Zeilen interessante Prinzipien zum besten gegeben:

  • Welche Verhandlungsstrategien kann ich anwenden
  • Wie steigere ich meinen Marktwert
  • Wie setzte ich mir Ziele
  • Wie verdiene ich Geld
  • Wie führe ich richtig

 

Nach dem Hörbuch hat sich meine Wahrnehmung der Person Lauda komplett geändert und der ein oder andere Schmunzler kommt einem definitiv über die Lippen.

Einen Grundtenor lautet: „Je mehr Geld im Spiel ist, desto besser ist es, auf dem Boden zu bleiben.“

 

Wertung: absolut hörenswert

Kategorie: Bücher Schlagwörter: ,