我熟悉在中断特定指令后回溯堆栈的概念。我想知道的是:理论上,帮助自己分析应用程序的一个好方法是让它执行所研究的代码,然后仔细检查堆栈。据我所知,调试器只允许在实际中断指令后跟踪堆栈。然而,这可能是有问题的,因为如果我不知道在哪里放置断点,我就无法使用这种有用的技术。
例如,假设我正在玩一个简单的射击游戏。在每次射击之后(或之前),都会进行一些数学运算来计算武器的随机弹丸散布。同样,从理论上讲,如果可以“记录”在那段时间内完成的所有堆栈活动,那将极大地有助于分析。
我的问题:
- 那可能吗?
- 如果以上的答案是肯定的,那是否是一种可行的分析技术?鉴于在一个大型复杂应用程序中一直在执行大量代码,实际上是否有可能将所研究的代码与其他所有代码区分开来?