Как я могу отслеживать вызовы API приложений на устройстве с взломом iOS?

Я выполняю обзор приложения iOS, для которого у меня нет исходного кода. Чтобы получить больше контроля над средой, я запускаю приложение на взломанном iPad.

Я бы хотел отслеживать вызовы API, которые делает приложение... в идеале я хотел бы найти что-то вроде Rohitab MS Windows на основе API-монитор, но вместо этого для iOS.

Я провел некоторое исследование и нашел проект KennyTM под названием " Subjective-C", который кажется, что он может делать то, что мне нужно. Я фактически использовал cycript script, а также libsubjc.dylib, доступный на сайте Google.

Однако мне не удалось выяснить, как правильно заставить его запускать вызовы журналов для приложения. Здесь ссылка на cycript script, написанная автором Субъективной-C (libsubjc). Я также вставил script ниже.

/*

libsubjc.cy ... Use libsubjc in cycript.
Copyright (C) 2009  KennyTM~ <[email protected]>

[...GPL3...]
*/

dlopen("libsubjc.dylib", 10);
if (!dlfun) {
    function dlfun(fn, encoding, altname) { var f = new Functor(dlsym(RTLD_DEFAULT, fn), encoding); if (f) this[altname || fn] = f; return f; }
}

dlfun("SubjC_start", "v");
dlfun("SubjC_end", "v");

dlfun("SubjC_set_file", "v^{sFILE=}");
dlfun("SubjC_set_maximum_depth", "vI");
dlfun("SubjC_set_print_arguments", "vB");
dlfun("SubjC_set_print_return_value", "vB");
dlfun("SubjC_set_print_timestamp", "vB");

SubjC_Deny = 0, SubjC_Allow = 1;

dlfun("SubjC_clear_filters", "v");
dlfun("SubjC_filter_method", "vi#:");
dlfun("SubjC_filter_class", "vi#");
dlfun("SubjC_filter_selector", "vi:");
dlfun("SubjC_default_filter_type", "vi");
dlfun("SubjC_filter_class_prefixes", "viI^*");
dlfun("SubjC_filter_class_prefix", "vi*");

dlfun("fopen", "^{sFILE=}**");
dlfun("fclose", "i^{sFILE=}");

Мне удалось загрузить libsubjc cycript script и вызвать функцию SubjC_start. Однако, как я могу указать дескриптор входного файла для строки, начинающейся с dlfun ( "SubjC_set_file", "v ^ {sFILE =}" );

Кто-нибудь успешно использовал cycript libsubjc.cy с библиотекой Subjective-C (libsubjc.dylib) для мониторинга вызовов API приложения?

UPDATE

Это, по крайней мере, генерация выходного файла, но я не вижу никакой информации, заполненной в выходном файле (/tmp/test.txt).

cycript -p SpringBoard libsubjc.cy; cycript -p SpringBoard
f = fopen("/tmp/test.txt", "w");

SubjC_set_file(f);
SubjC_set_maximum_depth(15);
SubjC_set_print_arguments(YES);
SubjC_set_print_return_value(YES);
SubjC_set_print_timestamp(YES);
SubjC_default_filter_type(SubjC_Deny);
SubjC_start();
//do stuff
SubjC_end();

Или, если кто-то знает о другом способе контроля вызовов API (без исходного кода) на джейлбрейк-устройстве, пожалуйста, дайте мне знать!

Ответ 1

Не уверен, что это не помогает. Попробуйте Charles Prixy

Шаги:

1.Установите прокси-сервер Charles на свой Mac.
2.Измените настройку прокси-сервера на своем мобильном устройстве (нужно пройти через прокси-сервер Charles). Проверьте их веб-сайт для конфигурации)