Size: a a a

Ассемблер

2021 June 10

DF

Dollar Føølish in Ассемблер
моя ОС
источник

楽園松本 in Ассемблер
Через час солнечное затмение. Лучше всего будет видно на Дальнем Востоке.
источник

A

Aiwan ╭∩╮ (òÓ,) ╭∩╮b... in Ассемблер
int 0x80 -- команда int процессора вызывает т.н. программное прерывание. Грубо говоря - программное прерывание - это команда перехода выполнения программы в определенный операционной системой обработчик прерывания. Всего процессор поддерживает 256 обработчиков для 256 прерываний и операнд этой команды указывает на обработчик какого прерывания нужно передать выполнение программы. 0x80 - 80 в шестнадцатеричной системе счисления (на шестнадцатеричную систему указывают первые два символа: 0x). В случае ОС Linux, прерывание с номером 0x80 является системным вызовом - передачей управления ядру системы с целью выполнения каких-либо действий. В регистре EAX должен находится номер системного вызова, в зависимости от которого ядро системы будет выполнять какие-либо действия. В данном случае мы помещаем в EAX число 4, т.е. указываем ядру выполнить системный вызов номер 4 (write). Этот системный вызов используется для записи данных в файл или на консоль (которая тоже в принципе представлена файлом). В EBX мы поместили дескриптор(идентификатор) консоли - stdout. В ECX и EDX содержатся адрес начала сообщения (адрес первого байта) и длина сообщения в байтах. Т.е этот системный вызов должен выполнить вывод строчки, находящейся по адресу msg, на консоль.
mov eax, 1 - в EAX помещается 1 - номер системного вызова "exit"

mov ebx, 0 - в EBX помещается 0 - параметр вызова "exit" означает код с которым завершится выполнение программы
источник

A

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

DF

Dollar Føølish in Ассемблер
да в древнем uinderstanding linux kernel 3rd edition есть описание и сисколов и механизма
источник

$S

$ SEO Master $🕸️ SMM... in Ассемблер
Нет читаю уроки вообще под линукс
источник

$S

$ SEO Master $🕸️ SMM... in Ассемблер
А под винду?
источник

A

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

A

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

$S

$ SEO Master $🕸️ SMM... in Ассемблер
Системные вызовы как их отличать, какие они вообще есть как их видеть? Или eax всегда понятно что это системные вызовы? А как на счёт других регистров?
источник

DF

Dollar Føølish in Ассемблер
вот эту книжку прочитте
источник

DF

Dollar Føølish in Ассемблер
желательно на английском если язык знаете
источник

AM

Alexander Morozov in Ассемблер
Системный вызов - это обращение к операционной системе. Если нужно в программе сделать нечто сложное, вроде вывода текста, то обычно это не пишут сами, а обращаются к набору заранее готовых подпрограмм, которые вместе и составляют операционную систему. Вид и способ такого обращения описывается в документации к ОС.
источник

A

Aiwan ╭∩╮ (òÓ,) ╭∩╮b... in Ассемблер
int 80h это и есть системный вызов, читай как "я царь и бог вызываю СИСТЕМУ". то, что ты от нее хочешь записывай в eax, это циферка, которая обозначает выполняему функцию (читать  писать, бибикнуть, завершить приложение и тд). в справках о этих функциях пишут какие параметры и в каких регистрах должны передаваться перед вызовом системного прерывания
источник

АШ

Алексей Шведов... in Ассемблер
Всмысле как отличать? Это структура ServiceTable, которая находится в SystemServiceDescriptorTable. Первый оффсет - номер вызова. А syscall только определяет, и ищет его в таблице
Сами адреса находятся внутри ядра.
Грубо говоря, это как экспорт в PE структуре 0x78+0x1c и 0x78+0x20 - Ordinal Table и Name functions
Ищешь функцию по имени, сохраняешь номер, берёшь адрес из Ordinal Table, и получаешь RVA функции
Вот так и в SSDT
источник

АШ

Алексей Шведов... in Ассемблер
А вот тут есть целый список сисколов для всех (почти) версий и сборок Windows
https://j00ru.vexillium.org/syscalls/nt/64/
источник

АШ

Алексей Шведов... in Ассемблер
А вот здесь более кратко и удобно расписано: https://www.aldeid.com/wiki/SSDT-System-Service-Descriptor-Table
Даже затрагивается поиск функции внутри SSDT с помощью WinDbg
источник

NL

Nikita Larionov in Ассемблер
Подскажите, пожалуйста, в макрорасширении строятся те команды, которые в макросе не выполнились, или вообще все?
источник

КП

Котеечко Пухнастиньк... in Ассемблер
Парни, здарова
источник

КП

Котеечко Пухнастиньк... in Ассемблер
Можскажите пожалуйста по следующему вопросу:
источник