小编use*_*923的帖子

C中的Shellcode - 这是什么意思?

我并没有真正了解这段代码的作用:

char shellcode[] = "\xbb\x00\x00\x00\x00"           
                   "\xb8\x01\x00\x00\x00"                  
                   "\xcd\x80";                  

int main()
{
    int *ret;
    ret = (int *)&ret + 2;
    (*ret) = (int)shellcode;
}
Run Code Online (Sandbox Code Playgroud)

好的,我知道:

int *ret;
Run Code Online (Sandbox Code Playgroud)

设置int的指针.和:

ret = (int *)&ret + 2;
Run Code Online (Sandbox Code Playgroud)

设置ret的地址和2个字节(我想.)

但我不知道这意味着什么:

(int *)&ret
Run Code Online (Sandbox Code Playgroud)

我知道什么&ret意思但不(int *)&ret意味着什么.此外,它是如何通过分配的值执行的shellcode shellcoderet

更新:有什么区别:

(int *)&ret  + 2
Run Code Online (Sandbox Code Playgroud)

和:

&ret + 2
Run Code Online (Sandbox Code Playgroud)

c shellcode

15
推荐指数
1
解决办法
2510
查看次数

标签 统计

c ×1

shellcode ×1