我需要在程序集中复制命令行参数吗

DSb*_*ard 2 windows assembly x86-64 command-line-arguments

我使用 fasm 但也许这个问题不依赖于汇编语言版本。命令行参数字符串存储在哪里?我需要在程序启动时复制这个字符串还是保证它无限期地存在?我的程序中的缓冲区溢出等可以覆盖原始文件吗?

ten*_*our 7

命令行参数是进程环境块 (PEB) 的一部分,在进程启动后不会更改。您可以通过 访问命令行GetCommandLineW,也可以自己解析参数。也存在CommandLineToArgvW为你做一些解析的。

字符串数据在可写内存中,所以是的,如果您有修改一个参数的错误/不安全代码,其中的溢出可能会修改另一个参数。