iphone: strace, dtruss, dtrace или эквивалент?

Кто-нибудь знает, если есть что-то вроде strace, dtruss, или же dtrace для айфона?

tester-iPhone:/tmp root$ apt-cache search dtruss
tester-iPhone:/tmp root$ apt-cache search dtrace
tester-iPhone:/tmp root$ apt-cache search trace
tester-iPhone:/tmp root$ apt-get install strace
Reading package lists... Done
Building dependency tree
Reading state information... Done
E: Couldn't find package strace
tester-iPhone:/tmp root$ apt-get install dtrace
Reading package lists... Done
Building dependency tree
Reading state information... Done
E: Couldn't find package dtrace
tester-iPhone:/tmp root$ apt-get install ltrace
Reading package lists... Done
Building dependency tree
Reading state information... Done
E: Couldn't find package ltrace
tester-iPhone:/tmp root$ apt-get install dtruss
Reading package lists... Done
Building dependency tree
Reading state information... Done
E: Couldn't find package dtruss

2 ответа

DTrace (и, следовательно, dtruss тоже), по-видимому, были портированы на iOS некоторое время назад, но Apple не выпустила его за пределами своих собственных лабораторий. Лучшая ссылка, которую я могу найти - цитата одного из авторов DTrace: https://twitter.com/ahl/status/311866307115098112

Платформа Frida может быть полезной, которая обеспечивает динамическое инструментирование кода с использованием Python API. Он позволяет вставлять фрагменты JavaScript в нативные приложения на iOS (и Windows, Mac, Linux).

Есть хорошее руководство по использованию Frida на iOS.

Есть также Cyrik от Saurik, который позволяет "разработчикам исследовать и изменять запущенные приложения на iOS или Mac OS X, используя гибрид Objective-C++ и JavaScript через интерактивную консоль".

И, конечно же, его Cydia Substrate позволяет изменять / вводить поведение приложений для iOS.

На реальном взломанном устройстве iOS я использовал frida-trace.

frida-trace -m "+[NSUUID UUID]" -U "Debug CrackMe"    // trace UUID
frida-trace -m "*[ComVendorDebugger* *]" -U -f com.robot.demo.app   // wildcard trace on Classes
frida-trace -i "getaddrinfo" -i "SSLSetSessionOption" -U -f com.robot.demo.app      // trace SSL setup options on iOS
frida-trace -m "-[NSURLRequest initWithURL:]" -U -f funky-chicken.hello-swift-4-2      // trace URLs

Этот инструмент также работает с jailedустройств. Ссылаться наfrida-gadget.

На симуляторе iOS я мог dtrace звонки:

sudo dtrace -qn 'syscall::ptrace:entry { printf("%s(%d, %d, %d, %d) from %s\n", probefunc, arg0, arg1, arg2, arg3, execname); }'
Password: // you need sudo


ptrace(31, 0, 0, 0) from debugger_challen
Другие вопросы по тегам