Anonymous
?
Anonymous
Есть
889
Тоесть int 80h это функция или команда для обращения к системе ?
Это вызов прерывания 80h, в линуксе оно используется для системного вызова, т.е. всякие рид, райт, экзит, форк, мап и многие другие вызываются через это прерывание. Под dos это было б 21h прерывание.
Anonymous
http://www.i-assembler.ru/index.html
Спасибо большое
disba1ancer
и оно похоже до x86_64 появилось
Anonymous
Ку, поговорим?)
Anonymous
не забудьте сказать, что под x86_64 может быть и sysenter или как оно там зовётся
Можно и int использовать, но в таком случае будет использоваться именно 32-битная таблица вызовов. Да и вообще int медленнее, чем sysenter-sysexit/syscall
Anonymous
и оно похоже до x86_64 появилось
sysenter-sysexit — да, появился ещё на x86, для оптимизации int от Intel. А потом когда AMD делали x86_64, решили сделать свой аналог — syscall.
Anonymous
Но ядро Linux в любом случае обрабатывает все варианты. Просто там есть свои внутренние особенности, например syscall работает в режиме совместимости на x86_64 (AMD64) и на x86, а вот sysenter только на архитектуре Intel, и на AMD64 выдаёт исключение неизвестного опкода.
­
Ку, поговорим?)
Только о ассемблере.
Anonymous
Добрый вечер
Anonymous
Я только что узнал, оказывается есть и определенные синтаксисы ассемблеров, в моде оказывается Intel и AT&T синтаксисы, и прочитал что AT&T этот синтаксис по большей части пользуются в *nix ОС'мах... Там регистры пишутся с знаком %... И цифры с знаком $... Тоесть мне надо изучать синтаксис AT&T ? т.к у меня кали линукс... Это первый вопрос... 2 вопрос, nasm поддерживает ли синтаксис AT&T ?
Дмитрий
Только о ассемблере.
Только "в" Ассемблере )))
Anonymous
Добрый вечер. Я опять со своими вопросами вас беспокою 1. Вопрос насчёт определение секций. Я пока досихпор разбираю "hello world", вот, там у меня есть 2 секции, .text и .data... Я уже много вариантов "hello world"ов, и не 1 раз заметил что авторы определяют место секции по разному, тоесть у одного допустим секция .data находится в начале, а у некоторых .data определён в конце, из этого выходит это "стиль" ? Я могу моего удобства и восприятия определять место секций по своему ? Почему я спрашиваю, потому что, я бы хотел секцию данных .data - вроде так и называется, держать на самом вверху, т.к вы вчера сказали что они не исполняются... 2. Вопрос насчёт регистров и системных вызовов, скорее больше насчёт регистров, сейчас: _start: mov rax, 1 mov rdi, 1 ... Это кусок от "hello world"а, вопрос в том, что как именно определяется 1 это системный вызов а не просто число ? Я что то не мог это понять и не знаю как это искать в гугле... Посоветуйте как искать объяснения насчёт этого... Пожалуйста. Спасибо за внимание профи. )
s54820
Добрый вечер. Я опять со своими вопросами вас беспокою 1. Вопрос насчёт определение секций. Я пока досихпор разбираю "hello world", вот, там у меня есть 2 секции, .text и .data... Я уже много вариантов "hello world"ов, и не 1 раз заметил что авторы определяют место секции по разному, тоесть у одного допустим секция .data находится в начале, а у некоторых .data определён в конце, из этого выходит это "стиль" ? Я могу моего удобства и восприятия определять место секций по своему ? Почему я спрашиваю, потому что, я бы хотел секцию данных .data - вроде так и называется, держать на самом вверху, т.к вы вчера сказали что они не исполняются... 2. Вопрос насчёт регистров и системных вызовов, скорее больше насчёт регистров, сейчас: _start: mov rax, 1 mov rdi, 1 ... Это кусок от "hello world"а, вопрос в том, что как именно определяется 1 это системный вызов а не просто число ? Я что то не мог это понять и не знаю как это искать в гугле... Посоветуйте как искать объяснения насчёт этого... Пожалуйста. Спасибо за внимание профи. )
1. Пиши как хочешь, линкер потом отсортирует правильно. Вот если у тебя какой-нибудь фасм, который сразу исполняемый файл делает без линкера, тогда лучше по порядку: код, константы, инициализированные данные и потом неинициализированные. 2. Ничем не определяется, это просто число. Вот когда ты сделаешь int 80h, или там syscall, то ядро будет брать значения из заранее определённых регистров. Соответственно, тебе надо именно туда их и положить. Какое число что значит, в какой регистр что класть и т. п. смотри в таблице системных вызовов, какая больше нравится. Например, https://chromium.googlesource.com/chromiumos/docs/+/HEAD/constants/syscalls.md
Maxim
Всем доброго времени суток. В настоящее время я пишу приложение(C++||C#) для разбора(парсинга) кода написанного на ассемблере. Загвоздка в том, что мне нужно преобразовать исполняемый файл в ассемблерный код, прочесть его как текстовый файл и разобрать. Я знаю о существовании программ, что выполняют подобное преобразование, однако это всё выполняется вручную. Мне же нужно иметь возможность выполнить дизассемблирование в коде программы. Пожалуйста, посоветуйте возможные решения этого вопроса.
Maxim
Aiwan \ (•◡•) / _bot
https://codeby.net/threads/pishem-dizassembler-iz-biblioteki-dbgeng-dll.76880/ вот нашел, и это не хабр
Aiwan \ (•◡•) / _bot
https://habr.com/ru/post/128042/ а вот "классический" дизасм
Maxim
Благодарю
Eugene
https://www.capstone-engine.org/
По описанию выглядит очень прикольно 👍
­
Сам удалишь или мне кнопочку нажать?
­
Мут на месяц.
Anonymous
😄😄😄
Anonymous
Добрый день! Интересно, а можно вывести текст с зелёным цветом ? Да и вообще печать цветных символов возможен на ассемблере ?
889
Добрый день! Интересно, а можно вывести текст с зелёным цветом ? Да и вообще печать цветных символов возможен на ассемблере ?
Ну если терминал поддерживает эскейп последовательности, то можно также как в си. \033[32m
Anonymous
Понятно, спасибо большое.
Aiwan \ (•◡•) / _bot
Такие вопросы нужно задавать с указанием ОС.
я б ответил так, если бы не было ос
Eugene
Aiwan \ (•◡•) / _bot
А где тут указана ОС ?
в том то и дело
Anonymous
ОС Линукс Кали, х64
Eugene
ОС Линукс Кали, х64
Ну тогда да. Только строку "\033" ассемблер не обработает как Си, если это не NASM (в этом случае строка должна быть заключена в обратные кавычки: `\033[32m`).
Егор
Всем доброго времени суток Подскажите пожалуйста Как реализовать задержку 0.5 секунды по таймеру0 в режиме normal по переполнению time_ovf Atmega16
Егор
А что такое радиокот?)
Егор
Ну как подключить таймер я понял Он тикает Светодиод мигает Я не могу именно точный интервал выставить TCNT0 доходит до 255 переходит в прерывание и в прерывании там уже функция OUT на порт B чтобы диод вкл
Егор
Ну он с нуля быстро мигает Если допустим ему 100 присвоить то он еще быстрее начнет мигать
Егор
Да и как точно высчитать 0.5 секунды тогда Понятно же что путем подбора будет большая погрешность
s54820
Да и как точно высчитать 0.5 секунды тогда Понятно же что путем подбора будет большая погрешность
У тебя есть тактовая частота мк, делитель и количество тиков. Зачем что-то подбирать?
Егор
Частота 16Мгц Предделитель 1024 Кол во тиков ну от 0 до 255 Я не понимаю как контролировать частоту мигания Меняя только предделитель? А если я хочу какую нибудь свою частоту
s54820
Частота 16Мгц Предделитель 1024 Кол во тиков ну от 0 до 255 Я не понимаю как контролировать частоту мигания Меняя только предделитель? А если я хочу какую нибудь свою частоту
Делитель надо, чтобы у тебя интервал влез в 256 * период. И я так понимаю, что интервал слишком большой, потому что 16 МГц / 1024 = 15625 Гц, т.е., максимальная задержка 1 / 15625 * 256 = 16 мс. Ну заведи в прерывании счётчик, будет дополнительным делителем, на n-ный раз включишь светодиод. 15625 * 0.5 = 7812 Гц надо, 7812 / 256 = 30.51 = 31 раз повторяем по 7812 / 31 = 252 тика, в таймер грузим 256 - 252 = 4. Как-то так.
Егор
да точно, в прерывании счетчик и отсчитать 31 спасибо большое попробую реализовать
Cartoon 🐽
Кто знает как компилировать armasm под андроид?
Eugene
Кто знает как компилировать armasm под андроид?
Какой-нибудь Android GNU Toolchain? Типа https://android-doc.github.io/ndk/guides/standalone_toolchain.html ? 🤷‍♂
Cartoon 🐽
Спасибо) буду пробовать
Eugene
Спасибо) буду пробовать
Яндекс, найдётся всё 😁 Я просто юзаю арм гну тулчейн на винде, забил в поиске по аналогии. Не знаю, подойдёт или нет.
Cartoon 🐽
Я на bodhi Linux сижу и там нету тех ide обычно, поэтому думал через терминал все делать
Cartoon 🐽
Тогда его в первую очередь попробую)
МРАЗЬ 🇷🇺
Доброго времени суток! Хочу узнать: с чего стоит начать, чтоб в реверс податься?
МРАЗЬ 🇷🇺
Нене Я в ИБ) УК подождёт)
889
Доброго времени суток! Хочу узнать: с чего стоит начать, чтоб в реверс податься?
Можешь начать с курса отуса, который Айван скидывал. Поиск: хештег book reverse
Null
Приветствую всех! Кто-нибудь в курсе, можно ли каким-то образом найти исходники некоторых WinAPI-функций Windows Vista+? В частности интересуют SRWLock-функции.
Null
Это реклама кАнала?
Вопрос (про исходники WinAPI) — реально меня интересующий. А что касается канала, то он вполне в тему чата, может быть кому-то интересен, разве это плохо? Я ж не кидаю отдельный пост о канале с призывами подписаться, а просто пишу от имени канала (вроде нет такого запрета).
­
Пиши от своего имени. Реклама согласовывается отдельно.