Size: a a a

2020 September 13

ДD

Дмитрий DemDemon... in pro.asm
И push eax, перед слипом зачем?
источник

EK

Eugene Krasnikov (ᴊɪ... in pro.asm
Чтобы сохранить результат работы во Вселенной.
Собственно, из-за этого стек и переполняется.
источник

ДD

Дмитрий DemDemon... in pro.asm
А... Ясно тогда
источник

EK

Eugene Krasnikov (ᴊɪ... in pro.asm
Всё, я спать...
источник

d

d1vunit in pro.asm
Доброго времени суток!
в elf если удалить shdr ,то elf  nopie будет загружаться также без неё,но если файл является pie static ,и у него нету shdr ,он тоже будет загружаться в память по любому адресу?

Я прочитал все возможные статьи понял ,что если удалить shdr ,то elf pie static не сможет загрузиться по любому адресу ,так как загрузчик не будет знать где располагается .symtab .strtab .rel.[name] .got .plt

Сегменты это контейнеры которые содержат в себе секции или это vma которые содержат секции,где секции это единица данных в терминологии elf

Но если мы не знаем где в сегментах располагается sections ,мы не сможем загрузить

Я прав?

Как загрузчик загружает pie по любому адресу (если он загружает) не имея таблицу секций?
источник
2020 September 14

d

d1vunit in pro.asm
./checksec.sh --file main
RELRO           STACK CANARY      NX            PIE             RPATH      RUNPATH      FILE
No RELRO        No canary found   NX enabled    PIE enabled     No RPATH   No RUNPATH   main

00000000000010a0 <free@plt>:
   10a0:  f3 0f 1e fa            endbr64
   10a4:  f2 ff 25 d5 22 00 00   bnd jmp QWORD PTR [rip+0x22d5]        # 3380 <free@GLIBC_2.2.5>
   10ab:  0f 1f 44 00 00         nop    DWORD PTR [rax+rax*1+0x0]

это программа скомпилированна как pie dynamic.Вопрос почему здесь нету вот так:
000003a0 <ml_util_func@plt>:
3a0:   ff a3 14 00 00 00       jmp    DWORD PTR [ebx+0x14]
3a6:   68 10 00 00 00          push   0x10
3ab:   e9 c0 ff ff ff                jmp    370 <_init+0x30>

почему этот испольняемый файл main,у него нету ленивого связывания хотя RELRO отключен .got.plt содержит все адреса уже заранее то есть динамический компоновщик их не разрешает
источник
2020 September 22

d

d1vunit in pro.asm
В 64 битном режиме сколько весит cs?
источник

d

d1vunit in pro.asm
Какого размера класть cs в стек при возврате из ring0 ret to ring3?
источник

A

Aiwan ╭∩╮ (òÓ,) ╭∩╮b... in pro.asm
cs - 16 бит
источник

d

d1vunit in pro.asm
Но есть такая инструкция mov eax,cs
источник

A

Aiwan ╭∩╮ (òÓ,) ╭∩╮b... in pro.asm
d1vunit
Но есть такая инструкция mov eax,cs
и что она делает?
источник

d

d1vunit in pro.asm
d1vunit
Но есть такая инструкция mov eax,cs
Я уже не помню (:
источник

EK

Eugene Krasnikov (ᴊɪ... in pro.asm
Она очищает старшее слово, насколько я помню, но надо смотреть Intel SDM.
источник

EK

Eugene Krasnikov (ᴊɪ... in pro.asm
d1vunit
Какого размера класть cs в стек при возврате из ring0 ret to ring3?
Как входишь-то? retf, jmp...?
источник

d

d1vunit in pro.asm
Eugene Krasnikov (ᴊɪɴ x)
Как входишь-то? retf, jmp...?
ставлю hook на idt
источник
2020 September 23

EK

Eugene Krasnikov (ᴊɪ... in pro.asm
d1vunit
ставлю hook на idt
Это как?
источник

d

d1vunit in pro.asm
загрузка модуля ядра и перезапись таблицы прерываний
источник

EK

Eugene Krasnikov (ᴊɪ... in pro.asm
А, я подумал, что это в винде.
Вообще, когда в 64-х битах делаешь retf, из стека извлекается 2 qword'а (2*8 байт).
Когда делаешь iret, то соответственно 3 qword'а (3*8 байт).
В 32-х битах, соответственно, dword'ы (по 4 байта).
источник

EK

Eugene Krasnikov (ᴊɪ... in pro.asm
А вот по поводу mov eax,cs или mov rax,cx.
источник

EK

Eugene Krasnikov (ᴊɪ... in pro.asm
Но где-то я видел, что то ли на старых процессорах, то ли ещё где-то старшая часть может не обнуляться.
Где-то выше, кажется, обсуждалось это.
источник