Появился новый язык программирования, Илон Маск обанкротился и написал AsmX! https://github.com/langprogramming-AsmX/AsmX Теперь новый ASSемблер, юзаем все вместе! Переписываем Калибри ОС на AsmX! Там есть корутины, что только недавно пришло в C++. А ещё есть новвоведеиние автора языка - Тионы!
>>2985184 >Ну кому нахер нужен аccемблер поверх джaвaскpипта? Даже звучит смешно, пхахахахах) Надо свой ЯП сделать, типа языка древних русов, или старославнский ассемблер.
>>2992869 А где тусуются ассеиблерщики? Полагаю что такооо места не существует иначе х86 разработчики будут взаимно крыть хуями ARM'овских, пиздюлины будут получать MIPS-овские. Рядом будут гнить 8088 деды, там вдали будут истекать гноем посконные Эльбрусс-VLIW-овцы, издалека будут угрожать RISC-V ассемблерщики, из под шконки будут вылазить Мультиклетовцы и обратно под шконку. Прадеды будут вспоминать PDP-11, но вся эта шушара с шутками и прибаутками будет набивать прадедам рот говном.
Между всей этой вакханалии будут раздаваться писклявые голоса программистов экзотических микроконтроллеров, а разработчики на желез от Texas Instruments, эдакие гуру, будут призывать к порядку и получать плевки.
Начал изучать язык ассемблера. Думал что знаю по битам всю программу. Оказалось что мои инструкции только её часть, компилятор суёт туда ещё чего-то чё ему захочется...
Как узнать типы аргументов у функций в ядре винды? ObFastDereferenceObject например Она вроде не задокументирована, но должно же где-то что-то быть? хидеры, символьные файлы(хз что это) и т.д. Понять не могу даже где искать
>>3059404 Она в андоке, верно. Наиболее простой способ - загуглить саму функцию, либо же, смотреть по рефам где эта функция вызывается. В первом случае могут помочь исходники ReactOS, но не все функции в документации задокументированы (микромягкие давят хуле)
Твоя функция принимает в аргументах структуру _EX_FAST_REF, и, очевидно из названия, указатель на объект.
Аноны, есть кто программирует на STM32? Как туда перекатиться с AVR? Какой программатор брать? Какую популярную и нормальную модельку STM взять пока в рамках хобби?
Смотрю обзоры, один другому противоречит, в комментах в магазинах обязательно найдется тот, кто орет, что ST-LINK нинастаящий!!!11, STM32 не видно в CubeMX.
Как на TASM максимально просто вывести на экран рамку из звёздочек? Не люблю крупные нагромождения кода для реализации простых вещей. В ассемблере без ебатни с циклами или выводом предзаготовленных строк в несколько заходов вообще никак?
Аида выдает такую инструкцию: call ds:dword_169A4 ссылается она на это: .rdata:000169A4 dword_169A4 dd 7648h ; DATA XREF: sub_10BB2+21↑r
1) что такое 7648h? оффсет от imageBase к началу функции, которая будет вызвана? или заранее предугаданное значение указателя на функцию? или? 2) почему написано не call ds:[dword_169A4] ? Выглядит будто управление передается по адресу 000169A4, но там не код, а .rdata Добавить могу что прога написана под XP x86
p.s. Как-то тяжеловато в реверсе все гуглится после вебмакакинга. Это у меня временно, или тут так заведено?
>>3155150 >что такое 7648h? Очевидно, оффсет, хз почему он не распознался автоматически. Можешь попробовать превратить его в оффсет ручками: Edit > Operand type > Offset > ...
>почему написано не call ds:[dword_169A4] ? Потому что IDA по умолчанию при отображении листинга использует синтаксис MASM, в котором хватает косяков и таких вот неоднозначностей. Зайди в опции, выбери "Borland TASM in Ideal mode" и будет все как ты хочешь.
Даблкликаю в колл стеке по второй строке сверху, ожидаю увидеть ПРОЛОГ функции, которая вызовет call WS2_32!send вижу середину какой-то функции, которая перед ретурном вызывает какую-то хуйню вместо send В чем я не прав? как это работает?
>>2826522 (OP) Хочу закатиться в сасемблер jmp tobi pizda ret 666, конкретно в CE и трейнеры, понять, как это работает и как флинг майнит через проводник пока я сплю, немного суметь в реверс при помощи костыля и сковородки, повскрывать коды игр, эмуляторов, вот это всё. Мб однажды дорасту до собственных игрушек, узнав как они работают "под капотом". Помогите с основами, дайте советов без иронии и рофлов, что почитать, где посмотреть, как понять массив чужого кода. Ещё нужно гайдов по луне, и желательно на человеческом, техническую инфу на ангельском переварить сложновато.
В чем смысл этой хуйни? На си, как я понял, это выглядит так: if ((char)eax >= 0xFF) eax = 0xFF; но чар не может быть больше 0xFF, а если он уже 0xFF, то нахуя ему еще раз 0xFF присваивать?
>>3223461 > но чар не может быть больше 0xFF, а если он уже 0xFF, то нахуя ему еще раз 0xFF присваивать?
Процессору абсолютно похую, что у тебя там за тип данных используется, он всё сжирает в машинных словах, соответственно: 1. Byte - 8 бит 2. Word - 16 бит 3. Dword - 32 бита 4. Qword - 64 бита
Твой чар будет как раз по размеру подходить первому пункту. Так что здесь, по сути, всё правильно.
>>3223787 >Твой чар будет как раз по размеру подходить первому пункту Зачем мне это? ты вопрос читал? Тебе просто не понравилось, что я byte со скриншота char'ом назвал? >здесь, по сути, всё правильно Что правильно? Я спросил, в чем смысл присваивать переменной размером в байт 0xFF, когда она больше или равна 0xFF. Байт не может быть больше 0xFF физически, соответственно мы присваиваем переменной 0xFF, только когда она уже 0xFF. Нужно либо указать на ошибку в моих рассуждениях, либо сказать что компилятор обосрался >>3224868 Так и думал, спасибо
>>3222367 >суметь в реверс >CE Это как пытаться в архитектуру при помощи детской лопатки. Хочешь уметь в реверс -> учи движки, раз собираешься игроделить или ещё какой хуйнёй страдать. >как флинг майнит через проводник Никак. Высеры китаёзы работают через подсос к игре, никто твой эксплорер не трогает. Разве что сам мелкософт. >Помогите с основами, дайте советов без иронии и рофлов, что почитать, где посмотреть Аcсемблер для чайников, если на русике. Но лучше чекай англюсик, там инфы больше. >как понять массив чужого кода Тут поможет только опыт. Которого у тебя нет. >нужно гайдов по луне Не нужно. LUA отдельная тема, не стоит её вскрывать.
>>3246614 Не объясним, потому что в рот ебали AT&T, тех, кто его придумал, тех, кто позволил ему покинуть пределы исследовательской палаты, и тех, кто продолжает его тянуть.
>>2826522 (OP) О, ебать, Маск это ты?) Помнишь как мы тебя всем самом PLD хуями крыли, а ты все не унимался и продолжал срать. До сих пор иногда вспоминаем.
Всем кто в треде -- этот шизофреник выдавал смешные перлы и на Хабре и даже в Илью в некоторых известных репозиториях (помню только про колибри ос). Тред судя по содержанию говно, сажи
Есть ли какая-то теория, какие-то инструменты, анализирующая систему комманд с точки зрения их кодирования. То есть анализ команды как структуры из опкода и аргументов.
Система команд это ведь стройный набор структур, которые можно рассматривать как один большой union в сишном понимании. Различение команд происходит в основном по опкодам, уникальным для каждой структуры константам.
Менеджер команд хотелось бы сделать, чтобы например видеть наглядно, какие опкоды не заняты. Какие биты опкода меняются допустим для сопроцессор и тому подобное. Но это лишь для примера, мне нужно именно теория или какой нибудь аналог svd описанний (xml подробно описывающий адресное пространство микроконтроллера), только для ассемблера, а не для адресного пространства.
>>3323660 Указатель стека можно произвольно перемещать в зависимости от того что нужно (push или pop) посреди фунции для врЕменных операций.
Базовый указатель обычно устанавливается в одно и то же значение для любой глубины стека и используется для доступа к переданным параметрам (с одной стороны) и локальным переменным (с другой стороны). Он также используется для быстрого восстановления указателя стека при выходе из функции.
Причина, по которой это делается, - упрощение кода, чтобы не приходилось ссылаться на содержимое стека, основываясь на меняющемся указателе. Использование базового указателя значительно облегчает задачу генерации кода (не нужно знать, каков указатель стека в каждый момент времени, достаточно использовать базовый указатель, который остается неизменным на протяжении всей работы функции).
>>2992869 Два чаю. Лет 10-15 назад пейсал на нем.Дохуя сорцев всяких осталось.Тогда в основном малварь интересна была.Есть ахуенный кейлогер с отправкой логов на мыло. Вес exe 5кб
Как понять иерархическую организацию директорий, если в структуре директории есть только оффсет (до соседнего по текущей директории) файла, имя и айнод; а в айноде - лист блоков, где хранится файл, и другое, но ни намёка, как разные уровни директорий связаны друг с другом?
Спрашива. здесь, потому что Си-треды унесло куда-то
>>3359192 Они были нужны раньше. Их можно было быстрее переводить в десятичный формат. И если ты мало оперируешь с числами и больше их выводишь на экран, то это имело смысл. Плюс десятичные дроби в BCD работают именно так, как ожидается 0.1+0.2 равно именно 0.3, а не та херня которую вам IEEE 754 показывает.
Но в целом это легаси фигня, которая почти не используется.
Кто хочет преколюшку? GAS не сможет родить бинарь А вообще, если прыщи, то только НАСМ? Хотел через гнушный ассемблер, хотя бы потому что бинутилс всегда есть, а по сути он является просто бэкендом гцц, жаль
>>2826522 (OP) Краем глаза прочитал про эту штуку: так ведь даже доступа к регистрам нет. Причём здесь ассемблер?
>>3372578 От того, что выходной бинарник всё так же будет содержать множество вещей, о которых ты не знаешь. К примеру, ты ведь вручную на задаешь значения для .plt сегмента, верно?
>>3376007 >К примеру, ты ведь вручную на задаешь значения для .plt сегмента, верно?
Зачем вручную? Во время исполнения к одной из записей в .plt привязывается адрес в .got. Если я всё правильно понял, .plt не изменяется в размере в рантайме, стало быть и здесь размер предсказуем. Хотя когда задавал вопрос, то имел ввиду raw binary.
>>3381678 Хорошо, с этим ты разберёшься. Но мне интересно, как ты решишь проблему с тем, что промеж всякого рода объектов остаются неиспользуемые участки? Например, промеж функций всегда впихиваются nop'ы (чтоб адреса функций имели кратность 4).
Конечно, в теории можно досконально изучить свой любимый ассемблер и все его приколы. Но чую я, что это занятие не на один вечер. Стоит ли оно того?
>>3405449 правильная последовательность изучения C -> компилятор -> VM -> машкод -> OS tcl тут причем ассемблеры это мнемонический код для удобства чтения и написания машкодов базовые книжки Robert Nystrom Crafting Interpreters Ноам Нисан, Шимон Шокен Архитектура компьютерных систем