查看调用堆栈:ALT + K
堆栈调用窗口显示的每一行,代表从上一层函数,进入当前函数的入口,这个功能缺点就是只能在程序运行到某个函数中,并且断下来后,才能使用。
CTRL + K
假设我们有这样的需求,我不想运行到某个函数,只想查看该函数的调用关系。
- 我想知道谁调用了它?
- 我想知道它又调用了哪些函数?
这时候使用CTRL+K可以清楚的看到某个函数的上一层,以及这个函数内部调用了那些方法。
- 第一列 显示的是main函数的上一层函数是谁
- 第二列 显示的是当前的函数
- 第三列显示的是当前函数内部调用了那些函数
在任意一列,双击,可以把双击的那一列,作为当前函数,进一步追踪。假设我双击了test.CDemo::CDemo这个函数。
CTRL+R 交叉引用
IDA中有个很强大的功能,就是查看某个函数或者变量的交叉引用。同样OD中也这样的功能
我们在函数的入口点,按下CTRL+R,可以看到谁引用了这个函数入口的地址。
假设我在内存窗口,看到有个重定位的变量地址,先选中它,然后按下CTRL+R。
我可以找到所有引用这个常量的地方,同理,字符串常量也可以。