MASTG-TECH-0094: 动态获取已加载的类和方法
在 Frida REPL Objective-C 运行时中,可以使用 ObjC
命令来访问运行应用程序中的信息。在 ObjC
命令中,enumerateLoadedClasses
函数列出给定应用程序的已加载类。
$ frida -U -f com.iOweApp
[iPhone::com.iOweApp]-> ObjC.enumerateLoadedClasses()
{
"/System/Library/Frameworks/CoreFoundation.framework/CoreFoundation": [
"__NSBlockVariable__",
"__NSGlobalBlock__",
"__NSFinalizingBlock__",
"__NSAutoBlock__",
"__NSMallocBlock__",
"__NSStackBlock__"
],
"/private/var/containers/Bundle/Application/F390A491-3524-40EA-B3F8-6C1FA105A23A/iOweApp.app/iOweApp": [
"JailbreakDetection",
"CriticalLogic",
"ViewController",
"AppDelegate"
]
}
使用 ObjC.classes.<classname>.$ownMethods
可以列出每个类中声明的方法。
[iPhone::com.iOweApp]-> ObjC.classes.JailbreakDetection.$ownMethods
[
"+ isJailbroken"
]
[iPhone::com.iOweApp]-> ObjC.classes.CriticalLogic.$ownMethods
[
"+ doSha256:",
"- a:",
"- AES128Operation:data:key:iv:",
"- coreLogic",
"- bat",
"- b:",
"- hexString:"
]