Size: a a a

Ассемблер

2021 August 14

ВВ

Вячеслав Васютин... in Ассемблер
У меня:
Segmentation fault (core dumped)
При таком коде:

format ELF64 executable

segment readable executable

mov rax, [pass_number]
mov rbx, rax
mov [myFavoriteNumber], rbx
mov rax, [writecall]
mov rdi, [done]
mov rsi, [size_done]
syscall

mov rax, 1
mov rdi, qword [Text_Favorite]
mov rsi, [size_Text_Favorite]
syscall

mov rax, 1
mov rdi, myFavoriteNumber
mov rsi, 3
xor rbx, rbx
syscall

mov rax, 60
mov rdi, 1
syscall





segment readable writeable

pass_number dq 20
myFavoriteNumber dq 'Slavik', 0
writecall dq 1
done dq "Done!", 10, 0
size_done = $-done
Text_Favorite db "Your favorite number is ", 0
size_Text_Favorite = $-Text_Favorite
источник

A

Aiwan ╭∩╮ (òÓ,) ╭∩╮b... in Ассемблер
почему в одних командах у тя метка на строку в скобках, а в других нет? done, myfavorite..
источник

ВВ

Вячеслав Васютин... in Ассемблер
Уже все поменял, всеравно segmentation fault
источник

ВВ

Вячеслав Васютин... in Ассемблер
format ELF64 executable                        
segment readable executable                    
mov rax, [pass_number]
mov rbx, rax
mov [myFavoriteNumber], rbx
mov rax, [writecall]
mov rdi, qword [done]
mov rsi, [size_done]
syscall

mov rax, 1
mov rdi, qword [Text_Favorite]
mov rsi, [size_Text_Favorite]
syscall

mov rax, 1
mov rdi, myFavoriteNumber
mov rsi, 3
xor rbx, rbx
syscall

mov rax, 60
mov rdi, 1
syscall





segment readable writeable

pass_number dq 20
myFavoriteNumber dq 'Slavik', 0
writecall dq 1
done db "Done!", 10, 0
size_done = $-done
Text_Favorite db "Your favorite number is ", 0
size_Text_Favorite = $-Text_Favorite


vasutinvaceslav13@cloudshell:~/Assem/TESTS$ ./1.out
Segmentation fault (core dumped)
источник

A

Aiwan ╭∩╮ (òÓ,) ╭∩╮b... in Ассемблер
ну тогда используй отладчик и справочник по системным вызовам
источник

aq

anonim qwerty in Ассемблер
А elf это формат для лини?
источник

ВВ

Вячеслав Васютин... in Ассемблер
Угу
источник

A

Aiwan ╭∩╮ (òÓ,) ╭∩╮b... in Ассемблер
но ты все равно не ответил почему так и как должно быть правильно
источник

s

ss in Ассемблер
Int 80h ; вызов ядра (если linux или freebsd)
Mov eax, 1 ; номер вызова
Mov eab ; в остальные регистры записываем параменты
Номер вызова можно узнать в man 2 read
Системные вызовы мы используем если мы хотим чтобы ядро что то сделало за нас
источник

s

ss in Ассемблер
Хотя в freebsd все параметры будут в стеки
источник

d

disba1ancer in Ассемблер
что можно?
источник

D

DarkPerl in Ассемблер
😁
источник

ST

Saenro T in Ассемблер
Потом можно будет попробовать этой функцией сгенерировать гигабайтный файлик и попробовать удавить его RAR'ом.
источник

aq

anonim qwerty in Ассемблер
Структуры
источник

A

Aleksandr in Ассемблер
На некоторых можно
источник

d

disba1ancer in Ассемблер
аааа, ну на фасме можно
источник

D

Den in Ассемблер
Что-то глючат в фасме вложенные процедуры, всместо jmp или call по нужному адресу, eip улетает в космос, это можно побороть?
источник

D

Den in Ассемблер
Вообще даже ощущение что ОС перехватывает jmp или call и кудает куда то к себе в процесс по крайней мере так выглядит в дебагере
источник

d

disba1ancer in Ассемблер
так дизасм посмотри, прогони в отладчике
источник

A

Aleksandr in Ассемблер
Ты сделал что-то очень не то
источник