Удалить плохие символы с адреса - PullRequest
0 голосов
/ 06 февраля 2019

Я начинаю некоторое время изучать прекрасное искусство шелл-кодирования.Я удаляю все плохие символы из своего шелл-кода, но мне сложно удалить их с адреса, назначенного регистру.У меня есть этот код, который просто вызывает sys_read, а затем sys_write:

section .data

welcome db 'Insert password: ', 0xA
welcomeLen  dq $-welcome
section .bss
input resb 4

section .text
_start:
mov al, 1
mov dil, 1
mov esi, welcome
mov edx, [welcomeLen]
syscall

; read password
xor al, al
xor dil, dil
mov esi, input
mov dl, 4
syscall

Я запустил objdump, и это вывод:

  401072:       b0 01                   mov    al,0x1
  401074:       40 b7 01                mov    dil,0x1
  401077:       be 00 20 40 00          mov    esi,0x402000
  40107c:       8b 14 25 18 20 40 00    mov    edx,DWORD PTR ds:0x402018
  401083:       0f 05                   syscall 
  401085:       30 c0                   xor    al,al
  401087:       40 30 ff                xor    dil,dil
  40108a:       be 5c 20 40 00          mov    esi,0x40205c
  40108f:       b2 04                   mov    dl,0x4
  401091:       0f 05                   syscall 

Как вы можете видеть только плохиесимволы, которые у меня есть, находятся в этих строках:

mov esi, welcome
mov edx, [welcomeLen]
mov esi, input

Можете ли вы объяснить, как я могу удалить 00 оттуда?

...