• 我们在哪一颗星上见过 ,以至如此相互思念 ;我们在哪一颗星上相互思念过,以至如此相互深爱
  • 我们在哪一颗星上分别 ,以至如此相互辉映 ;我们在哪一颗星上入睡 ,以至如此唤醒黎明
  • 认识世界 克服困难 洞悉所有 贴近生活 寻找珍爱 感受彼此

OD攻略:调用堆栈、交叉引用

OD攻略 云涯 5年前 (2019-07-20) 2663次浏览 0个评论

查看调用堆栈:ALT + K

OD分析时,经常用到栈回溯方法。假设我们在一个函数的入口点images

使用ALT + K查看此函数的父级调用。
images

 

 

 

堆栈调用窗口显示的每一行,代表从上一层函数,进入当前函数的入口,这个功能缺点就是只能在程序运行到某个函数中,并且断下来后,才能使用。

CTRL + K

假设我们有这样的需求,我不想运行到某个函数,只想查看该函数的调用关系。

  • 我想知道谁调用了它?
  • 我想知道它又调用了哪些函数?

这时候使用CTRL+K可以清楚的看到某个函数的上一层,以及这个函数内部调用了那些方法。images

 

 

 

 

 

 

 

 

 

 

  • 第一列 显示的是main函数的上一层函数是谁
  • 第二列 显示的是当前的函数
  • 第三列显示的是当前函数内部调用了那些函数

在任意一列,双击,可以把双击的那一列,作为当前函数,进一步追踪。假设我双击了test.CDemo::CDemo这个函数。

CTRL+R 交叉引用

IDA中有个很强大的功能,就是查看某个函数或者变量的交叉引用。同样OD中也这样的功能
我们在函数的入口点,按下CTRL+R,可以看到谁引用了这个函数入口的地址。

假设我在内存窗口,看到有个重定位的变量地址,先选中它,然后按下CTRL+R。

我可以找到所有引用这个常量的地方,同理,字符串常量也可以。


云涯历险记 , 版权所有丨如未注明 , 均为原创丨本网站采用BY-NC-SA协议进行授权
转载请注明原文链接:OD攻略:调用堆栈、交叉引用
喜欢 (2)

您必须 登录 才能发表评论!