Sonntag, 27. August 2006

Disable iConquer Trial Limit

Nachtrag: Langer Rede kurzer Sinn – wer folgenden Befehl in Terminal.app ausführt, hebelt das Trial Limit aus (<user> muss entsprechend ersetzt werden):

chmod 000 "/Users/<user>/Library/Application Support/.ic241"
chmod 000 "/Library/Application Support/.ic241"

Dieses Wochenende gehörte voll und ganz iConquer. Nach einigen Runden (die ich allesamt gegen Melanie und den Computer verloren hatte) war klar: Da muss eine Lizenz her. Noch am Samstag-Mittag bestellte ich deshalb über die Web-Site des Entwicklers einen Lizenzschlüssel. Leider ist bis jetzt, kurz nach Sonntag-Mitternacht, immer noch kein Mail eingetrudelt, mit dessem Inhalt ich die Applikation freizuschalten wäre. Das ist nicht so erfreulich:

Da es sich um Trial-Ware handelt, ist das Produkt zwar benutzbar – aber nur für 10 „uses“ (Spiele? Programmtarts?). Das Limit hatten ich und Melanie leider bereits am späteren Samstag-Abend erreicht …

Da sich umgehend erste Entzugserscheinung breit machten, versprach ich Melanie, das Programm zu „hacken“ (auch hier wieder in Anführungszeichen, denn wie bei meinen anderen „Hacks“ trennen mich Welten von den Mitnicks & Co. da draussen).

Wer nun denkt, dass ich kurzerhand zu im Netz herumschwirrenden Serials griff, liegt komplett falsch. Mein Ziel war es, das Programm völlig legal freizuschalten, den Zähler also auf null Spiele zurückzusetzen.

Speicherort verzweifelt gesucht …

Ich vermutete (korrekterweise), dass der Entwickler des Programms die Anzahl gespielter Spiele irgendwo speichern musste (eigentlich logisch). Als erstes löschte ich deshalb den Applikations-Ordner, auch wenn ich keine grosse Hoffnung hegte, den Zähler so zurücksetzen zu können. Und tatsächlich: Nachdem ich das Programm frisch aus dem .dmg auf die Platte kopiert hatte, war der Zähler immer noch da. Nächste Vermutung deshalb: Irgendwo unter ~/Library/ wird sich eine Datei befinden, die die gesuchten Daten enthält. Fände ich diese Datei, könnte ich den Zähler zurücksetzen.

Disable FontAgent Pro Trial Limit

Ich erinnerte mich daran, dass ich auf identische Weise in grauer Vorzeit bereits eine Test-Version von FontAgent Pro mehr oder weniger in eine Kauf-Version umgewandelt hatte.

Irrweg lsof

Die wohl einfachste Methode, die gesuchte Datei zu finden, war die Applikation beim Start zu „debuggen“ (oder verwende ich hier den falschen Begriff? Wäre „tracen“ besser?“). Auf gut deutsch: Mittels eines anderen Tools aufzuzeichnen, auf welche Dateien iConquer.app nach dem Doppelklick auf das Applikations-Symbol zugriff. Die gesuchte Datei müsste relativ zu Beginn des Startvorgangs geladen werden, da der Nag-Screen sekundenbruchteile nach dem Start auftauchte.

Leider entschied ich mich für das falsche Tool – lsof – welches für diese Zwecke nicht wirklich geeignet war. Immerhin entdeckte ich eine sehr ausführliche Seite im Netz, die so einiges an Kommandozeilen-Parameter erläuterte:

lsof

Wichtig erschien mir hierbei die Option -r <sec>, mit der man lsof anwies, alle X Sekunden erneut die Liste der geöffneten Dateien auszugeben. Mittels grep versuchte ich, die Datenmengen zu filtern, doch irgendwie tauchten in der Liste keine vielversprechenden Dateinamen auf:

lsof -r 1 | grep iConquer

Ob mit -r 1 evtl. Informationen verloren gehen?

Wieso in die Ferne schweifen …

… das Gute liegt so nah!

Nach ca. 30 Minuten pröbeln verpasste lsof seine letzte Chance und ich begann mich, nach anderen Tools umzusehen. Zuerst stiess ich auf die GUI-Applikation fseventer, die noch weniger brauchbar war. Erst danach bemühte ich Google erneut und stiess … auf einen Blog-Eintrag von mir selbst:

fstat, lsof und fs_usage unter Mac OS X

fs_usage – der nächste Bitte!

fs_usage? Ja klar doch, wieso habe ich dieses Tool nicht bereits früher herangezogen?!

Ich aktivierte es also mittels …

sudo fs_usage | grep iConquer | grep open

… und wurde nicht enttäuscht:

01:14:18  open            /Library/Application Support/.ic241                                               0.000010   iConquer    
01:14:18  open            /Users/mario/Library/Application Support/.ic241                                   0.000007   iConquer

Sehr schön, wie der Entwickler die Datei getarnt hat: Der Punkt verhindert, dass die Textdatei, die nur eine Zahl enthält, im Finder angezeigt wird. Der kryptische Name soll den Urheber verschleiern. Aber gegenüber fs_usage kann auch hier nichts vertuscht werden *smile*

Mit vim setzte ich die Zahl von 10 auf 0 zurück (man könnte die Datei übrigens auch einfach löschen – ist etwas sauberer) – und genoss weitere zehn Runden iConquer.

Nachtrag

Wer fahrlässigerweise mit einem Benutzerkonto arbeitet, das über Administratorenrechte verfügt, muss zusätzlich folgende Datei anpassen:

iConquer.app/Contents/Resources/English.lproj/Statistics.strings

Als Administrator hat man nämlich die Berechtigung, in Applikations-Ordner zu schreiben, wovon der Entwickler von iConquer Gebrauch gemacht hat: In dieser Datei wird sozusagen doppelt Buch geführt über die Anzahl der Programmstarts.

Wenn doch der Lizenzschlüssel bald kommen würde …

Gerätegebunden?

Eine Frechheit finde ich es übrigens, dass das Game dank einer eindeutigen (?) Maschinen-Nummer an den PC gebunden wird. Ich möchte das Programm auf meinem MacBook wie auch auf meinem PowerMac installieren und benutzen.

Unterschied zu Windows?

Die Registry. Unter Windows würde ein solcher Zähler garantiert in dieser teuflischen Registry gesichert. Da lob‘ ich mir doch, dass unter Mac OS X – wie bei allen anderen Unixes – solche Dinge in hundsnormale Dateien gespeichert werden.

Liked this post? Follow this blog to get more. 

Tags:
Labels: Allgemein

Kommentar erfassen