装配六角转储

Bhu*_*bus 0 c x86 assembly

我试图学习x86程序集中的调试,我正在尝试调试我的简单C程序.但是,我对如何在内存中存储大值(如字符串)感到困惑.例如,假设我将字符串VEQ9SZ9T8I62ZCIWE6RKZDE6AZSI2存储在寄存器EBX的地址0012E965处,我查看该地址的十六进制转储,我怎么知道它的结束位置?假设我没有在该位置存储好的ASCII字符串,我怎么知道该特定地址的十六进制转储结束的位置?正如你所看到的,我是大会的初学者,所以我感谢大家的耐心和帮助.

Tob*_*gel 5

这主要是解释问题.如何解释字符串(或内存中的任何数据)(不出意料地)由解释它的某些代码定义.从仅查看十六进制数据转储开始,您无法确定使用哪种方法创建字符串,但很可能使用了常用方法.空终止字符串很容易被尾部零点识别,一些字符串可能以字节或字符的长度为前缀.大小也可能不是在数据存储器中编码,而是作为程序中的直接值放入.

  • 正确的是,没有_definite_方式而没有查看解释它的代码.在很多情况下,你可以做出相当不错的猜测,字符串是最简单的. (2认同)