Сообщение Re[2]: модификация elf, добавление сегмента+секции от 20.02.2025 18:01
Изменено 20.02.2025 18:03 Molchalnik
Re[2]: модификация elf, добавление сегмента+секции
Здравствуйте, kov_serg, Вы писали:
_>Здравствуйте, Molchalnik, Вы писали:
M>>Подскажите, пожалуйста, где я мог нахимичать при модификации elf?
_>До
_>
_>После
_>
а в чём проблема? я mprotect'ом при запуске ставлю права на исполнение и права на чтение этому сегменту назад
вот таким кодом
_init_proc — это чётко 0x401000, длина вроде на сегмент с округлением по страницам к верху... _start — это первоначальная точка входа, 0x0405e40. Переход осуществляется туда. Если быне было прав на исполнение и чтение, segfault был бы на первой команде по адресу 0x0405e40, а доходит аш до 0x04ED09C
_>Здравствуйте, Molchalnik, Вы писали:
M>>Подскажите, пожалуйста, где я мог нахимичать при модификации elf?
_>До
_>
LOAD 0x001000 0x0000000000401000 0x0000000000401000 0x176231 0x176231 R E 0x1000
_>...
_> 01 .init .plt .text .fini
_>_>После
_>
LOAD 0x001000 0x0000000000401000 0x0000000000401000 0x176231 0x176231 0x1000
_>...
_> 01
_>а в чём проблема? я mprotect'ом при запуске ставлю права на исполнение и права на чтение этому сегменту назад
вот таким кодом
.coDDde:00000000005DE000 public start
.coDDde:00000000005DE000 start proc near
.coDDde:00000000005DE000 xor rax, rax
.coDDde:00000000005DE003 mov rdi, offset _init_proc ; start
.coDDde:00000000005DE00D mov rdx, 5 ; prot
.coDDde:00000000005DE014 mov rsi, 177000h ; len
.coDDde:00000000005DE01E mov rax, 0Ah
.coDDde:00000000005DE025 syscall ; LINUX - sys_mprotect
.coDDde:00000000005DE027 mov rax, offset _start
.coDDde:00000000005DE031 jmp rax
.coDDde:00000000005DE031 start endp
.coDDde:00000000005DE031
.coDDde:00000000005DE031 _coDDde ends_init_proc — это чётко 0x401000, длина вроде на сегмент с округлением по страницам к верху... _start — это первоначальная точка входа, 0x0405e40. Переход осуществляется туда. Если быне было прав на исполнение и чтение, segfault был бы на первой команде по адресу 0x0405e40, а доходит аш до 0x04ED09C
Re[2]: модификация elf, добавление сегмента+секции
Здравствуйте, kov_serg, Вы писали:
а в чём проблема? я mprotect'ом при запуске ставлю права на исполнение и права на чтение этому сегменту назад
вот таким кодом
_init_proc — это чётко 0x401000, длина вроде на сегмент с округлением по страницам к верху... _start — это первоначальная точка входа, 0x0405e40. Переход осуществляется туда. Если быне было прав на исполнение и чтение, segfault был бы на первой команде по адресу 0x0405e40, а доходит аш до 0x04ED09C
| . | |
| _>Здравствуйте, Molchalnik, Вы писали: M>>Подскажите, пожалуйста, где я мог нахимичать при модификации elf? _>До | |
LOAD 0x001000 0x0000000000401000 0x0000000000401000 0x176231 0x176231 R E 0x1000
_>...
_> 01 .init .plt .text .fini
_>| . | |
| _>После _> | |
а в чём проблема? я mprotect'ом при запуске ставлю права на исполнение и права на чтение этому сегменту назад
вот таким кодом
.coDDde:00000000005DE000 public start
.coDDde:00000000005DE000 start proc near
.coDDde:00000000005DE000 xor rax, rax
.coDDde:00000000005DE003 mov rdi, offset _init_proc ; start
.coDDde:00000000005DE00D mov rdx, 5 ; prot
.coDDde:00000000005DE014 mov rsi, 177000h ; len
.coDDde:00000000005DE01E mov rax, 0Ah
.coDDde:00000000005DE025 syscall ; LINUX - sys_mprotect
.coDDde:00000000005DE027 mov rax, offset _start
.coDDde:00000000005DE031 jmp rax
.coDDde:00000000005DE031 start endp
.coDDde:00000000005DE031
.coDDde:00000000005DE031 _coDDde ends_init_proc — это чётко 0x401000, длина вроде на сегмент с округлением по страницам к верху... _start — это первоначальная точка входа, 0x0405e40. Переход осуществляется туда. Если быне было прав на исполнение и чтение, segfault был бы на первой команде по адресу 0x0405e40, а доходит аш до 0x04ED09C