Wie erkenne ich Pinchmedia Bestandteile in iPhone/iPod Anwendungen [Update 03.07.2010]

PinchmediaCode

Gestern hatte ich ja einiges über Pinchmedia Code in iPhone Anwendungen geschrieben. Dabei blieb allerdings die Frage offen, wie man Anwendungen erkennt, die Nutzerdaten an Pinchmedia senden. Da in vielen Fällen kein Softwarelizenzvertrag im Appstore zu finden ist und falls einer existiert, auch nur selten erwähnt wird, dass persönliche Daten an ein externes Unternehmen gesendet werden, besteht keine wirklich sichere Methode solche Anwendungen zu erkennen.

Auch wenn die Kommentare anderer Nutzer im Appstore kein sicherer Weg sind um Pinchmedia-Code in Anwendungen zu entdecken, so sollte man dennoch sich einmal die Kommentare vor dem Kauf genauer anschauen. Dabei sind nicht nur die aktuellen Kommentare von Interesse, sondern auch ältere. Ein Teil der Anwendungen kann man hiermit schon finden.

Da dieser Weg nicht wirklich sicher ist, so bleibt nur die Möglichkeit nach dem Kauf einer Anwendung nach verdächtigen Codestellen zu schauen, wofür mehrere Möglichkeiten zur Verfügung stehen.

Weg 1: Anwendungen automatisch prüfen unter Windows (Anfänger):

Mit der kostenlosen Anwendung IPA- Scanner von “dechavue” gibt es ein einfachen Weg um nach Pinchmedia-Code in Anwendungen zu suchen. Die Software kann im izene.com-Forum im Thread Pinchmedia späht Benutzerdaten aus/ incl HowTos zur Vermeidung heruntergeladen werden.

Die Bedienung der englischsprachigen Software ist relativ schnell erklärt. Als erstes Klickt man auf “Add Folder” und wählt den Mobile Applications von iTunes aus. In der Regel befindet sich dieser in %homepath%\Music\iTunes\Mobile Applications. Um den Ordner herauszufinden, langt aber auch in iTunes ein Klick mit der rechten Maustaste auf ein Programm und den Menüpunkt “In Windows Explorer zeigen” auszuwählen. Ob man den richtigen Ordner im IPA Scanner gewählt hat kann man daran erkennen, dass sich eine Liste aufbaut mit den verschiedenen Apps welche in dem gewählten gespeichert wurden und dem Status “Pending”.

Um die Anwendungen zu prüfen, ist nun ein Klick auf den “Scan” notwendig, wobei der Scanvorgang je nach Umfang durchaus etwas andauern kann. Ist der Scanvorgang abgeschlossen, sollten sich die Apps-Einträge farblich verändert haben.

Anhand der Farbe kann man nun erkennen, ob es sich um eine Anwendung mit Pinchmedia-Code handelt. Ist der Eintrag grün und steht in der Status-Spalte “Clean”, so ist die Anwendung mit relativer Sicherheit ungefährlich. Wird Pinchmedia-Code gefunden, so wird die Anwendungs-Zeile rot eingefärbt und als Status steht “Infected”. Hier sollte man auf jeden Fall Vorsicht walten lassen.

Weg 2: Anwendungen manuell prüfen unter Windows (Experten):

Als erstes sollte man einmal herausfinden, in welchem Ordner iTunes die mobilen Anwendungen gespeichert hat. Unter Windows Vista und 7 ist dies, sofern man die Standard-Einstellungen lässt, meistens %homepath%\Music\iTunes\Mobile Applications. Es besteht allerdings auch die Möglichkeit einfach im iTunes ein Programm mit der rechten Maustaste anzuklicken und auf “In Windows Explorer zeigen” auswählen.

In dem gesuchten Ordner sollten sich nun einige Dateien mit der Dateiendung .ipa befinden, welche für die einzelnen Anwendungen stehen. Als nächstes sollte man sich auf jeden Fall erst einmal eine Kopie des Ordners erstellen mit dem man die nachfolgenden Schritte ausführen kann.

Nachdem alle Vorbereitungen abgeschlossen sind, kann man nun mit der Suche beginnen, wobei die manuelle Suche etwas aufwendig sich darstellt. Als erstes benennt man die Dateiendung der zu prüfenden Anwendung von .ipa in .zip um, damit wir den Inhalt der Pakete ansehen können. Der zweite Schritt ist das entpacken der Datei mit seinem Lieblings-Entpacker wie 7zip. Natürlich kann hier auch die von Windows mitgelieferte Zip-Unterstützung verwendet werden. Wurde das Paketfile entpackt, so sollte man folgende Ordnerstruktur vorfinden: Payload/Anwendungsname.app/. In genau diesem Ordner findet sich meistens eine Datei, die etwas größer als die anderen ist, keine Dateiendung besitzt und deren Namen meistens Identisch ist mit dem vorherigen Ordnername (dem Teil vor “.app”).

Diese Datei öffnen wir nun in einem Editor wie NotePad++. Aber auch hier würde im Zweifel auch das Notepad von Windows ausreichen. Ist die Datei erfolgreich geöffnet worden, sollte man eine Menge kryptischer Zeichen sehen. Dabei handelt es sich um keinen Fehler, sondern ist auch so tatsächlich erwünscht. Nun nutzen wir die im Texteditor eingebaute Suchfunktion um nach libPinchAnalytics zu suchen. Findet der Texteditor dabei einen Treffer und findet eine ähnlichen Text wie: “/Users/xxxxxxx/Development/xxxxxxxxx/Classes/libPinchAnalytics.a”, dann kann man mit Sicherheit davon ausgehen, dass hier die Statistik-Funktionen von Pinchmedia verwendet werden. Wichtig: der Teil vor libPinchAnalytics.a kann je nach Anwendung unterschiedlich sein.

[Update 1]
Anscheinend gibt es auch eine zweite Datei, die auf PinchMedia schließen lässt, nachdem anscheinend die Software des Unternehmens eine „kleine” Änderung erfahren hat. Zusätzlich zu der oben genannten Datei sollte man nun auch zusätzlich nach libPMAnalytics ausschau halten, da auch diese Datei ein Hinweis auf Pinchmedia-Code ist. Der Treffer sieht hier ähnlich wie bei der ersten Datei aus: „…/pinchmedia/libs/libPMAnalytics.a”, wobei auch hier der Pfad je nach Anwendung unterschiedlich sein kann.
[/Update 1]

[Update 3]
Mittlerweile ergaben sich noch weitere Änderungen am PinchMedia Framework, sodass eine zusätzliche Suche nach PinchAnalytics notwendig wird. Die beiden Suchbegriffe die man zur Zeit verwenden sollten lauten daher: PinchAnalytics und libPMAnalytics.
[/Update 3]

Weg 3: Manuelle Suche auf einem Mac (Experten):

Im Endeffekt sind die Schritte bei einem Mac ähnlich wie die unter Windows. Ausschließlich die Pfadangaben sind hier unterschiedlich. Eine separate Anleitung ist daher eigentlich nicht notwendig. Eine Software welche automatisch nach Pinchmedia-Code sucht ist mir leider nicht bekannt.

[Update 2]
Eine leider unbekannte Person hat mir heute noch ein kleines Shellscript für Mac-Systeme zukommen lassen, mit dessen Hilfe man seine Apps ebenfalls nach PinchMedia Code untersuchen kann. Im Endeffekt entpackt das Script alle iPhone Apps in ein Temporär-Ordner und prüft dann deren Inhalt nach PinchMedia Code. Im Fall eines Treffers zeigt es dann an in welcher Datei der Code gefunden wurde. Wichtig dabei ist, dass sich um den eigentlichen Dateinamen der Anwendung handelt und dies nicht unbedingt identisch sein muss zum Namen der Anwendung. Aber in den meisten Fällen sollte man die Anwendung anhand des Dateinamens erkennen.

Für die Nutzung des Scripts sollte einem die Konsole unter MacOS nicht unbekannt sein. In der Konsole muss man eigentlich nur das unten angefügte Script z.B. in seinem Home-Verzeichnis mit dem Datennamen pinchmediascanner.sh speichern und zuerst einmal ausführbar machen. Da für die Verwendung eh die Konsole benötigt wird, kann man dies gleich in der Konsole erledigen. Hierzu wechselt man mittels cd ~ in den Home-Ordner und  mit chmod +x pinchmediascanner.sh wird die Datei ausführbar gemacht.  Danach einfach das Script mit ./pinchmediascanner.sh starten und — je nach Anzahl der Apps — erst einmal eine Tasse Kaffee besorgen. Der Scan-Vorgang kann durchaus einige Zeit andauern. Noch eine kleine Information: Während die Apps entpackt werden, erfolgt vom Script keine Ausgabe. Also nicht wundern, wenn sich erst einmal für eine längere Zeit nichts regt.

Noch ein wichtiger Hinweis. Der Pfad „$HOME/Music/iTunes/Mobile Applications” scheint laut Rückmeldungen abhängig von der MacOS Installation zu sein. Bitte kontrolliert daher unbedingt vorher, ob der Pfad im Script für euer System angepasst werden muss.

[cc lang=„bash” escaped=„true”]#!/bin/bash
cd „$HOME/Music/iTunes/Mobile Applications”
mkdir ‑p „$HOME/Music/iTunes/Mobile Applications/tmp”
cd „$HOME/Music/iTunes/Mobile Applications/tmp”
for i in ../*.ipa  ; do unzip ‑o „$i” > /dev/null ; done
egrep ‑i „PinchAnalytics|libPMAnalytics”  Payload/*/* 2>/dev/null
rm ‑rf  „$HOME/Music/iTunes/Mobile Applications/tmp”[/cc]

[/Update 2]

Wie umgehen mit Anwendungen die Pinchmedia-Code enthalten?

Nun, die Frage lässt sich nicht leicht beantworten. Im Endeffekt muss jeder selber entscheiden, in wieweit es ihn stört, dass umfangreiche Daten (siehe vorherigen Blog-Eintrag) durch ein Unternehmen aufgezeichnet werden. Ich selber habe alle betroffenen Anwendungen wie Shazam usw. gelöscht und entsprechende Bewertungen im Appstore hinterlassen. Zeigen genügend Personen ihre Meinung über die Verwendung des Pinchmedia-Codes, so werden eventuell Softwareentwickler sich nochmals überlegen einen solchen Dienst zu verwenden.