在 NASM 中打印环境变量
Print environment variables in NASM
我想知道如何在 NASM 中打印环境变量。
我们在class中了解到命令行参数的数量存储在EAX寄存器中,第一个参数的地址存储在EDX寄存器中的位置。但是,这对我不起作用,因为 EDX 寄存器中没有写入任何内容。
我看到了一些其他的方法来做到这一点,其中以某种方式使用了 ESP 寄存器,但我没有真正找到完整的解释。
如果有人对这个——对我来说——令人困惑的事情有一个清晰明了的解释,我将不胜感激。
看看下面的相关post:Why does this NASM code print my environment variables?.
你也可以看看startup state of a Linux binary。
简而言之,环境变量列在 NULL
值之后,该值跟在命令行参数之后。
我想知道如何在 NASM 中打印环境变量。
我们在class中了解到命令行参数的数量存储在EAX寄存器中,第一个参数的地址存储在EDX寄存器中的位置。但是,这对我不起作用,因为 EDX 寄存器中没有写入任何内容。
我看到了一些其他的方法来做到这一点,其中以某种方式使用了 ESP 寄存器,但我没有真正找到完整的解释。
如果有人对这个——对我来说——令人困惑的事情有一个清晰明了的解释,我将不胜感激。
看看下面的相关post:Why does this NASM code print my environment variables?.
你也可以看看startup state of a Linux binary。
简而言之,环境变量列在 NULL
值之后,该值跟在命令行参数之后。