BigBasti's Blog About Me & my Digital Lifestyle

29Jun/100

ScreenShot Helper – erleichert den Umgang mit Bildern in der Windows Zwischenablage

Heute mal etwas in eigener Sache: Ich habe mal wieder ein kleines Tool für Windows fertiggestellt welches euch das leben etwas erleichern kann. Die Rede ist von ScreenShot Helper.

Bild 1: Benachrichtigung über eine neue Grafik in der Zwischenablage

ScreenShot Helper ist dafür gedacht Grafiken, die ihr in die Zwischenablage steckt schnell und einfach zu verarbeiten. Ein Bleispiel: Ihr wollt einem Bekannten einen Fehler oder etwas anderes zeigen, dass auf eurem Bildschirm passiert. Wenn ihr nur die Windows Tools verwendet müsst ihr erst einen Screenshot machen, dann Paint (oder ein anderes Bildprogramm) starten die Grafik dort einfügen, das Bild speichern, nun müsst ihr eine Webseite suchen auf die ihr das hochladen wollt um dann schließlich den Link zu bekommen, den ihr eurem Freund geben könnt.

Mit ScreenShot Helper wird dieser Vorgang stark vereinfacht. Das Programm erkennt automatisch, dass eine neue Grafik in der Zwischenablage ist und zeigt euch das Fenster aus Bild1. Nun könnt ihr mit einem Klick das Bild speichern oder es mit ebenfalls einem Klick hochladen und bekommt direkt den Link den ihr weiter verteilen könnt.

Ich bin mir dessen völlig bewusst, dass es sehr viele sehr ähnliche Tools da draußen im Web gibt die diese und noch weitere Funktionalitäten bieten. Ich wollte aber einfach nur ein leichtes schnelles Tool haben, dass genau das macht was ich brauche und dass ich weiter anpassen kann.

Vielleicht könnt ihr ja auch soetwas gut gebrauchen. Hier gehts zum Programm.

VN:F [1.9.3_1094]
Rating: 9.0/10 (1 vote cast)
5Nov/090

Windows 7 und seine Schönheitsfehler Teil 2: Die Taskleiste

win7Letzte Woche habe ich unter Windows 7 etwas sehr seltsames beobachtet. Nach dem ich ein kleines Programm geschrieben hatte, dass ich zwischendurch nutzen wollte, wollte ich dieses an die Taskleiste "pinnen", damit ich es immer schnell griffbereit habe!

win75Bild 1: Links: Wie es sein sollte. Rechts: So sieht das "Problem" aus

Doch Pustekuchen! Ich konnte das Programm, ja nicht mal eine Verknüpfung, die auf das Programm linkte an die Taskleiste pinnen! Seltsam, denn andere Programme, auch selbstgeschriebene, konnte ich problemlos anpinnen!

Woran kann das liegen? Alle Optionen, die man von anderen Programmen kennt waren nicht da! Die ganze Jumplist hatte nur den Eintrag "Fenster schließen". Die anderen Optionen wie "Programm an die Taskleiste pinnen" waren alle weg!

Die erste Vermutung war natürlich, es liegt am Code! - Son Mist - Also habe ich losgelegt und das Programm Stück für Stück von verschiedenen Codeteilen befreit bis ich garkeinen Code mehr im Programm hatte. Aber das "Problem" war immernoch nicht behoben!

Wie gesagt konnte ich andere Programme, die ich selbst gemacht habe anpinnen, nur dieses eine nicht. Also habe ich das getan, was jeder kompetente Programmierer tun würde, ich befragte Google! :-)

Leider konnte ich nichts wirklich brauchbares finden, das meinen Fall bestätigte. Schließlich wollte ich schon aufgeben und das Projekt neu anlegen, in der Hoffnung es würde nicht wieder auftauchen.

Zu meinem Glück habe ich davor ein Skript (an dem ich zur Zeit etwas herum spiel) verwendet, dass dieses Programm  (zusammen mit vielen anderen Dateien) umbenannt hatte. Nun hieß das Programm "ax4b.exe". und Überraschung - ich konnte es anpinnen.

Es lag am Namen!

Als ich dem Programm wieder seinen Originalnamen verlieh konnte ich es wieder nicht anpinnen! Achja, das Programm heißt "Uploadhelper.exe"

Wie es also scheint, sind bestimmte Programme unter Windows 7 von der Fähigkeit befreit sich an die Taskleiste pinnen zu können.

Wie ich dann nach einer weiteren Internetrecherche herausgefunden habe gibt es einen Registryeintrag namens "AddRemovenames" derhier zu finden ist:

HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\FileAssociation\AddRemoveNames

win76Bild 2: Der Registryeintrag mit den "verbotenen" Namen

Dieser enthält alle Schlüsselwörter, die alle Programme, die eins dieser Wörter im Namen beinhalten, nicht an die Taskleiste pinnen lässt! Diese Wörter sind:

Documentation;Help;Install;More Info;Readme;Read me;Read First;Setup;Support;What's New;Remove

Und da mein Programm das Wort "help" im Namen hatte wurde es von dieser Regel betroffen.

Es scheint so zu sein, dass Microsoft keine Hilfe oder Setup Programme in der Taskleiste sehen will. Wobei ich wirklich nicht verstehen kann, warum "Documentation" in der Liste steht!

Also hat man als Entwickler nun die Wahl: Entweder man benennt sein Programm um, oder man löscht den entsprechenden Eintrag aus diesem Registryeintrag. Von dem letzteren würde ich allerdings abraten, da es ein enormer Eingriff in die Benutzereinstellungen wäre, und wer weiß, vielleicht benutzen noch andere Dienste diesen Eintrag und funktionieren dann eventuell nicht mehr!

Wenn man von dieser Beschränkung nichts weiß, kann es einen schon in den Wahnsinn treiben, denn wer vermutet denn bitte, dass es an dem Namen liegt?

VN:F [1.9.3_1094]
Rating: 7.4/10 (5 votes cast)
29Okt/090

Probleme beim Klonen einer WebSpere Portal 6.1 Installation

Das Klonen eines WebSphere Portal Servers ist eine komplexe Angelegenheit die sich gut und gerne etwas länger hinzieht. Umso besser, dass IBM eine Anleitung dazu stellt.

Doch auch wenn man der Anleitung genau folgt kann es zu unerwarteten Problemen kommen, die dort nicht erläutert werden.

Das ist mir passiert und da ich schon ne Weile gebraucht habe um auf die Lösung zu kommen, könnte es auch andere interessieren.

Das Problem ist/war, dass bei Schritt 2. in der Anleitung von IBM:

To delete the scheduled tasks, run the following ConfigEngine task:
<profile_home>/ConfigEngine/ConfigEngine.sh action-clean-scheduled-tasks

Eine Menge von Fehlern ausgespuckt werden:

puttyscreen1Bild 1: Der Stacktrace der Exception

Dabei werden folgende Fehler ausgespuckt:

ERROR XSDB6: Another instance of Derby may have already booted the database

Could not shutdown the database!
[sqlproc] SQL Exception: Database 'xxxdb' not found.

ERROR: Error during the execution of the sql files.

Dabei sind die Fehler etwas verwirrend wie ich fand, denn der erste besagt, dass die Datenbank die seit Version 6.1 nun "derby" heißt und nicht mehr "cloudscape" und der zweite sagt, dass diese nicht gefunden wurde!

Nungut, nach einer langen Suche in den Logs und einer engen Zusammenarbeit mit Google war die Lösung dann doch ganz einfach!

Dabei bringt der erste Fehler es auf den Punkt! Es läuft bereits eine Instanz der Datenbank. Was aber nicht der Fall ist. Aber das Skript glaubt das, da der user dafür noch in einer Session "eingeloggt ist".

Wenn man diese Session-Dateien (*.lck) löscht, wird der Weg für einen erneuten Login durch das Skript frei.

Diese Dateien liegen im Verzeichnis <wp_profile>/PortalServer/derby/wpsdb.

puttyscreen2Bild 2: Die zwei LCK-Dateien, die die Session blockieren

Wenn man nun diese zwei Dateien löscht läuft das Skript ganz normal durch. Der weitere Cloning-prozess verlief dann relativ unspektakulär.

Lösungsquelle war ein IBM-Hilfe Dokument, dass zwar für was anderes Gedacht war aber das Problem sehr ähnlich war!

VN:F [1.9.3_1094]
Rating: 5.0/10 (2 votes cast)
21Okt/090

Visual Studio 2010 Beta 2 – Erster Eindruck

Seit heute ist die zweite Beta vom Visual Studio 2010 für die breite Masse verfügbar. Seit Beta 2 läuft das gute Stück Software auch unter Windows 7.

vs20102Bild 1: Der Ladebildschirm vom Visual Studio 2010

dotnet4Microsoft hat VS10 ja ziemlich stark überarbeitet, zB basiert die Oberfläche nun auf WPF. Und zusammen mit dem neuen Visual Studio wird auch das .NET Framework 4.0 eingeführt, welches zur Zeit auch in der zweiten Beta vorliegt.

Nach dem man VS gestartet hat wird man wie auch in den letzten Versionen von einem Begrüßungsbildschirm empfangen.

Aber es wird sofort auffallen, dass die gesamte Oberfläche viel aufgeräumter ist, man wird nicht mehr mit seitenweise Text beworfen und die ganzen anderen kleinen Bereiche sind auch verschwunden!

Das Design an Sich ist im schlichten Blau gehalten, das sich durch alle Bereiche zieht. Auch nach dem man ein neues Projekt angelegt hat bleibt die Übersichtlichkeit erhalten und man wird nicht von 10 Funktionsleisten abgelenkt.

hellow3

Bild 2: Die erste Anwendung mit Framework 4.0 :-)

Ich hatte bisher nur wenig Zeit um großartig viel auszuprobieren. Ich habe lediglich ein paar Zeilen geschrieben um zu schauen wie der neue Codeeditor sich schlägt.

Und man muss leider sagen, dass man merkt, dass es noch im Beta Stadium ist, denn Intellisense ist nicht so schnell wie in VS9 und ist öfter mal verwirrt. Auch kommt es vor, dass es irgendwo aufpoppt wo es garnicht hingehört!

vs20103

Bild 3: Der Codeeditor

Der Editor an sich hat ein paar neue Features bekommen, zumindest sichtbare, denn nun werden fünf statt vier Farben benutzt um den Code zu formatieren und werden auch gleiche Begriffe hervorgehoben.

Ich freu mich trozdem schon auf weitere tests mit der IDE. Was habt ihr für Erfahrungen sammeln können?

VN:F [1.9.3_1094]
Rating: 4.8/10 (5 votes cast)
11Okt/090

Windows 7 überzeugt mit tollem Treibermanagement

Seit nun ca 2 Monaten nutze ich Windows 7 Professional und bin sehr begeistert von diesem "Besten Windows aller Zeiten" wie Microsoft es sagt.

Warum? Nicht nur dass es sehr schnell läuft, die neuen Netzwerk Funktionen, dank welcher LAN Party noch mehr Spaß machen werden aber auch die neue Taskleiste (die "Superbar") sehr gut umgesetzt ist.

Was einem aber nicht gleich ins Auge springt, sind die Neuerungen "unter der Haube". So ist mir heute, als ich meinen Drucker an dem PC anschloss folgendes aufgefallen:

treiberBild 1: Automatisch Treiberinstallation

Wie immer wenn man ein neues Gerät an dem Computer schließt erscheint der Treiber Assistent und versucht passende Treiber zu finden. Dies gelang ihm aber in früheren Windows Versionen aber (so gut wie) nie!

So musste ich immer meine Treiber CD von Canon rauskramen und die Treiber installieren, die ca 100 MB Groß waren, warum auch immer!

So war ich umsomehr überrascht als Windows alles eigenständig erkannte und installierte. Und das mit nur 10 MB statt 100! Das ganze habe ich gleich auch noch mit einem Nokia 95 getestet, dass eigentlich die Nokia PC Suite benötigt.

Auch diese wurde heruntergeladen und installiert! Also hier mal ein riesen Komplement an Microsoft.

Windows 7 ist in meinen Augen ein sehr gelungenes OS geworden! Ich selber nutze es auf meinem Macbook Unibody neben Snow Leopard. Wobei ich Mac OS schon seit knapp einem Monat nicht mehr gebootet habe, was schon was heißt finde ich!

VN:F [1.9.3_1094]
Rating: 8.0/10 (1 vote cast)
6Okt/090

VB.NET: PuTTY Sessions aus der Registry exportieren

Wer mit PuTTY (ein SSH Client für Windows, zu finden hier) schon mal gearbeitet hat, weis, dass es ein sehr mächtiges Werkzeug ist. Doch leider hat PuTTY einen entscheidenden Nachteil, denn es speichert alle Einstellungen in der Windows Registry.

Warum ist das schlecht? Nun, wenn man zB. mehrere Arbeitsplätze hat oder PuTTY gern mal auf einem USB Stick mitnehmen will hat das Problem, dass er alle Einstellungen an jedem Rechner für jeden Benutzer aufs neue festlegen muss.

Das ist natürlich nicht allzu schön und wird problematisch, sobald man mehr als einen Server hat auf den man verbinden will!

An dieser Stelle hat der Blogger "socialistsushi" angesetzt und PuTTY so umgeschrieben, dass es seine Sessions lokal im PuTTY Ordner speichert. Das ist eine super Sache, da man nun alle seine Session immer dabei hat!

Aber ein Problem gibts da noch, denn wenn man grade umsteigt muss man alle seine Sessions neu anlegen, da Porta PuTTY (Wie das Tool heißt) die Sessions nur aus dem eigenen Ordner lesen kann!

Da ich das selber grade benötigte habe ich ein kleines Tool gebastelt, das für euch eure Sessions, die ihr bereits in der Registry angelegt habt exportiert, sodass ihr diese mit Porta PuTTY nutzen könnt.

export
Bild 1: Das kleine Tool Exportiert die Sessions aus der Registry

Eure Registry Sessions sind also nur einen Mausklick entfernt!

Das Demoprojekt inkl. dem build gibts hier: Download

VN:F [1.9.3_1094]
Rating: 9.0/10 (1 vote cast)
30Aug/090

.NET Entwicklung unter UNIX-basierenden Systemen

Seit längerem befindet sich das Projekt "Mono" in der Entwicklung und ist nun in der Version 2.4 verfügbar. Dank Mono wird .NET Plattformunabhängig und liefert das, was Microsoft schon längst hätte bringen sollen!

Mit MonoDevelop wird gleich auch eine sehr gute IDE zum Entwickeln mitgebracht! Diese läuft auf allen gängigen Systemen einschließlich Mac OS X. Da das ganze auch noch open Source ist, ist es auch kostenlos zu haben!

Durch dieses Projekt wird Linux natürlich sehr interessant für .NET Entwickler und wird in Zukunft definitiv dazu führen dass es viele Anwendungen für alle geben wird, so wie es jetzt mit Java ist!

Ist die IDE Erstmal eingerichtet erinnert diese erstmal stark an Netbeans oder Eclipse:

bildschirmfoto-2009-08-30-um-194735Bild 1: MonoDevelop in einem C# Projekt

Diese wird ebenfalls stetig weiter entwickelt und erinnert jetzt schon sehr an der Visual Studio aus dem Hause Microsoft!

Einen compiler bekommt man natürlich auch gleich mit geliefert! Den man zb auch über die Konsole aufrufen kann:

bildschirmfoto-2009-08-30-um-194838Bild 2: Das aus Bild 1 kompilierte & ausgeführte Projekt

Leider steht noch nicht das komplette .NET Framework, welches demnächst in der Version 4.0 erscheint verfügbar, sondern wird langsam stetig erweitert!

Wenn euer Interesse geweckt wurde und ihr das mal testen wollt, kann ich ein Video im MSDN empfehlen, welches die ersten Schritte sehr gut beschreibt und eine komplette kleine Anleitung liefert!

Ich werde demnächst das ganze mal auf dem Mac testen und gucken ob das ganze schon mit Java konkurrieren kann!

VN:F [1.9.3_1094]
Rating: 10.0/10 (2 votes cast)
11Aug/091

Codeklau & wie man eigenen Code schützen kann Teil 1

In dieser Reihe möchte ich darüber schreiben welche Probleme die Arbeit mit modernen Programmiersprachen mit sich bringt und wie man diese möglichst eindämmen und gering halten kann.

In dem ersten Teil werde ich darauf eingehen, wie und warum es möglich ist Code aus fertigen Applikationen zu extrahieren.

Das größte Problem, das jeder Closed-Source Programmierer hat, ist es den erstellten Code nicht für andere einsichtbar zu halten damit dieser nicht geklaut oder ohne Einwilligung oder Lizenzzahlungen weiterverwendet werden kann!

Aber wie ist es überhaupt möglich Code zu klauen wenn mann nur die fertige Applikation hat?

Zuerst sollte man sagen, dass es keinen 100%igen Schutz gibt! Alles kann geknackt oder modifiziert werden. Alle Firmen, die das gegenteil versprechen sind einfach nur unprofessionell. Denn alle Schutzmechanismen die es gibt sorgen lediglich dafür, dass man mehr Aufwand aufbringen muss, um diese wieder zu umgehen.

Früher war Codeklau noch sehr harte Arbeit, denn früher waren alle Anwendungen kompiliert, wurden also beim Erstellen direkt in Maschinencode gewandelt! Diesen Maschinencode wieder in lesbaren Quelltext zu wandeln ist sogut wie unmöglich, was man aber machen kann ist es diesen zu "Deassimblieren" (engl. Disassamble). Bei diesem Vorgang wird der vorliegende Native Code (Maschinencode) in ein für den Menschen lesbaren Assembler Code umgewandelt.

Was man hier noch wissen sollte, ist dass früher (vor langer langer Zeit) alles in Assembler programmiert wurde. Assembler ist eine Sprache, die es dem Programmierer Erleichtert Code zu schreiben, dabei werden Befehle benutzt die der Prozessor, auf dem später der Code ausgeführt werden soll versteht. Somit muss man sich nicht mit Nullen und Einsen herumschlagen sondern hat was, was man auch einigermaßen lesen kann.

5623_2Grafik 1: So könnte ein Programm nach dem Disassamble-Vorgang aussehen

Hier findet ihr ein kleines Beispiel wie sich Assembler von einer Hochsprache wie zb. C++ unterscheidet!

Mit diesem erzeugten Assembler Code kann man nun weiter "arbeiten" und versuchen den Ablauf des Programms zu verstehen und diesen dann auch eventuell zu kopieren, zu klauen! Das ist natürlich je nach Größe extrem aufwendig und langwierig.

Übrigens: genauso gehen die so genannten "Cracker" vor wenn sie versuchen bestimmte Sicherheitmechanismen von Programmen oder Spielen zu deaktivieren. Sie suchen nach diesen Ereignissen in dem Assembler Code und versuchen diese umzuleiten oder zu löschen, sodass die "Gecrackte" Software dann anschließend zb. ohne gültige Lizenz oder ein Spiel ohne die Original CD im Laufwerk benutzt werden kann! Wer darüber mehr wissen will sollte einen Blick in die "Hacker-Bibel von Cyberdemon98" werfen.

Natürlich kann man mit diesem Vorgehen nicht wirklich Code "klauen" sondern mehr versuchen zu verstehen wie ein Programm arbeitet um dann zb. andere Programme darauf abzustimmen ("Schnittstellen" schafften). Diesen Vorgang nennt man dann reverse Engeneering (deut. Umgekehrtes entwickeln).

Ein berühmtes Beispiel dafür ist der Instant Messaging Dienst ICQ, dieses Unternehmen hat keinerlei Spezifikationen über den Dienst oder das Protokoll veröffentlicht. Alle ICQ-Clients wie QIP, Miranda oder andere basieren komplett auf Reverse Engeneering! Deswegen kommt es auch oft, dass man sich gegenseitig keine Dateien schicken kann oder die Status-Nachricht eines Freundes lesen kann weil er einen anderen Client verwendet. Dies liegt einfach daran dass die Entwickler "raten" müssen wie diese Funktionen funktionieren und Kompabilitäten nur schwer geschaffen werden können! Dadurch geht ICQ sicher, dass nur ihr eigener Client perfekt funktioniert und alle Features beherrscht!

c-flow

Grafik 2: Diese Schritte durchläuft C++ Code während der Compilierung

Diese Codevariante, die so genannten unmanaged-code hervorbringt, der aus Maschinencode besteht erstellen die "alten" Programmiersprachen wie Delphi, C, VB6 und C++. Die Obere Grafik zeigt, dass nach der Kompilierung des Quelltextes, dieser noch weitere Schritte durchläuft und schließlich als Binäre Datei vorliegt, die nur auf einem bestimmten CPU-Typ und Betriebssystem läuft!

Die neueren Programmiersprachen wie etwa Microsofts .NET (Worunter auch C#, VB.NET fällt) oder Java verfolgen einen komplett anderen Ansatz der managed code erzeugt und förmlich zum Codeklauen einlädt!

20011114_1xGrafik 3: Compilierung von Managedcode Programmen (.NET & Java)

Die Sprachen, die managed Code erzeugen, erzeugen nämlich keinen Maschinencode sondern so genannte Assemblys welche eine Art Vorkompilierte Programme sind die nicht lauffähig sind.

Grafik 3 beschreibt im Oberen Teil, den Kompilierungs Prozess, der ziemlich einfach gestrickt ist. Der Code wird garnicht "Richtig" kompiliert sondern nur für die spätere Ausführung vorbereitet.

Warum ist das so? Nun heutzutage müssen Programme laufen, und nicht nur auf dem PC auf dem Sie geschrieben wurden sondern auch auf anderen und sogar auf anderen Betriebssystemen. Das ganze nennt sich dann Plattformunabhängigkeit!

Java Programm zb. können auf allen gängigen Betriebssystemen ausgeführt werden. Egal ob Windows, Solaris, Mac OS oder Linux Java Programme funktionieren! Und damit das möglich ist dürfen die Programme nicht kompiliert werden!

Denn wenn ein Programm kompiliert wird wird es in Maschinencode umgewandelt. Und da jede Prozessorarchitektur einen eigenen Maschinencode hat und jedes Betriebssystem auch anders aufgebaut ist kann ein kompiliertes Programm immer nur auf dem System ausgeführt werden für das es kompiliert wurde!

Um dieses Problem zu umgehen werden Java Programme nur Vorkompiliert (zu so genannten Assemblys) und dann wenn die gestartet werden (egal auf welchem Betriebssystem) werden sie erst "richtig" kompiliert, für das System auf dem sie gerade gestartet werden!

Warum ist das gut? Naja, so kann man ein Programm schreiben, und es ohne daran viel zu machen auf allen Systemen benutzen. Leider hat das System auch viele Schattenseiten, denn um ein solches vorkompiliertes Programm ausführen zu können muss eine Virtuelle Maschine installiert sein, die unser vorkompiliertes Programm "zu ende kompiliert" im Falle von Java ist es die JVM (Java Virtual Machine) diese kompiliert das Programm passend zum Betriebssystem und sorgt für dessen korrekte Ausführung.

Desweiteren sind diese Programme natürlich auch langsamer als die Nativen, denn zb. die Java Programme müssen vor deren Start erst kompiliert werden und laufen in einer Virtuellen Maschine, was natürlich auch Geschwindigkeitseinbußen. (vergleichbar mit einem Virtuell ausgeführten Betriebssystem durch VMWare und co)

Aber nun schweife ich schon wieder ab! Was wichtig ist, ist dass die Managedcode Programme nicht in Maschinencode kompiliert werden. Der Zustand in dem sie dann verweilen macht es uns sehr leicht das Programm wieder zurück in Quelltext zu verwandeln und diesen dann zu Klauen!

Dieser Vorgang, bei dem eine Kompilierte Datei wieder in lesbaren Quelltext verwandelt wird nennt man Dekompilierung. Anders als beim Disassambling wird hierbei der Original Quelltext den der Programmierer geschrieben hat fast perfekt wiederhergestellt!

Davon sind alle managedcode Sprachen betroffen, da sie alle nach dem Prinzip aus Bild 3 arbeiten! (zb. Java, C#, VB.NET)

Für jede Sprache gibt es auch den passenden Decompiler, der den Original Quellentext in Sekunden herausspuckt! Viele dieser Decompiler sind hochkomplexe Programme und deswegen auch nicht kostenlos! Besonders wenns an das dekompilieren von Nativen Programmen geht wird man keine kostenlosen Programme finden die brauchbare Ergebnisse liefern!

Um Java Programme (.jar-Dateien) zu dekompilieren empfehle ich den JD Java Compiler, dieser ist kostenlos und arbeitet sehr zuverlässig!

screenshot1Bild 4: Der Java Decompiler in Action

Natürlich muss man auf so etwas wie Kommentare und Ordnungen verzichten, da diese bei dem Kompilierungs Prozess automatisch aus dem Quelltext gelöscht werden, da der Prozessor damit nix anfangen kann!

Um .NET Programme oder DLLs zu dekompilieren, wobei hier disassimbliren besser passt kann ich das Tool .NET Reflector von Redgate empfehlen, es ist einfach zu benutzen und funktioniert perfekt!

Bild 5: Arbeiten mit dem .NET Reflector

Das Gute hierdran ist, dass man sogar in die .NET System Prozesse schauen kann um diese besser zu verstehen! Dieses Programm ist ebenfalls kostenlos nach einer Registrierung zu haben!

Wer das ganze mal ausprobieren will kann das gerne ja mal machen. Sucht euch einfach mal ein einfaches Java Programm, dabei ist es egal ob es ein Desktop Java Programm ist ober ein Mobile Programm aus dem J2ME. zb. den Opera Mini und schaut euch mal dessen Innereien an.

Wenn ihr mal ein .NET Programm dekompilieren wollt kann ich für den Einstieg eins der Programme empfehlen, die ich hier im Blog veröffentlicht habe. (Schaut zb. in dem Letzten Beitrag. Ladet die Beispiel Datei herunter und entpackt den Ordner und geht in den Ordner TreeViewDemo\bin\debug\ dort müsstet ihr eine .exe Datei finden an der ihr euch austoben könnt!)

Als Ergänzung will ich noch sagen, dass ein Programm immer in managedcode UND in unmanagedcode kompiliert werden kann und somit manchmal nicht (so einfach) dekompiliert werden kann!

Wie man seinen Code schützen kann werde ich dann in dem zweiten Teil behandeln, da der hier ja schon ein bissl zuu lang geworden ist!

Interessiert dich dieses Thema? Möchtest du hier mehr Beiträge darüber lesen? Schreib ein Kommentar was dir gefallen hat oder was nicht.

VN:F [1.9.3_1094]
Rating: 9.0/10 (13 votes cast)
14Jul/090

Microsofts Visionen werden Langsam Wirklichkeit

Microsoft ist ja berühmt dafür, in unregelmäßigen Abständen Videos mit ihren eigenen Zukunftsvisionen zu veröffentlichen. Meißt sind auch Angaben dabei wie lange es dauern wird, bis wir oder "die" (Microsoft) diese Visionen verwirklicht haben.

Erst vor ein paar Monaten hat Microsoft ein Video Veröffentlicht, dass zeigen soll wie unser Leben in der Zukunft aussehen soll. Aber darum gehts jetzt nicht, denn ich will jetzt lieber einen kleinen Rückblick in das Jahr 2005 starten, wo Microsoft ein Video Veröffentlicht hat, das beschreibt wie Zusammenarbeit in der Zukunft (damals in 2010) aussehen wird:

Warum ich jetzt darauf zu sprechen komme? Ganz einfach, denn vor wenigen Tagen hat Microsoft Videos veröffentlicht, die die Verbesserungen von Office in der Version 2010 zeigen. - So ein Zufall oder?

Und erstaunlicherweise sind viele der Punkte die man in dem Video sieht tatsächlich Bestandteil von Office 2010.

So können zb. mehrere Personen gleichzeitig an einem Dokument arbeiten, egal ob Office auf dem Rechner installiert oder nicht, es genügt ein Browser!

Präsentationen können von jedem Ort auf der Welt gehalten werden und auch hier genügt ein Browser zum Vorführen oder zum anschauen der Präsentation!

Dateien sind für alle live zugänglich und Änderungen sehr einfach einsehbar (siehe OneNote 2010).

Lediglich die Sache mit den Webcams ist zur Zeit noch nicht so ohne weiteres möglich! Aber das wird sicher auch noch!

Ich persönlich freue mich schon auf der neue Office und hoffe Microsoft wird auch eine vernünftige Mac-Version bereitstellen!

VN:F [1.9.3_1094]
Rating: 0.0/10 (0 votes cast)
7Jul/090

Die ersten nicht abwärts kompatiblen iPhone 3GS Apps sind da

Nun ist es also soweit, es tauchen die ersten Apps auf, die nur mit dem neuen iPhone 3G S kompatibel sind!

Es war eigentlich klar, dass es bald inkompatible Programme geben wird, denn zu groß sind die Hardware Unterschiede der beiden Geräte!

Der größte Unterschied, wird wohl der Kompass sein, der überhaupt nicht in dem alten iPhone auftaucht. Nun ist eine App im Appstore aufgetaucht, die genau dieses Feature des neuen iPhones auf eine lustige Art nutzt!

"Metal Detector" heißt das App und ist im App Store für 0,79 Eur zu haben.

bild-111

Und glaubt man den Userbewertungen, scheint das ganze auch zu funktionieren! Wie das geht? - Ganz einfach, wenn man metallische oder Elektrische Gegenstände zu nah an der iPhone hält wird der Kompass gestört!

Und das kann man über die API des iPhone SDK abfragen. Also Hut ab für die Idee, ich habe dieses App noch nicht getestet. Vielleicht aber bald!

VN:F [1.9.3_1094]
Rating: 0.0/10 (0 votes cast)
   
Get Adobe Flash playerPlugin by wpburn.com wordpress themes