很强势,学习了。 开源精神万岁!
拿到block具体函数地址下断点后,如何直接打印回调回来的参数呢?po $r2 类似这样,不行
自己解决了,感觉自己萌萌哒,原来参数是从 po $r1 开始的
你好,郭总 . memory read --size 4 --format x 0x16fd8a958 中的 0x16fd8a958 是怎么算出来的.能教一下吗?
这个应该是作者笔误的。不存在0x16fd8a958
,只存在上面拿invoke函数指针时的0x16fd88f88
。
memory read --size 8 --format x 0x16fd88f88
换成每个单元4个字节输出:
memory read --size 4 --format x 0x16fd88f88
输出结果的第3个值0xc2000000
就是flags的int值。
(lldb) expr -- ((0xc2000000 & (1 << 30)) != 0)
(bool) $28 = true
就说明block有签名。
兄弟谢谢,解惑
我想hook一个block的返回值 怎么获取呢?? 没啥头绪
保存原来block的函数指针,自己准备一个新的函数并用自己这个函数的指针替换原来block里的函数指针,自己的block里按需要调用原来的函数或直接修改返回值
摸索了一上午 保存原来block的函数指针、替换原来block里的函数指针,这两步不晓得如何操作,整体逻辑很明白 就是hook函数 修改或查看参数。
正向的block 也只是会简单得用起来 没太深入理解
我是用MABlockClosure,可以在XM文件里复制一个,id cp = [arg1 copy] ,然后传给MABlockClosure,它会打印出block的函数参数信息,以及返回。
MABlockClosure是啥 有相关解说 最好是demo么
感谢感谢
现在的版本编译不了 怎么办啊
用MABlockClosure闪退 什么原因
麻烦问一下 reserved这个字段为什么没有了呢? 按说实现函数的指针不应该是第4段也就是第24个字节后面吗? 实际操作也确实没有reserved。 但是Block_descriptor_1中的reserved还是有一个0x000000在。
大佬,O(∩_∩)O谢谢分享
libffi-ios 请教一下你是咋装上去的?
我的报错fatal error: /Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin/lipo: can’t open input file: armv6-ios/.libs/libffi.a (No such file or directory)
楼主您好,您的这篇帖子写的太好了,只是里面有一张图挂了,请问有办法可以找回吗?
图片位于“ 找出 Block 的函数体地址”中,谢谢。