Post:#471944 Date:06.06.2015 (00:41) ... 21 августа 1991 года закончился августовский путч в СССР-
24 августа 1991 в центре Киева. Люди приветствуют провозглашение независимости
25 августа 1991 года Линус Товальдс опубликовал ядро Linux Date: 25 Aug 91 20:57:08 GMT
Просто совпадение? Можно быть, но есть еще много других совпадений.
Главное- это одинаковая методика зомбирования адептов Линукса и Нэзалежной.
Линуксоидов в мире точно столько же сколько и укропов- около 1 %.
О чем не спросишь линуксоида- ответ : хто нескаче тотмастдай
Скачай сам или сделай "Неllo world" и посмотри .obj каким-либо вьювером
- и ты увидишь, там нет никаких ассемблерных мнемоник
- только bin, только хардкор
Ты оказывается еще и первый класс не освоил?
Переименуй это .бин в .тхт или .асм и увидишь что там есть.
Нормальный асмовый код.
Я гляжу ты хочешь нахалявку полное образование тут получить?
Для тебя теперь все вопросы будут платные- по ставке обычного препода 20 баксов занятие, раз не хочешь сам книжки читать.
А как же- все, кто имел дело с компами до 90-го года, знают заклинание кода.
Заклинание кода - наука, позволяющая напрямую контролировать машинный код и создавать его из имеющихся в наличии байт. Заклинатели демонов, равно как и их противники - создатели антидемонских программ, а также создатели защит, взломщики кода и многие другие - издавна практиковались в заклинании кода, в искусстве программирования без лишних посредников.
Чтобы научиться заклинать код, нам понадобятся три вещи - ассемблер, Книга Двойных Слов и собственное намерение. Без последнего ничего не выйдет, даже если будут первые два в сколь угодно большом количестве.
Про отражение памяти. У каждого процесса есть свой описатель- он типа большого числа, 256 байт, но расположен в пространстве ядра, а чтобы процесс юзера знал свой номер,он отражается в пространстве юзера. Чтобы юзер видел его и знал свое место.
Как в классике- твой номер шестнадцатый, сиди и помалкивай. Этот номер присваивает програмист, который пишет программу. Это строковая константа- то есть набор байтов с нулем на конце.
Программер может написать такой номер, чтобы при нужном прочтении он был программой вызова ДЛЛки. Что строка, что программа- это всего лишь последовательность байтов.
Там есть одна тонкость- в этом коде не должно быть нулей- ноль должен быть только в конце строчки.
Для этого есть заклинатели кода- низкоурровневые спецы, которые могут писать в машинных кодах.
Это уровень даже ниже ассемблера- уровень опкодов процессора.
Одну и туже работу можно сделать разными командами- вот они и выбирают такие, в которых нет ноликов.
Номер записан, он виден юзеру. осталось запустить его как исполняемый код.
Вот тут уже возникает разница между виндой и линухом. Винда старается прятать реальный адрес этого кода.
Каждая винда по разному его прячет. Линух не прячет. В линухе этот код запускается элементарно.
Он просто методом НЛП программирует юзера, что линух это самая надежная система.
> Переименуй это .бин в .тхт или .асм и увидишь что там есть.
Ха-ха-ха
переименование файла никак не изменит его содержимое
Блин, не ожидал такого
Вот тебе пример .obj - файла (прикреплён),
как не переименовывай его... ну сам увидишь
> Я гляжу ты хочешь нахалявку полное образование тут получить?
> Для тебя теперь все вопросы будут платные-
> по ставке обычного препода 20 баксов занятие, раз не хочешь сам книжки читать.
Да нужны мне такие _преподаватели_, как ты.. -как собаке пятое колесо
Сам бы умные книжки лучше почитал
Эфиродомен Пост: 605856 От 02.Dec.2018 (09:47)
... ну сам увидишь
Вижу- описатель файла вижу- заменить его на бинарный код как написано выше- и он попадет в стек ядра и там его можно будет запустить.
И асмовые команды тоже видно.
А чего ты хотел увидеть?
На данном шаге g++ выполняет свою главную задачу — компилирует, то есть преобразует полученный на прошлом шаге код без директив в ассемблерный код. Это промежуточный шаг между высокоуровневым языком и машинным (бинарным) кодом.
Используя флаг -S, который сообщает компилятору остановиться после стадии компиляции, получим ассемблерный код в выходном файле driver.s:
Чего непонятно?
Можно использовать другой флаг -О, тогда включится включится ассемблер и получим бинарный.
Но ассемблерный файл всегда является промежуточным результатом компилятора.
Или будешь спорить, что компилятор может сразу бинарник делать без ассемблера?
Эфиродомен Пост: 605864 От 02.Dec.2018 (13:09)
У кого-то ещё есть сомнения в том, что .obj - формат - двоичный, а не текстовый ?
Ты ещё скажи, что и .exe - тоже текстовый файл, о учитель учителей
Любой набор кодов есть текст.
"0-1-0-1..." тож текст, знаки и символы.
А вот это
есть "отражение памяти"(цы) прописанное не пойми кем
Основной твой "посыл" мне понятен и с интересом отслеживаю, хоть и не в теме жутких подробностей, начал в этом ковыряться в конце 80-х и забросил по весьма призёмлённым причинам.