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:
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: Windows
Abonnieren

Kommentare
neuen Kommentar verfassen
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.
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 ;))
@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.
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
@yannick:
Volltreffer! Ein
chmod 000 ~/Library/Application Support/.ic241
did the trick - der Zähler bleibt stehen ;-) Halleluja!
iConquer.app/Contents/Resources/English.lproj/Statistics.strings
wie komme ich dahin?
@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).
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?
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!
danke.
im schlimmsten fall würde das spiel nicht mehr funktionieren oder?
und könnte es eventuell auch mit einer anderen version klappen?