Astronomie

Entfernung zu Proxima Centauri

Dieser Artikel ist älter als zwei Jahre und womöglich veraltet!

Dieser Beitrag befindet sich zwar etwas abseits der anderen Themen auf dieser Seite, aber ich finde, dass dieses Bild gut die Entfernungen im Weltraum darstellen kann.

Folgendes Bild stellt die Entferung zwischen der Erde und dem nächsten Stern, gennant Proxima Centauri, im Vergleich zur Entfernung zum Mars dar:

Achtung: Im Bild sind nur die Entfernungen Maßstabsgetreu, nicht die Größe der Himmelkörper.

Im Vergleich mit dem Abstand zum Mars ist der Abstand zu Proxima Centauri mit etwa 4,22 Lichtjahren deutlich größer. Alleine schon deswegen sind Reisen zum fremden Sternen noch Sciene-Fiction.

Software

Mit „syncevolution“ Handys über Linux synchronisieren

Dieser Artikel ist älter als zwei Jahre und womöglich veraltet!

Mit dem Paket „syncevolution“ ist es möglich sein Mobiltelefon über Linux mit verschienden Anbiertern von SyncML, wie den Google Kontakten, zu synchronisieren. Über Bluetooth können so zum Beispiel diese Kontakte im Adressbuch des Gerätes gespeichert werden.

Screenshot

Installation

Um das Paket zu installieren klicken Sie auf den folgenden Button:

syncevolution

Alternativ kann ins Terminal folgender Befehl eingegeben werden:

sudo apt-get install syncevolution

Konfiguration des Handys

Um ein Gerät synchronisieren zu können muss es zuerst konfiguriert werden, indem ein Profil gewählt, die Bluetooth-Adresse angegeben und ein Name vergeben wird.

Über syncevolution -l ?<suchbegriff> kann zunächst ein Template für das Gerät gefunden werden. Um zum Beispiel ein Nokia-Handy einzurichten gibt man syncevolution -l ?nokia ein.

Darauf antwortet das Skript mit:

Available configuration templates (clients):
template name = template description    matching score in percent (100% = exact match)
Nokia_N900 = Template for all Nokia phones which support contacts, notes and combined tasks+events    100%
Sony_Ericsson_K750i = Template for old Sony Ericsson phones, with separate databases for contacts/events/tasks/memos and SyncML 1.1    40%
Sony_Ericsson_W595 = Template for all current Sony Ericsson phones, with separate databases for contacts/events/tasks/memos and SyncML 1.2    40%
SyncEvolution_Client = SyncEvolution server side template    40%

In diesem Fall passt das Template „Nokia_N900“ am besten. Je nachdem welches Gerät man verwendet, ist an dieser Stelle natürlich eine andere Auswahl zu treffen.

Als nächstes legt man die eigentliche Konfiguration an:

syncevolution --configure --template <template> --sync-property syncURL=obex-bt://<bt-adresse> <name>

Bei mir wurde daraus:

syncevolution --configure --template Nokia_N900 --sync-property syncURL=obex-bt://D8:75:33:6F:20:2D Johannes

##Konfiguration der Google-Kontakte## Als Nächstes sollte man das andere Ende der Synchronisierung einrichten. In diesem Beispiel sind es die Google-Kontakte.

Dazu muss folgendes eingegeben werde:

syncevolution --configure --template google-contacts username=<benutzer>@gmail.com password=<passwort> target-config@google

Synchronisierung durchführen

Jetzt ist es möglich mit

syncevolution google

oder

syncevolution <Gerätename>

eine Synchronisierung durchzuführen.

Software

Github for Windows außerhalb Github verwenden

Dieser Artikel ist älter als zwei Jahre und womöglich veraltet!

Github for Windows ist ein git-Client mit einem ansprechendem und einfachem Erscheinungsbild. Er kann jedoch nicht nur für Github, sondern auch für alle anderen git-Repositories verwendet werden.

Github für Windows

Über einen Protokoll-Handler ist es möglich diese direkt im Client zu öffnen. Aus einer git-Adresse wie

https://mustermann@bitbucket.org/mustermann/projekt.git

macht man einfach

github-windows://openRepo/https://mustermann@bitbucket.org/mustermann/projekt

und öffnet diese Adresse in einem Browser.

Nach der optionalen Eingabe der Anmeldedaten wird die Repository geöffnet und automatisch geklont.

Security

Ein „Paket-Virus“ analysiert

Dieser Artikel ist älter als zwei Jahre und womöglich veraltet!

Alles beginnt mit einer Email, die ich angeblich von „USPS“, der US-amerikanischen Post, erhalten habe. Darin werde ich aufgefordert auf ein Bild zu klicken:

Email

Da ich solchen Emails, GMail hat diese schon in den Spam-Ordner befördert, nie vertraue habe ich mir die Nachricht etwas genauer angesehen:

...
Received: from emplenaf by ns1.icontrole14.net with local (Exim 4.80)
	(envelope-from )
	id 1TTchm-00082A-AN
	for [meine Email-Adresse]; Wed, 31 Oct 2012 16:07:54 -0200
...
Subject: USPS delivery refuse ID#83469
From: "USPS Express Services" 
X-Mailer: Achi-KochiMailLitever1.00
...
X-Get-Message-Sender-Via: ns1.icontrole14.net: authenticated_id: emplenaf/only user confirmed/virtual account not confirmed
X-Source: /usr/bin/php
X-Source-Args: /usr/bin/php 
X-Source-Dir: emplenaforma.com.br:/public_html
...
<html>
<body>
<a href="http://www.noguerasa.es/[Pfad zu Virus entfernt]"><img style="width: 466px; height: 646px;" alt="" src="http://www.noguerasa.es/SAGIPRXWJT.jpg"></a>
<p style="color: #FFFFFF;">Bestial thoughts crystallize into habits of drunkenness and sensuality, which solidify into circumstances of destitution and disease: impure thoughts of every kind crystallize into enervating and confusing habits, which solidify into distracting and adverse circumstances: thoughts of fear, doubt, and indecision crystallize into weak, unmanly, and irresolute habits, which solidify into circumstances of failure, indigence, and slavish dependence: lazy thoughts crystallize into habits of uncleanliness and dishonesty, which solidify into circumstances of foulness and beggary: hateful and condemnatory thoughts crystallize into habits of accusation and violence, which solidify into circumstances of injury and persecution: selfish thoughts of all kinds crystallize into habits of self-seeking, which solidify into circumstances more or less distressing.
</p>
<p style="color: #FFFFFF;">
These medals, which were given out to the poor each day in the halls where they worked, by the steward, or by the inspectors of the hall, served to prevent frauds in the distribution of the bread; the person who distributed it being obliged to produce them as vouchers of the quantity given out each day.Those who had received these portions of bread, held them up in their hands upon their coming into the dining-hall, as a sign that they had a right to seat themselves at the tables; and as many portions of bread as they produced, so many portions of soup they were entitled to receive; and those portions which they did not eat they were allowed to carry away; so that the delivery of bread was a check upon the delivery of soup, and VICE VERSA. The kitchen was fitted up with all possible attention, as well to conveniences, as to the economy of fuel. 
</p>
<p><span style="color: #FFFFFF;">She took a street car to the suburbs, and then, with directions from the driver, set out to find the house of Mr.Bordine, which she had never visited. She went to the front door and rung the bell. No answer was vouchsafed, and concluding that no one was at home, Rose turned to retrace her steps, when she espied a summer-house at a little distance, from which the murmur of voices proceeded. It was the voice of a woman, and involuntarily the steps of Rose Alstine halted. Could that be her lovers mother thus addressing her son? The girl was too deeply excited to notice that the name uttered was not that of her lover. Rose shuddered and grew white, yet she dared not advance, dared not interrupt the scene presented to her gaze. Eavesdropping was foreign to her nature, yet at that moment it was not in her power to recede, and so she was held in her tracks--compelled to listen to words that rent her heart like death itself. My dear, you wrong me when you imagine that I care for any one but you. 
</span></p>
</body>
</html>

Im From-Feld wird angegeben, dass die Email von der Adresse our-customers@usa-usps.com stammt, jedoch stammt die Nachricht eigentlich von der Adresse emplenaf@ns1.icontrole14.net. Das ist schon einmal nicht sehr vertrauenserweckend.

Received: from emplenaf by ns1.icontrole14.net with local (Exim 4.80)
(envelope-from <emplenaf@ns1.icontrole14.net>)

Die Email wurde mit PHP verschickt, und der Server war auch so freundlich den Pfad am Server in einem Header preiszugeben:

X-Source-Dir: emplenaforma.com.br:/public_html

Die Domain emplenaforma.com.br gehört einer gewissen Vanessa I. aus Brasilien, leitet Anfragen jedoch auf den Server ns1.icontrole14.net in den USA um.

Der Text der Email enthält augenscheinlich Text, der von irgendwoher kopiert wurde und in weißer Schrift Mailserver täuschen soll. Der erste Teil stammt aus dem Buch „Essays, Political, Economical, and Philosophical, Band 1“ und der zweite Teil aus „Five Thousand Dollars Reward“.

Das Bild ist ein Link auf eine kryptische Seite mit der Endung .html auf http://www.noguerasa.es. Die Domain gehört einer spanischen Firma für Metallverarbeitung. Dort bekommt man vom Server folgende Antwort:

<html>
<body>
<script language="JavaScript">
<!--
window.location="[entfernt].zip";
//-->
</script>
</body>
</html>

Der Besucher wird sofort auf eine zip-Datei umgeleitet und diese vom Browser zum Download angeboten. Der fehlende Doctype Vorgang ist für einen serösen Anbieter natürlich sehr unwahrscheinlich.

Im Archiv befindet sich eine auführbare Datei mit dem selben Namen, wie das Archiv selbst. Virustotal bescheinigt mir, dass es sich dabei um einen Virus handelt. Als Icon verwendet die Datei das PDF-Symbol und lädt damit den unbedarften Benutzer zum Öffnen ein.

Die Datei gibt an, bereits am 19.06.1992 um 22:22:17 erstellt worden zu sein, was sich aber wahrscheinlich auf ein falsch eingestelltes Datum zurückführen lässt. Der Prozess bedient sich laut Virustotal an den folgenden Aufrufen:

[[advapi32.dll]]
RegOpenKeyExA, RegQueryValueExA, RegCloseKey

[[kernel32.dll]]
GetStdHandle, EnterCriticalSection, FreeLibrary, ExitProcess, GetThreadLocale, RtlUnwind, DeleteCriticalSection, GetStartupInfoA, GetLocaleInfoA, LocalAlloc, UnhandledExceptionFilter, GetCommandLineA, RaiseException, GetModuleHandleA, WriteFile, GetCurrentThreadId, LocalFree, InitializeCriticalSection, VirtualFree, TlsGetValue, TlsSetValue, GetVersion, VirtualAlloc, LeaveCriticalSection

[[comdlg32.dll]]
FindTextW

[[ole32.dll]]
WriteFmtUserTypeStg

[[user32.dll]]
MessageBoxA, GetKeyboardType

Eine Analyse mit dem Linux-Programm strings sagt mir, dass der Virus in Delphi erstellt wurde:

...
<assemblyIdentity
	type="win32"
	name="DelphiApplication"
	version="1.0.0.0"
	processorArchitecture="*"/>
...

Durch eine Analyse mit Anubis habe ich weitere Details herausgefunden. So wird zum Beispel als Ablenkungsmanöver notepad.exe gestartet, um vorzutäuschen, dass es sich um ein normales Programm handelt. Im Hintergrund wird jedoch die eigentlich Malware von der Domain fihjh.ibbuhnw.tk heruntergeladen.

Auf diesen Server zeigt auch noch eine ukrainische Domain, gehostet wird der Server jedoch in Deutschland.

Als User-Agent wird dabei Mozilla/5.0 (compatible; MSIE 6.0; Windows NT 5.1; Trident/5.0);(b:2600;c:INT-3360;l:07) verwendet.

Dabei wird auch die Datei hhdtdvkc.exe angelegt und einige Registry-Keys verändert.

Zuerst wird über eine API auf einem anderen Server, der in Hongkong steht, die bei mir jedoch einen Fehler 404 zurückgiebt, die URL des Downloads abgefragt, und dann der Virus update.exe von fihjh.ibbuhnw.tk heruntergeladen. Noch während ich die Adressen auf dem Server untersuchte verschwand die Domain und gab mir ab 01.11 18:45 nur mehr eine “Domain nicht gefunden”-Meldung zurück.

Über die IP-Adresse konnte ich die exe-Datei gerade noch herunterladen. Am Server werden die Log-Dateien wohl von jemanden beobachtet, der meine Anfragen zurecht als verdächtig eingestuft hat. Die Seite ist jedenfalls auf einem Server in der Ukraine gehostet.

Auch diese Datei habe ich wieder mit Anubis analysieren lassen. Dieses mal werden die Dateien C:\439687.bat, C:\WINDOWS\system32\dfrgnet.dll und C:\file.exe angelegt. Außerdem schreibt der Virus in den Speicherbereich von explorer.exe.

Mit dem Aufruf cmd /c ""C:\439687.bat" "C:\file.exe"" werden die Attribute für Schreibschutz, Verstecktheit und Systemdatei entfernt und anschließend gelöscht.

Laut Virustotal lautet der originale Dateiname DRWEB32.EXE, was das Programm wohl als Rogue-Antivirus tarnen soll.

Registrierung

Was genau das Programm an dieser Stelle ausführt und mit dem Computer als Opfer anstellt, kann ich an dieser Stelle, ich bin kein Experte für Computerforensik, leider nicht feststellen.

Wenn Sie sich dafür interessieren können Sie die Ergebnisse der Analysen hier herunterladen:

Entwicklung

Catalysts Coding Contest Wien 2012

Dieser Artikel ist älter als zwei Jahre und womöglich veraltet!

Am Freitag, den 19. Oktober habe ich wieder am Catalysts Coding Contest, dem, nach eigenen Angaben härtesten Programmierwettbewerb Österreichs, teilgenommen. Zum ersten Mal war ich beim Herbsttermin in Wien dabei. Der Wettbewerb fand dieses Mal in der Volkshalle im Rathaus statt.

Wie man auch der offizielle Presseaussendung entnehmen kann, ging es dieses Mal um das “Lippenlesen”. Genauer gesagt war verlangt vom Computer bereits erkannte Bewegungen den Buchstaben zuzuordnen.

Bei mir hat es leider nur für das Level 2 gereicht, aber da ich mit dem Studium noch nicht begonnen habe, ist das nicht so schlimm. Genau genommen bin ich auf Platz 101 von 126 gelandet, wie der folgende Screenshot beweist:

Mein Ergebnis

Ich möchte im Folgenden kurz die Aufgabenstellungen und meine Lösung erläutern:

Level 1

Hier wurde eine Trainingsdatei mit den Buchstaben und den zugehörigen Bewegungen bereitgestellt:

26 a I U v o b I I i i c I ( i c d I ( i c e I U i c f I I i u g I ( i c h S S i ...

Am Anfang steht die Anzahl der Buchstaben und dahinter stehen Buchstaben mit den zugehörigen vier Zeichen, die die Bewegung darstellen. In diesem Beispiel gibt es 26 Buchstaben des Alphabetes und ein “a” bedeutet als Bewegung “I U v o”, “b” bedeutet “I I i i”, usw…

Hier musste man also zuerst die Übersetzungen einlesen, was ich mit folgendem Code erledigt habe:

$data = CCCHelper::stringToArray("26 a I U v o b I I i i c I ( i c d I ( i c e I U i c f I I i u g I ( i c h S S i c i I U v o j S S i c k I ( i c l D H v o m I I i i n I ( i c o - C i o p I I i i q o - i i r I ( i c s I ( i c t S S i c u - C i c v I I i u w o - i i x S S i c y I ( i c z I ( i c");

$dict = Array();

for($i = 1; $i < ($data[0]*5); $i = $i+5){
	$dict[$data[$i]] = $data[$i+1] . " " . $data[$i+2] . " " . $data[$i+3] . " " . $data[$i+4];
}

Zum Aufspalten der Buchstaben habe ich eine kleine, selbst geschriebene, Hilfsklasse namens CCCHelper verwendet, in der die folgende Funktion definiert ist:

public static function stringToArray($input){
  return explode(" ", $input);
}

Dadurch erhielt ich eine Auflistung der Buchstaben:

Array
(
    [a] => I U v o
    [b] => I I i i
    [c] => I ( i c
    [d] => I ( i c
    [e] => I U i c
    [f] => I I i u
    [g] => I ( i c
    [h] => S S i c
    [i] => I U v o
    [j] => S S i c
    [k] => I ( i c
    [l] => D H v o
    [m] => I I i i
    [n] => I ( i c
    [o] => - C i o
    [p] => I I i i
    [q] => o - i i
    [r] => I ( i c
    [s] => I ( i c
    [t] => S S i c
    [u] => - C i c
    [v] => I I i u
    [w] => o - i i
    [x] => S S i c
    [y] => I ( i c
    [z] => I ( i c
)

Wie man hier sieht, kommt die gleiche Abfolge bei mehreren Buchstaben vor.

Nun ging um die Erkennung der Buchstaben in mehreren Beispielen.

21 - C i o I ( i c - C i o o - i i S S i c I ...

Auch hier wurde an erster Stelle wieder die Anzahl der Buchstaben angegeben und dahinter befinden sich in Vierer-Gruppen die erkannten Bewegungen. “- C i o” bedeutet zum Beispiel ein “o”.

$speech = CCCHelper::stringToArray("21 - C i o I ( i c - C i o o - i i S S i c I ( i c I ( i c I I i u o - i i S S i c I I i u I ( i c I U i c I ( i c - C i c o - i i S S i c - C i o I ( i c S S i c S S i c");
        
for($i = 1; $i < ($speech[0]*4)+1; $i=$i+4){
	$res[] = array_keys($dict, $speech[$i] . " " . $speech[$i+1] . " " . $speech[$i+2] . " " . $speech[$i+3]);
}

Dieser Code sucht bei jeder Vierer-Gruppe nach Vorkommen in den Übersetzungen und schreibt diese in ein Array. Dieses sieht dann so auch:

Array
(
    [0] => Array
        (
            [0] => o
        )

    [1] => Array
        (
            [0] => c
            [1] => d
            [2] => g
            [3] => k
            [4] => n
            [5] => r
            [6] => s
            [7] => y
            [8] => z
        )

    [2] => Array
        (
            [0] => o
        )

    ...

    [20] => Array
        (
            [0] => h
            [1] => j
            [2] => t
            [3] => x
        )

)

Verlangt war diese Buchstaben so auszugeben, dass zuerst die Anzahl der möglichen Übersetzungen und dann die Buchstaben für jede Bewegung angegeben werden. Bei einem Buchstaben, der zum Beispiel entweder “a” oder “i” ist, wird “2 a i” ausgegeben. Diese müssen auch aufsteigend sortiert sein.

foreach($res as $char){
	echo count($char) . " ";
	sort($char);
	foreach($char as $item){
		echo $item . " ";
	}
}

Durch diesen Code habe ich bei jedem Eintrag die Anzahl und die möglichen Buchstaben ausgeben lassen, was zu folgendem Ergebnis führte:

1 o 9 c d g k n r s y z 1 o 2 q w 4 h j t x 9 c d g k n r s y z ...

Level 2

Bei Level 2, das ich leider nicht mehr fertigstellen konnte, was wohl an der schon zunehmenden Erschöpfung lag, mussten aus diesen Buchstaben alle möglichen Kombinationen aus einer ~18000 Wörter langen Wörterbuchdatei ausgegeben werden.

Wer sich selbst an den Beispielen versuchen will, der kann dies hier tun. Catalysts hat auch eine Infografik des Wettbewerbs veröffentlicht:

Ich freue mich schon wieder auf den nächsten Wettbewerb und hoffe, dass ich wieder dabei sein kann!