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