簡體   English   中英

代碼行說明

[英]Line of code clarification

我正在讀一本關於緩沖區溢出和 shellcode 的書,書中有下面的代碼。

除了buffer = command +strlen(command);的目的之外,我理解大部分內容buffer = command +strlen(command); .

當我在緩沖區上使用memset()時,它不會用command+strlen(command)覆蓋我之前存儲的內容嗎? 有人可以為我澄清一下嗎?

代碼

+的操作數之一是指針時,C 進行指針運算。

結果或pointer + number是指向具有索引number的值的指針值。 它等價於&pointer[number]

所以,在這種情況下:

buffer = command + strlen(command);

相當於

buffer = &command[strlen(command)];

因此buffer將指向command的字符串終止符,如果您想將某些內容連接到command字符串,這正是正確的位置。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM