Montag, August 28, 2006

Disable iConquer Trial Limit

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.

Labels:

10 Kommentare | neuen Kommentar verfassen

Kommentare

neuen Kommentar verfassen

Anonymous fime um 28.08.2006 11:27:00 Uhr

echt interessante möglichkeit aufzuzeichnen was ein programm alles startet. wäre auch eine, wenn auch komplizierte möglichkeit, programme sauber von os x zu löschen.

Anonymous flo um 28.08.2006 20:20:00 Uhr

Der Unterschied zu Windows ist zwar mehr oder weniger richtig (Registry statt normaler Datei, da stimm' ich zu), aber genauso einfach zu überwachen wie das Dateisystem unter OS X, Stichwort "RegMon" (Es gibt auch diverse andere Tools mit ähnlichen Funktionen, aber ich bin müde und will nicht suchen ;))

Blogger eMeidi um 28.08.2006 20:43:00 Uhr

@flo: Du meinst Sysinterals' RegMon, welches in keiner Schatztruhe eines seriösen Windows-PC-Supporters fehlen darf.

Dennoch finde ich es bedeutend angenehmer, mit System-Tools, die der Hersteller gleich selbst mitliefert (fs_usage), die Nadel im Heuhaufen zu suchen.

Starte RegMon einmal und zieh dir rein, wie dein Bildschirm zu funzeln beginnt - als wäre es schon Weihnachten.

File-System-Zugriffe sind meiner Meinung deutlich einfacher zu überwachen als Zugriffe auf die Windows-Registry.

Anonymous Yannick von Arx um 28.08.2006 21:11:00 Uhr

Hast du schon versucht die beiden Dateien [.ic241] auf 000 zu chmoden. Wäre interessant zu wissen wie die Applikation reagiert!

"Kann Datei nicht lesen/schreiben, egal jeder darf mich spielen"

"Kann Datei nicht lesen/schreiben, verdammt da ist was im gange, kauf mich zuerst bevor du spielst"

"Kann Datei nicht lesen/schreiben, willst du mich austricksen? Tja, hab jetzt .icXXX erstellt"

... that's the idea! ;-)

greez

Blogger eMeidi um 28.08.2006 22:29:00 Uhr

@yannick:

Volltreffer! Ein

chmod 000 ~/Library/Application Support/.ic241

did the trick - der Zähler bleibt stehen ;-) Halleluja!

Anonymous Anonym um 29.09.2007 23:00:00 Uhr

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

wie komme ich dahin?

Blogger eMeidi um 30.09.2007 21:11:00 Uhr

@anonym: Entweder per Kommandozeile (Terminal.app im Applications\Utilities-Ordner) oder aber via Finder, indem man nach einem Rechtsklick auf das iConquer-Applikationsicon "Show Package contents" auswählt.

Wichtig: Solche Änderungen sollten nur von Personen durchgeführt werden, die wissen, was sie tun (und eventuell angerichteten Schaden wieder selbst rückgängig machen können).

Anonymous Anonym um 26.10.2007 21:56:00 Uhr

in so einer tollen box steht das hier zum umgehen:
/iConquer.app/Contents/MacOS/iConquerPPC

4800fe91
->
4800008c

7c731b7941820c10
->
3A60000160000000

aber ich weiß nicht wie ich das verstehen soll.
kann mir hier einer helfen?

Blogger eMeidi um 26.10.2007 22:41:00 Uhr

aber ich weiß nicht wie ich das verstehen soll.
kann mir hier einer helfen?


Das nennt man dann wohl "das Binary patchen". Dazu benötigt man einen Hex-Editor mit Suchfunktion und ein vorsichtiges Händchen. Ausserdem sollte man darauf achten, dass die exakt selbe Version gepatch wird, auf die sich die Patches beziehen.

Auf eigenes Risiko!

Anonymous Anonym um 27.10.2007 01:33:00 Uhr

danke.
im schlimmsten fall würde das spiel nicht mehr funktionieren oder?
und könnte es eventuell auch mit einer anderen version klappen?

Zitierungen dieses Artikels