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.

20 responses to “Wie erkenne ich Pinchmedia Bestandteile in iPhone/iPod Anwendungen [Update 03.07.2010]”

  1. Remi sagt:

    Sehr interessanter und vorallem ausführlicher Beitrag. Vorallem bei der App „Shazam” bin ich sehr enttäuscht, dass Daten gesammelt werden.
    Danke für diesen Blog-Eintrag!

    Gruß nach Baden.

  2. […] ihr den IPA-Scanner anwendet, könnt ihr auf Jens Dutzi seinem Blog nachlesen. Die einfachste möchte ich euch hier aufführen. Weitere Vorgehensweisen […]

  3. Samuel sagt:

    Also bei mir gibt es in Shazam keine der beiden Dateien, nach denen ge-grep-ed wird in dem kleinen Script. Entweder Shazam ist nun pinchmedia-frei oder die entspr. Libs werden einfach statisch gelinkt und sind daher nicht mehr so einfach auszumachen.

    Kannst Du das bestaetigen?

    • Jens sagt:

      Es kommt drauf an. Die kostenlose Shazam-Version enthält definitiv Pinchmedia-Code in der aktuellen Version. Um sicher zu sein, habe ich manuell nochmal kurz unter Linux nachgeschaut:

      [root@linux tmp]# egrep –i „libPMAnalytics|libPMAnalytics” Payload/*/*
      Übereinstimmungen in Binärdatei Payload/Shazam.app/Shazam.

      Kann es sein, dass du eventuell es gegen die nach dem verfassen des Artikels veröffentlichte kostenpflichtige Version getestet hast? Es wäre möglich, dass diese auf Pinchmedia-Code verzichtet. Testen konnte ich es leider noch nicht, da ich die App nicht gekauft habe. 

      Vielleicht liegt auch nur ein Fehler am Script selber vor. Mir ist eben erst aufgefallen, dass ein WordPress-Plugin das Script leicht verändert hat. Die Anführungszeichen in der 6. Zeile müssen natürlich beide oben sein (wird von mir gleich korrigiert werden).

  4. vilmoskoerte sagt:

    Sehr nützlich, danke! Die Apps lagern allerdings bei mir nicht in „$HOME/Music/iTunes/Mobile Applications” sonder in „$HOME/Music/iTunes/iTunes Music/Mobile Applications”, so dass ich das Skript anpassen musste.

    • Jens Dutzi sagt:

      Interessant, bei mir war der Pfad dagegen $HOME/Music/iTunes/iTunes\ Media/Mobile\ Applications/. Anscheinend gibt es unterschiedliche Pfadangaben, wobei interessant zu wissen wäre, warum dies der Fall ist. Damit hätten wir zumindest 3 verschiedene Pfad-Angaben. 

      Vielleicht könnten einige anderen einmal nachschauen wie der Pfad bei euch ist. Solange werde ich einmal ein Hinweis noch einfügen.

  5. Ralf sagt:

    Ich konnte mit dem Script in der aktuellen kostenlosen Version von Shazam nichts finden 🙁 Ich habe die App also Entpackt und einem Editor selbst in Shazam nach libPMAnalytics gesucht und dort sofort mehrere Einträge entdeckt. Einer lautet wie folgt:
    /Users/sam/Desktop/MOBILE_APP_IPHONE_PIPPIN-RC-1_8_6-B6681/TagIt/iPhone/Shared/PinchMedia/libPMAnalytics-r91.a(PMFBXMLHandler.o)
    Mhhh.. ich bin kein Programmierer, ist irgendeine Zeile von einem Entwickler die noch übrig ist oder der Pfad zu einem „Shared”-Ordner auf meinem iPhone in dem sich Pinchmedia jetzt vor solchen Entdeckungsversuchen versteckt?

  6. vilmoskoerte sagt:

    Ich habe jetzt noch eine kürzere Variante, die keine temporären Dateien anlegt:

    #!/bin/bash
    appDir=”~/Music/iTunes/iTunes Music/Mobile Applications”
    for a in „$appDir”/*.ipa; do
    unzip –qqop „$a” „Payload/*.app/*” | egrep –qi „libPMAnalytics”
    test $? –eq 0 && echo ‘basename „$a” .app‘ contains PinchWare spyware lib
    done

    In der zweiten Zeile muss man ggf. den Pfad zu den *.ipa Dateien anpassen.

  7. vilmoskoerte sagt:

    Die Anführungszeichen hat WordPress verschlimmbessert …

  8. Tee Kay - Mahals Village sagt:

    Vielen Dank Jens!!!
    Dein Blog hat mir sehr geholfen, Deine Hilfestellung konnte ich problemlos und schnell auf meinem iPod touch 3G umsetzen, der Pfad war auf meinem Windows7-PC derselbe wie Dein erstgenannter.
    Viele Grüße!

  9. patrick sagt:

    shazam reagiert nicht mehr auf PMAnalytics aber ich habe nach pinch suchen lassen und bin über untenstehendes gestolpert. vielleicht muss die bezeichnung aktualisiert werden?

    [FBXMLHandler init]

  10. patrick sagt:

    shazam reagiert nicht mehr auf PMAnalytics aber ich habe nach pinch suchen lassen und bin über untenstehendes gestolpert. vielleicht muss die bezeichnung aktualisiert werden?

    _endPinchAnalytics

  11. patrick sagt:

    hmm… irgendwas schneidet meinen Kommentar ab, aber das wichtigste steht drin. nicht PMAnalytics sond PinchAnalytics…

    • Jens Dutzi sagt:

      Hallo Patrick,

      ja, ich sehe was du meinst mit Shazam. Danke für die Info. Augenscheinlich wurde das Framework etwas verändert von PinchMedia. Das ganze ist sehr interessant. Der verlinkt Pinchmedia Scanner für Windows konnte es noch finden. Die manuelle Anleitung sowie das Script nicht mehr. Ich werde den Blog-Eintrag gleich entsprechend anpassen.

      Danke nochmal für deinen Hinweis 🙂

  12. Flo sagt:

    Mein Ipa Scanner erkennt in Shazam keine Spyware, auch in Talking Tom nicht… woran liegt das? Bitte um Hilfe

  13. […] und vom Gerät zu entfernen. Hierzu gibt es verschiedene Ansätze, die ganz gut unter  [9] beschrieben sind. Am Einfachsten ist der Einsatz des IPA-Scanners, mit dem die iPhone-/iPad-Apps […]

  14. […] ihr den IPA-Scanner anwendet, könnt ihr auf Jens Dutzi seinem Blog nachlesen. Die einfachste möchte ich euch hier aufführen. Weitere Vorgehensweisen […]

  15. Mike sagt:

    Habe gerade meine gekaufte offmaps-App mal \aufgemacht\.
    von den obengenannten Suchbegriffen ist dort nichts zu finden. Allerdings findet sich mehrfach: libGoogleAnalytics.a
    Ob es mir lieber ist, dass die Daten an Google gehen ????
    Gibt es keine Security suite für Iphones, mit der man die Illusion der Kontrolle wiederbekommt?

    • Jens Dutzi sagt:

      Jup, der Entwickler von OffMaps hat mittlerweile tatsächlich auf pinchMedia-Code verzichtet und verwendet interessanterweise jetzt Google Analytics. Ich vermute einmal, dass es sich um das Analytics SDK von http://code.google.com/intl/de-DE/mobile/analytics/docs/ handelt. Auch hier ist schade, dass der QuellCode nicht offen ist, sodass erst einmal nicht ersichtlich ist was genau übertragen wird. Auch hier wären theoretisch die gleichen Zugriffe möglich wie bei PinchMedia. Ich denke aber, das ganze wird mit der steigenden Beliebtheit des Moduls auch schnell öffentlich werden. Sofern es nur ein md5hash ist von der UUID des Geräts, dann würde *ich* nichts negatives daran sehen. Es kann damit zwar ermittelt ob es sich um ein individuelles Gerät handelt aber eben nicht um welches Gerät, da die UUID aus dem Hash nicht so einfach zurückermittelt werden kann. Bei einem mir bekannten Werbe-Vermarkter von iOS Apps wird zum Beispiel nur ein Hash aus der UUID und nicht die UUID selber übertragen. Bei anderen Werbenetzen mag das wiederum anders aussehen.

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert.