Я пытаюсь перейти к адресу в памяти, но это только смещение в файле, поэтому 0x530 вместо 0x555555 .... но я не знаю, как это сделать.Вот код
global _start
_start:
push rax
push rdi
push rsi
push rdx
mov rax,1
mov rdi,1
lea rsi,[rel msg]
mov rdx,msg_end - msg
syscall
pop rdx
pop rsi
pop rdi
pop rax
mov rax,0x1111111111111111
jmp rax
align 8
msg db "....WOODY....",10,0
msg_end db 0x0
Здесь я перехожу к 0x11111111111, значение, которое я изменяю на 0x530 перед выполнением файла, поэтому оно даст mov rax,0x530
, однако я не знаю, как получить абсолютное значениеaddress.
В основном я пытаюсь внедрить некоторый код в файлы ELF, мне нужно изменить точку входа исполняемого файла и затем вернуться назад, так как я сначала не знаю, кудапрыжок Я положил в память значение 0x111111111111
, которое я изменю исходной точкой входа в программу, как в примере, который я привел, скажем, у нас есть исходная точка входа со смещением 0x530
, я должен получить доступ к памятикомпьютер что-то вроде 0x55555555fff530
, вместо этого я прыгаю на смещение файла.
Я работаю над Ubuntu.