如何在 REPL 模式下编写循环?
How to write a loop in REPL mode?
我想在 REPL 模式下执行循环,但出现语法错误:期待 '('
var methods = eval(ObjC.classes.UIViewController.$methods);
for item in methods { console.log(item) }
这里有一个迭代和调用class方法的例子
var UIDevice = ObjC.classes.UIDevice.currentDevice();
UIDevice.$ownMethods
.filter(function(method) {
return method.indexOf(':') == -1 /* filter out methods with parameters */
&& method.indexOf('+') == -1 /* filter out public methods */
})
.forEach(function(method) {
console.log(method, ':', UIDevice[method]())
})
更新:
var UIViewControllerInstance = ObjC.chooseSync(ObjC.classes.UIViewController)[0];
console.log('Sanity check =', UIViewControllerInstance, JSON.stringify(UIViewControllerInstance.$ownMethods, null, 2));
UIViewControllerInstance.$ownMethods
.filter(method => { return method.indexOf(':') == -1 && method.indexOf('+') == -1 })
.forEach(method => {
console.log(method, ':', UIViewControllerInstance[method]())
})
无需在堆上查找 UIViewController 实例,您可以通过 UIApplication 直接访问
看看@https://frida.re/docs/examples/ios/
此问题与命令行 shells 有关,与 Frida 或任何其他 REPL 工具无关。
这是终端中 shell 的单个命令和多行主题。
只要在每行末尾加上“\”即可解决
示例:
var methods = eval(ObjC.classes.UIViewController.$methods);\
for (item in methods) { console.log(item) }\
我想在 REPL 模式下执行循环,但出现语法错误:期待 '('
var methods = eval(ObjC.classes.UIViewController.$methods);
for item in methods { console.log(item) }
这里有一个迭代和调用class方法的例子
var UIDevice = ObjC.classes.UIDevice.currentDevice();
UIDevice.$ownMethods
.filter(function(method) {
return method.indexOf(':') == -1 /* filter out methods with parameters */
&& method.indexOf('+') == -1 /* filter out public methods */
})
.forEach(function(method) {
console.log(method, ':', UIDevice[method]())
})
更新:
var UIViewControllerInstance = ObjC.chooseSync(ObjC.classes.UIViewController)[0];
console.log('Sanity check =', UIViewControllerInstance, JSON.stringify(UIViewControllerInstance.$ownMethods, null, 2));
UIViewControllerInstance.$ownMethods
.filter(method => { return method.indexOf(':') == -1 && method.indexOf('+') == -1 })
.forEach(method => {
console.log(method, ':', UIViewControllerInstance[method]())
})
无需在堆上查找 UIViewController 实例,您可以通过 UIApplication 直接访问 看看@https://frida.re/docs/examples/ios/
此问题与命令行 shells 有关,与 Frida 或任何其他 REPL 工具无关。
这是终端中 shell 的单个命令和多行主题。
只要在每行末尾加上“\”即可解决
示例:
var methods = eval(ObjC.classes.UIViewController.$methods);\
for (item in methods) { console.log(item) }\