Regardé dedans et il ne marche pas le lien contre IOSurface. J'ai cependant trouvé qu'il utilise dlsym
, et après plus d'une ingénierie inverse, j'ai trouvé ceci:
/System/Library/Frameworks/IOKit.framework/IOKit
IOServiceGetMatchingServices
IOServiceGetMatchingService
IOServiceMatching
IOMasterPort
IOIteratorNext
IORegistryEntryCreateCFProperty
IOObjectRelease
/System/Library/Frameworks/UIKit.framework/UIKit
UIGetScreenImage
/System/Library/PrivateFrameworks/IOMobileFramebuffer.framework/IOMobileFramebuffer
IOMobileFramebufferOpen
IOMobileFramebufferGetLayerDefaultSurface
/System/Library/PrivateFrameworks/IOSurface.framework/IOSurface
IOSurfaceAcceleratorCreate
IOSurfaceAcceleratorTransferSurface
IOSurfaceLock
IOSurfaceUnlock
IOSurfaceGetWidth
IOSurfaceGetHeight
IOSurfaceCreate
IOSurfaceGetBaseAddress
Donc, comme vous pouvez le voir ici, après chaque cadre de chemin d'accès sont les chaînes de la signification des symboles qu'il charge de chaque cadre, de façon dynamique. C'est pour éviter d'avoir des ennuis pour se lier à un Cadre Privé. Depuis, il est chargé lors de l'exécution, un analyseur statique ne peut pas dire que cette application utilise afin d'échapper à la détection.
Il ne ressemble à mon soupçon initial était correct; c'est à l'aide de IOSurface pour se faufiler sandbox restrictions d'avoir cru d'accès à l'écran. Il utilise également UIGetScreenImage
, ce qui je suppose est pour la deuxième méthode de génération de vidéo. Il utilise également certaines IOKit fonctions et IOMobileFramebuffer fonctions. Il semble que l'app est saisissant un IOSurface de l' IOMobileFramebufferGetLayerDefaultSurface
fonction. Pas tout à fait sûr de ce qu'il utilise IOKit pour si.
En conclusion, cette application utilise certains sournois techniques pour éviter la détection par les analyseurs statiques: il n'a pas de lien contre le privé, les cadres, mais au lieu attrape les symboles de façon dynamique. Il utilise une combinaison de IOSurface et IOMobileFramebuffer l'enregistrement d'une vidéo, ou UIGetScreenImage
pour l'autre mode. C'est une délicate l'application qui SERA retiré de l'AppStore, donc si vous le voulez, vous obtenez mieux maintenant.
Mise à JOUR:
Il semble que cette application était en effet retiré de l'AppStore. Si vous avez été assez chanceux pour attraper une copie avant il a été tiré, c'est génial. Je sais que je suis heureux je l'ai eu.
Apple probablement justifié sa décision en indiquant que l'application utilisée Api privées et il peut être considéré comme un problème de sécurité potentiel (une application qui vous regarde comme vous tapez votre mot de passe iTunes est un exemple effrayant de la pensée). Je me demande si cela va conduire à un changement dans leur processus d'évaluation, mais nous le saurons sans doute jamais. Une chose qui est intéressant pour moi, c'est qu'il y a encore beaucoup de trucs de plus les développeurs pourraient s'en servir pour masquer leur application du comportement à partir de l'analyse statique. Pas de processus de vérification est parfait, mais ils peuvent le faire assez bien. Même si Apple automatiquement refuse des applications liées à l'encontre de l' dlsym
symbole, il existe des méthodes qui peuvent être utilisées pour contourner la détection.
Mise à JOUR 2:
Apparemment, il existe une autre version de cette application dans l'AppStore maintenant. Il est appelé "Disp Enregistreur" et a exactement la même icône que le premier. L'interface graphique est presque identique à l'original avec quelques modifications mineures. Je n'ai pas encore inversé la plus récente, mais je serais prêt à parier qu'ils ont utilisé les mêmes techniques pour masquer le comportement illégal. Je mettrai à jour cette réponse une fois que j'inverse la nouvelle version. La nouvelle un frais de 5$, mais si vous avez toujours voulu un enregistrement d'écran de l'app sur un unjailbroken appareil, vous devez l'attraper avant qu'il soit retiré.
Mise à JOUR 3:
C'est comme si j'ai été très correct avec comment fonctionne cette application. Il est un open-source de la mise en œuvre de ce sur GitHub par @coolstarorg appelé RecordMyScreen. Si vous me demande encore comment cette application fonctionne, je vous conseille d'aller le vérifier.