169 похожих чатов

Слушайте, у меня вопрос. Вот если создать код на разных

ассемблерах и сделать в объектный файл, то будет на всех платформах работать код?

12 ответов

32 просмотра

Как ты эти объектные файлы потом объединишь?

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

ProMiNick
в каждой операционной системе предполагается испол...

И как определить, какой код надо исполнить?

КТ315
И как определить, какой код надо исполнить?

если проц ошибку не выдал, значит всё ок - ну или всему крышка уже пришла

Mixail Frolov
если проц ошибку не выдал, значит всё ок - ну или ...

"значит всё ок" - не, значит некоторые опкоды совпали, и выполнились. Но на деле там выполнилось не то, что надо. Если выполнилось...

КТ315
И как определить, какой код надо исполнить?

вот в этом и вся суть полиглотов, надо положить инструкции так, чтоб на разных архитектурах одна и та же последовательность байт приводила к прыжку на код уже исключительно для определенной архитектуры и ни на одной из целевых не давала исключений.

КТ315
"значит всё ок" - не, значит некоторые опкоды совп...

у сообщения есть продолжение через "-"

Mixail Frolov
у сообщения есть продолжение через "-"

"всему крышка" немного неточное описание происходящему.

КТ315
И такое реально?

для арм и х86 думаю да - полиглот собрать реально. но даже для пары процессоров это вынос мозга.

КТ315
"всему крышка" немного неточное описание происходя...

это наихудший вариант, когда звёзды на небе сошлись и из кода для другого проца получился осмысленный код для этого проца

ProMiNick
для арм и х86 думаю да - полиглот собрать реально....

Да с арм всё просто, какое-нибудь eb xx 00 eb уже даст два прыжка. Вот если ещё пару архитектур, тогда да, начнутся сложности.

Похожие вопросы

Обсуждают сегодня

@MrMiscipitlick А можешь макрос написать, который будет вычислять смещение относительно переданных меток? Просто .label1-.label2, и вернуть значение.
КТ315
35
я не магистр хаскеля, но разве не может лейзи тип конвертнуться в не-лейзи запросив вычисление содержимого прям при инициализации?
deadgnom32 λ madao
100
А еще в перле можно уже @arr1 + @arr2?
Sergei Zhmylove
53
Подобного рода ;Следующие три строки это директивы ассемблера, ;которые можно не задавать, т.к.работаем в Visual Studio. ;Символ ";" - это начало однострочного комментария ...
Егор Анелькин
3
Привет всем. появился вопрос. Разрабатываю сайт, в данный момент он запущен. Хостинг beget. Добавляю на сайт яндекс метрику с помощью полей client-settings (взято отсюда http...
Andrew
2
Подскажите, где смотреть результат выполнения программы? Код: ;.686 ;Система команд процессора 686 ;.MODEL FLAT,stdcall ;Модель памяти плоская, станда...
Егор Анелькин
5
еще вопрос, допустим мы создадим char массив из 10 элементов и присвоим ему через сканф 10 символов. и выведем все символы. Хотел спросить последний элемент /0 будет включать...
Anthem
11
открыть папку в проводнике: 1 - ShellExecute 2 - ExecuteProcess 3 - OpenDocument что лучше выбрать?
Alexey Kulakov
12
Где в Астане можно купить мясо для шашлыков?
Dancing Іңұқәһүғө
21
;.686 ;Система команд процессора 686 ;.MODEL FLAT,stdcall ;Модель памяти плоская, стандартный ;вызов процедуры ;option casemap:no...
Егор Анелькин
1
Карта сайта