Сборный / Говнокод #24532 Ссылка на оригинал

0

  1. 1
  2. 2
А что если конпелятору переносить комментарии в ассемблерный код?
Это относится к швабодке?

Запостил: OlegUP OlegUP, (Updated )

Комментарии (20) RSS

  • Точно, в исполняемом файле нельзя хранить комментарии.
    Ответить
    • Изъебнуться можно всегда и везде:
      jmp skipcomment
      db 'this is kommentariy :)'
      skipcomment:
      Ответить
            • Где такой взять? Покажите хоть один!

              Ну какие-то мелкие оптимизации ассемблеры делать умеют (TASM заменяет jmp near на jmp short, если его об этом попросить), но чтобы глобально оптимизировать...
              Ответить
        • как оптемезатор может доказать ненужность литерала в .asm файле?
          Вдруг ты вообще базу литералов создаешь?
          Ответить
  • У меня лучше вопрос: а что если я напейсал COM-программу в hex-редакторе или блокноте, это опенсорс?
    Ответить
    • Столлман же юзает ноутбук с открытой архитектурой.
      Если выложишь под лицензией GNU, то скорее всего -- да.

      Мой вопрос в другом, если бы конпелятор переносил комментарии в exe\elf ... etc файл.
      То скорее всего разрабу было бы невыгодно это, потому что его прогу могут отреверсить.
      А это намного облегчает ревес-инжиниринг.
      Ответить
      • Реверс программы облегчает отладочная информация, которую компилятор может прикрепить к исполняемому файлу (соответствие байтиков исполняемого файла номерам строк исходника, наименование локальных переменных, декларации функций и т. п.).

        Кстати, без отладочной таблички с номерами строк комментарии и привязывать не к чему.
        Ответить
        • Отладочную информацию могут еще отдельно распостранять.

          Скажем, MS дает .sym файлы для винды которые позволяют развернуть колстек и понять в какой функции что ебанулось (и даже какие параметры у той функции) но сырцов не дает ни для чего кроме CRT.

          А без дебаговой инфы и правда никак не привязать номера строк.
          У опенбзди есть даже специальная инструкция для хомячков, у которых ядро ёбнулось: они могут посмотреть дамп, скормить его gdb на пару с с ядром с дебаговой инфой (опцыя -g) и узнать на какой строчке в .c файле у них случилось разыменовывание указателя на нуль или какая-то другая хуйня
          Ответить
    • Офтопик. Покопался в проекте http://tom7.org/abc/ ( http://www.cs.cmu.edu/~tom7/abc/ ). Чувак написал компилятор с урезанного подмножества языка C в досовский exe-файл, содержащий только ASCII-символы. У него получилось, хотя лучше бы не получалось... Выходные файлы имеют фиксированный размер 409600 байт (в заголовке exe нужно указывать его размер; вероятно, это минимальное число, которое автору удалось составить из ASCII-символов). Для компиляции самого компилятора нужно ставить MLton (компилятор StandardML) и две библиотеки ( https://sourceforge.net/p/tom7misc/svn/HEAD/tree/trunk/sml-lib/ и https://sourceforge.net/p/tom7misc/svn/HEAD/tree/trunk/cc-lib/ ).
      Ответить
      • НИ КОЧАЙТИ РАРЕГ.ЕХЕ ТАМ ВИРУС!!!11 ОН СВОРАЧИВАИТ ВАШЫ УШЫ В ТРУБОЧКУ!!!11

        ЗЫ. РАРЕГ.ЕХЕ это COM-файл? В EXE ведь первые джва байта MZ, а там ZM. Или я чего-то недогоняю?
        Ответить
        • DOS интерпретирует ZM так же, как MZ. Правда, ZM очень редко встречается, поэтому о таком варианте не все знают.

          А ещё у меня ощущение, что компилятор abc.exe недоработанный. Не все файлы, полученные им, запускаются.
          Ответить
          • > DOS интерпретирует ZM так же, как MZ.
            А венда? Может мне поменять во всех ехешниках MZ на ZM? Тогда буду нитакой как фсе.
            Ответить
            • Проверил. Поменял у пасьянса MZ на ZM — винда ругается: «Параметр задан неверно». Поменял обратно — работает.
              Ответить
              • Проверил ещё раз. Был глюк.

                Меняю у пасьянса MZ на ZM — запускается не PE-часть, а досовская часть, выводит: «This program cannot be run in DOS mode». Меняю обратно — запускается пасьянс.

                Т. е. 32-битная Windows, когда видит ZM вместо MZ, передаёт управление виртуальной DOS-машине. Что будет в 64-битной, представить страшно.
                Ответить

Добавить комментарий

Помни, guest, за тобой могут следить!

    А не использовать ли нам bbcode?


    8