问题描述: IDA分析MobileNotes的
-[ICNoteEditorViewController textView:shouldChangeTextInRange:replacementText:]
函数时, 发现传参的个数比方法声明时多了一个.这个函数是编辑笔记时,点击键盘会触发的函数, 继承于协议. 请问参数多了一个如何理解, 或者应该了解什么相关知识?
IDA分析出来的代码:
lldb在此处设置断点, 点击键盘上的字母"q", 打印各寄存器结果如下:
问题描述: IDA分析MobileNotes的
-[ICNoteEditorViewController textView:shouldChangeTextInRange:replacementText:]
函数时, 发现传参的个数比方法声明时多了一个.这个函数是编辑笔记时,点击键盘会触发的函数, 继承于协议. 请问参数多了一个如何理解, 或者应该了解什么相关知识?
IDA分析出来的代码:
lldb在此处设置断点, 点击键盘上的字母"q", 打印各寄存器结果如下:
typedef struct _NSRange {
NSUInteger location;
NSUInteger length;
} NSRange;
大概是因为NSRange占用两个寄存器
解答了我的疑惑, 非常感谢!
请问如何找到这个参数的结构定义.
……SDK里的头文件
找到了! 谢谢