ios-list-apps

by
4 views 2d2dc05d...

Description

List installed iOS apps

How to Use

Download the script and run it with Frida CLI:

Download Script

Then run with Frida:

frida -U -f YOUR_PACKAGE_NAME -l ios-list-apps.js

Replace YOUR_PACKAGE_NAME with the target app's package name.

Source Code

JavaScript
/*
 * Usage: frida -U -n itunesstored --codeshare oleavr/ios-list-apps
 *
 * Then:
 *   list()
 */

'use strict';

var NSAutoreleasePool = ObjC.classes.NSAutoreleasePool;
var NSNumber = ObjC.classes.NSNumber;
var SoftwareLibraryLookupOperation = ObjC.classes.SoftwareLibraryLookupOperation;

function list () {
  var pool = NSAutoreleasePool.alloc().init();
  try {
    var op = SoftwareLibraryLookupOperation.alloc().initWithBundleIdentifiers_(NULL);
    op.autorelease();
    op.run();
    return nsArrayMap(op.softwareLibraryItems(), parseSoftwareLibraryItem);
  } finally {
    pool.release();
  }
}

function parseSoftwareLibraryItem (item) {
  var result = {};
  nsDictionaryForEach(item.$ivars._propertyValues, function (key, value) {
    var parsedValue;
    if (value.isKindOfClass_(NSNumber)) {
      parsedValue = value.doubleValue();
    } else {
      parsedValue = value.toString();
    }
    result[key] = parsedValue;
  });
  return result;
}

function nsArrayMap (array, callback) {
  var result = [];
  var count = array.count().valueOf();
  for (var index = 0; index !== count; index++)
    result.push(callback(array.objectAtIndex_(index)));
  return result;
}

function nsDictionaryForEach (dict, callback) {
  var keys = dict.allKeys();
  var count = keys.count().valueOf();
  for (var i = 0; i !== count; i++) {
    var key = keys.objectAtIndex_(i);
    var value = dict.objectForKey_(key);
    callback(key.toString(), value);
  }
}
Share this script:
Twitter LinkedIn

Comments

Login or Sign up to leave a comment.
Loading comments...