delphi в ассемблерный листинг

Тема в разделе "WASM.BEGINNERS", создана пользователем Caligula, 31 дек 2017.

  1. Caligula

    Caligula New Member

    Публикаций:
    0
    Регистрация:
    31 дек 2017
    Сообщения:
    8
    Всем ку, есть ли возможность в дельфях увидеть ассемблерный листинг того, во что превратится паскалевый код?
     
  2. Indy_

    Indy_ Well-Known Member

    Публикаций:
    4
    Регистрация:
    29 апр 2011
    Сообщения:
    4.775
    Caligula,

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

    Но вы можите взять дизасм общего назначения, хотя при этом будут утеряны соответствия суркам(нп те же имена).
     
  3. Caligula

    Caligula New Member

    Публикаций:
    0
    Регистрация:
    31 дек 2017
    Сообщения:
    8
    Да я тут узнал про такую фичу в visual studio: пишешь cl 1.cpp /Fa 1.asm и он тебе делает листинг с masm кодом, думал, может есть такое в дельфи?
     
  4. TermoSINteZ

    TermoSINteZ Синоби даоса Команда форума

    Публикаций:
    2
    Регистрация:
    11 июн 2004
    Сообщения:
    3.552
    Адрес:
    Russia
    Caligula, в отладочном режиме Delphi умеет показывать листинг кода с ассемблером.
    (фотки взяты с инета)

    [​IMG]

    [​IMG]

    А вот на счет генерации таких листингов при компиляции - не слышал. В прочем я давненько с дельфи не имел дел.
     
    Caligula нравится это.
  5. Mikl___

    Mikl___ Супермодератор Команда форума

    Публикаций:
    14
    Регистрация:
    25 июн 2008
    Сообщения:
    3.792
    Caligula нравится это.
  6. Indy_

    Indy_ Well-Known Member

    Публикаций:
    4
    Регистрация:
    29 апр 2011
    Сообщения:
    4.775
    Mikl___,

    ТС немного другое нужно, получить промежуточный асм. На сколько знаю дельфя не является транслятором, как например пури или си. Под asm директивой расположен специфический код не являющийся каким то компиляторным языком, типо fasm/masm/etc. Тоесть компилер не может билдить асм сурец.

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

    Есть декомпиляторы дельфи, DEDE или может есчо какие. Но в таком случае какой смысл декомпилить, если имеется исходный дельфийский код и возможны асм инлайн вставки.. Задача совершенно не понятна.
     
    Caligula нравится это.
  7. Indy_

    Indy_ Well-Known Member

    Публикаций:
    4
    Регистрация:
    29 апр 2011
    Сообщения:
    4.775
    Caligula,

    Для чего вам нужно приводить дельф-сурец к асм, если есть асм вставки ?
     
  8. Caligula

    Caligula New Member

    Публикаций:
    0
    Регистрация:
    31 дек 2017
    Сообщения:
    8
    А просто чтобы асм поучить и посмотреть, что там внутри этих делфийских функций делается,.. да и с нуля писать на ассемблере сложно. Думаю, хватит на первое время того, что TermoSINteZ и Mikl показали... Но, походу, в студии мощнее система все же т.к там как я понял дают работающий masm код..
     
  9. Indy_

    Indy_ Well-Known Member

    Публикаций:
    4
    Регистрация:
    29 апр 2011
    Сообщения:
    4.775
    Caligula,

    Посмотреть можно декомпилером/отладчиком. Ну а если вам нужны сильные средства контроля кода, то юзается си/асм. Дельф слишком говяный компилер по причине не контроля, кривой синтаксис и не контролируемый выхлоп, по этой причине данный компилер не юзается обычно теми, кто немного почитал матчасть, есть более эффективные и рациональные языки. Так же тут дельфя не используется, слишком это кривой компилер.
    Выражения дельфи не пригодны для отображения алгоритмов, у него кривой и тошнотворный синтаксис. Так что лучше сменить компилер на нормальный.
    Кстате те, кто используют дельф считаются ньюби, может быть на данный момент вы это не понимаете, но в дальнейшем вы поймёте почему :)
     
    Последнее редактирование: 1 янв 2018
  10. Caligula

    Caligula New Member

    Публикаций:
    0
    Регистрация:
    31 дек 2017
    Сообщения:
    8
    Ну не знаю... так то он в машину код переводит, не то что джава или си шарп. Плюс, кто щас не ньюби? Так если посмотреть, то все пишут на питоне или джаваскриптах в браузерах. Скоро, походу, вымрет классическое программирование. Плюс, они сделали бесплатную версию делфей, правда компилирует только в 32бит, но зато легально.. ;)
     
  11. TermoSINteZ

    TermoSINteZ Синоби даоса Команда форума

    Публикаций:
    2
    Регистрация:
    11 июн 2004
    Сообщения:
    3.552
    Адрес:
    Russia
    Caligula, не обращайте внимание (у Инди своеобразный стиль мышления, не стоит безоговорочно принимать), Паскаль сам по себе неплохой язык (если рассматривать отдельно от компиляторов, клин на дельфи не сошелся). Изучайте, лишним не будет. Потом ассемблер подучите получше, и уже будете мыслить по другому.
    А так бесплатного софта много и хорошего тоже - например Visual Studio :wink3:
     
  12. Pavia

    Pavia Well-Known Member

    Публикаций:
    0
    Регистрация:
    17 июн 2003
    Сообщения:
    2.409
    Адрес:
    Fryazino
    А на людей написавших свой компилятор смотрят как на богов. :girl_witch:
     
  13. Indy_

    Indy_ Well-Known Member

    Публикаций:
    4
    Регистрация:
    29 апр 2011
    Сообщения:
    4.775
    TermoSINteZ,

    У всех кто юзает данный компилер нулевой уровень знаний, в общем. Вы вот например помните какой то годный проект или технику, которую создал тот, кто юзал дельф ?
    Это естественно/логично что при получении опыта и накоплении знаний человек переходит на более эффективный компилер/язык.
    Слишком много дельф вставляет мусора в конечный код и это не контролируется на уровне компилера.
    Обычно дельф используется ньюби для обучения коденгу или теме же самыми ньюби для сборки примитивного зла, которое затем и палится по мусору :sarcastic:
     
    RET нравится это.
  14. HoShiMin

    HoShiMin Well-Known Member

    Публикаций:
    5
    Регистрация:
    17 дек 2016
    Сообщения:
    1.455
    Адрес:
    Россия, Нижний Новгород
    А как же Ms-Rem?
    Дэльфи хорош для фронтенда. Ничего удобнее FireMonkey ещё не видел. И из коробки имеем хороший менеджер памяти и огромную RTL'ку, где есть практически всё, что только может пригодиться - от парсилок JSON'ов до либы параллельного кодинга (параллельные for'ы, таски - практически полные аналоги из шарпа).
    Пожалуй, объективно нет плохих языков - есть языки под задачи. Дэльфи хорош в своей нише, плюсы и асм - в своей. Джава, шарп, новомодный гоу, питон - каждый инструмент под свою задачу.

    Раньше писал на дэльфи, писал на основе ремовских идей либу для хуков и микро-дизассемблер длин. Разница с плюсами, имхо, небольшая, и даже лишнего кода совсем немного. Скажем, "лишний" код вставляет не компиль, а разработчики RTL'ки в виде больших слоёв абстракции. На математике современный эмбаркадеровский компиль вполне бодро юзает SSE.
     
  15. Indy_

    Indy_ Well-Known Member

    Публикаций:
    4
    Регистрация:
    29 апр 2011
    Сообщения:
    4.775
    HoShiMin,

    Я знал что кто то его вспомнит и по этому использовал выражение в виде дополнения "в общем".

    > Раньше писал на дэльфи, писал на основе ремовских идей либу для хуков

    Да, я знаю ваши задачи, прошло весьма много времени с первого вашего вопроса, но я его помню и знаю ваши текущие задачи. Моё мнение такое - если бы вы начинали обучение коденгу годным путём, то и принимали бы самостоятельно годные решения. Не обижайтесь, но во всех ваших вопросах я не вижу какой то системы и не вижу что вы как то впитываете получаемую инфу. Я ваши задачи воспринимаю как порочный круг.
     
  16. HoShiMin

    HoShiMin Well-Known Member

    Публикаций:
    5
    Регистрация:
    17 дек 2016
    Сообщения:
    1.455
    Адрес:
    Россия, Нижний Новгород
    Прекрасно понимаю, о чём вы, но коль скоро защита по кусочкам уже написана ещё до частных вопросов в течение последних двух месяцев, то задачу надо дорешивать до конца, а потом браться за другую - неизвестно, сколько у меня займёт реализация визора, а то, что есть сейчас, уже можно ставить на проекты, чем сейчас и занимаюсь: кушать хочется сейчас, а не в далёкой перспективе)

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

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

    Другое дело, что обучать следует разносторонне. Я не вижу ничего плохого в кидании контролов мышкой, чтобы делать интерфейс: зачем писать простыни на WinAPI, если я могу кинуть мышкой кнопку и в удобной менюшке выбрать к ней эвенты и настроить стиль, шейдеры, анимации и всё-всё-всё - и в этом дэльфи хорош. Хорош он и в построении логического каркаса приложения.
    Долгое время не мог с него слезть именно из-за удобства. Затем FASM, драйверы на си и, наконец, плюсы. Но по прошествии стольких лет до сих пор не питаю к дэльфи никакой антипатии, и одинаково нравится и удобство дэльфи, и гибкость си и плюсов.

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

    P.S.: Свой первый вопрос на васме не помню даже я :meeting:
     
    Последнее редактирование: 2 янв 2018
  17. Indy_

    Indy_ Well-Known Member

    Публикаций:
    4
    Регистрация:
    29 апр 2011
    Сообщения:
    4.775
    HoShiMin,

    На счёт защиты у меня понятие следующее. Можно в пределах конкретного процесса реализовать сильную защиту, выделить и связать все потоки данных, реализовать анклавы. Приложение станет не уязвимым. Но в пределах системы это не особо имеет смысл. Так нарпимер можно повысить привилегии через км механизм и далее соотвественно локальная защита становится бессмысленной. Софтверная имплементация такой защиты для всей системы просто не возможна из за невероятной просадки профайла. По этой причине будущую защиту я вижу только в одном варианте - механизмы должны быть добавлены к стандартной машинной обработке(cpu), реализованы в железе. Лишь в этом случае имеет смысл какая то серьёзная защита.
    Понятно конечно что у вас немного иные задачи и цели, вам не нужен идеальный защитный механизм, так как ваша защита не нацелена на OP(Oriented Programming) атаки, это просто античит или что то подобное.

    Кстате хотелось бы посмотреть вашу реализацию, довольно интересно, учитывая сколько времени вы это разрабатывали.
     
  18. Indy_

    Indy_ Well-Known Member

    Публикаций:
    4
    Регистрация:
    29 апр 2011
    Сообщения:
    4.775
    HoShiMin,

    Вот первая рабочая версия визора, своего рода ключевая основа.
     

    Вложения:

    • vsr.zip
      Размер файла:
      132,5 КБ
      Просмотров:
      447
  19. HoShiMin

    HoShiMin Well-Known Member

    Публикаций:
    5
    Регистрация:
    17 дек 2016
    Сообщения:
    1.455
    Адрес:
    Россия, Нижний Новгород
    Воу, спасибо! Реализацию защиты скинул в лс
     
    Indy_ нравится это.
  20. Indy_

    Indy_ Well-Known Member

    Публикаций:
    4
    Регистрация:
    29 апр 2011
    Сообщения:
    4.775
    HoShiMin,

    Спасибо большое за сурки, это для меня что то интересное, обычно всё унылое. Нужно время на изучение.