如何在跟踪程序时知道ret操作码的来源

时间:2016-05-01 18:23:22

标签: assembly trace low-level ptrace

我正在制作一个有点像strace的小程序,除了我让它捕获所有的电话和rets。 由于我无法通过间接调用找到获取所有调用和返回的方法,因此我想找到一种方法来获取ret操作码所源自的函数。你们有没有想过如何做到这一点

1 个答案:

答案 0 :(得分:1)

您可以模拟ret的作用:它会在地址%esp处查看堆栈,并将EIP设置为该值。当前堆栈中地址之前的指令将是call用于此处。