DeWin 1.9 - дизассемблер\парсер PE\NE

Тема в разделе "WASM.SOURCES & 2LZ", создана пользователем _edge, 5 фев 2020.

  1. _edge

    _edge Well-Known Member

    Публикаций:
    1
    Регистрация:
    29 окт 2004
    Сообщения:
    631
    Адрес:
    Russia
    Дизассемблер Windows-приложений обеих разрядностей, работающий с
    файлами формата COFF. Работает под DOS, но файл грузит частями, поэтому
    работает даже с приложениями размером в несколько мегабайт. Понимает
    имена импортируемых функций, распознает строки посреди кода (стиль
    Паскаля), выравнивание процедур, стандартные точки входа, вытаскивает
    ресурсы, в том числе русский unicode. Понимает внешний файл с описаниями
    функций (адрес-имя) и областей данных посреди кода (например, реализация
    case в Си или константы Паскаля), а также стандартные runtime.
    Работа с Common Object File Format (COFF). Проверялось деассемблирование
    go32 приложений, в частности Фраунгоферовского MP3 кодека. Для формата
    PE можно указывать нестандартные имена секций данных и ресурсов. В
    постпроцессоре добавлен макрос чтобы использовать, например, строки из
    ресурсов одного модуля в листинге другого модуля.


    Годный пример того, что может 1 человек. Использован обычный ТурбоСи. В архиве также вложены доки по форматам\структурам exe-шников.
     

    Вложения:

    • dewin19.zip
      Размер файла:
      167,1 КБ
      Просмотров:
      507
    M0rg0t нравится это.
  2. Indy_

    Indy_ Well-Known Member

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

    Диз это не разложение на просто последовательность, где предыдущая инструкция определяет следующую(те её длина). Норм диз в виде инструмента иной, это очень сложный инструмент, основная задача - сборка графа, если он не может к примеру определить лимиты массива указателей, то это не тул это УГ. Впрочем как и ида.
     
  3. f13nd

    f13nd Well-Known Member

    Публикаций:
    0
    Регистрация:
    22 июн 2009
    Сообщения:
    2.000
    Дизассемблер это оказывается про сборку графа для определения лимитов массива указателей, что бы это ни значило.
     
  4. Indy_

    Indy_ Well-Known Member

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

    А что это по твоему, какой то примитив табличный в виде декодера, тысячи их.

    Оказывается студентик ты и это не понимаешь.
     
  5. f13nd

    f13nd Well-Known Member

    Публикаций:
    0
    Регистрация:
    22 июн 2009
    Сообщения:
    2.000
    Может быть я аспирантик. И написав три дизасм-модуля для гидры, каким-то чудом деконпелирующие машинный код в цэ, так и не догадался как они устроены.
     
  6. Rel

    Rel Well-Known Member

    Публикаций:
    2
    Регистрация:
    11 дек 2008
    Сообщения:
    5.330
    Обычный? Быть может "древний" будет более уместным?
    --- Сообщение объединено, 5 фев 2020 ---
    Ты не шаришь просто, в наши дни, если в дизе не заложены алгоритмы разбора графов, а* поиска, машинного обучения и блокчейны, то это - уг.
     
  7. _edge

    _edge Well-Known Member

    Публикаций:
    1
    Регистрация:
    29 окт 2004
    Сообщения:
    631
    Адрес:
    Russia
    Rel, я так понял, там си без плюсов, "ванилла си". Плюс еще асм с макросами. Норм для проекта 1 чела в конце 90х, без этого вашего интернета. Древний или не древний (хотя да, древний, ТурбоС вроде последний был 3 версии, а тут первая версия), речь идет о самом материале в архиве, на мой взгляд - "на отлично".

    Могу также в топик набросать сорцев эмулятора Gameboy etc., из тех, что на личных страницах авторов, не на Гит. В качестве кодовой базы, если кому интересно.
     
  8. f13nd

    f13nd Well-Known Member

    Публикаций:
    0
    Регистрация:
    22 июн 2009
    Сообщения:
    2.000
    Просто раскодированием инструкции и представлением ее в мнемонической форме сейчас никого не удивить. Чтоб было на отлично, должен быть либо движок, представляющий инструкцию в унитарной форме для дальнейшей обработки, либо вообще с абстракцией над архитектурой, типа микрокода иды. По дизасм-листингам в наши дни почти никто ничего не изучает. Недавно одиннадцать вшивых килобайт по-спортивному выписал с ассемблера одного проца на другой и они сломали меня полностью.
     
  9. Indy_

    Indy_ Well-Known Member

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

    > типа микрокода иды

    Она даже такое может, удивительно :sarcastic:
     
  10. f13nd

    f13nd Well-Known Member

    Публикаций:
    0
    Регистрация:
    22 июн 2009
    Сообщения:
    2.000
    По-моему про микрокод иды столько уже написано, что удивительно как поздно ты с печи слез. Для большинства пользователей пока доступен только для х64 микрокод, благодаря румыну диме.
     
  11. Rel

    Rel Well-Known Member

    Публикаций:
    2
    Регистрация:
    11 дек 2008
    Сообщения:
    5.330
    В радаре тоже есть промежуточное представление для декомпиля, в аверском декомпиле (не помню, как называется) использовался ллвм вроде.
    --- Сообщение объединено, 6 фев 2020 ---
    А, вспомнил: https://github.com/avast/retdec
     
  12. f13nd

    f13nd Well-Known Member

    Публикаций:
    0
    Регистрация:
    22 июн 2009
    Сообщения:
    2.000
    Радаробиндинги для нормального скриптинга доступны только пингвинятникам. Что делает радар не совсем юзабельным. Здесь можно было добавить что-то шовинистическое про пингвинятников и большинство пользователей, но не буду. С появлением гидры проблема сама собой решилась.
     
  13. Indy_

    Indy_ Well-Known Member

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

    Как бы у микрокода" есть чёткое понятие, это прошивка CPU, которая обновляется. Для фикса багов, так в железках этот термин понимают. Что в каком то дизе вы тем же термином называете мне глубоко всё равно и не интересно. Но могу сказать что ты точно что то напутал.
     
  14. Rel

    Rel Well-Known Member

    Публикаций:
    2
    Регистрация:
    11 дек 2008
    Сообщения:
    5.330
    Ну я юзал радаре2 через питон и р2пайп на венде без каких-либо проблем. Гидра да, вполне себе нормальный проект, жаль только, что на джаве гуишка и модули написаны (декомпиль же ихний вроде на плюсах, если ничего не путаю), очень несовременно выглядит интерфейс и джава канеш тормазнутая. Это очень странный на мой взгляд выбор в плане дизайна, тогда уж запилили бы все наплюсах, гую на пресловутом кьюте например, было бы более юзабельно имхо.
    --- Сообщение объединено, 6 фев 2020 ---
    Лол! У Инде своя собственная терминология как всегда. Только не "вы называете", а сам мистер Ильфак называет.
     
  15. f13nd

    f13nd Well-Known Member

    Публикаций:
    0
    Регистрация:
    22 июн 2009
    Сообщения:
    2.000
    Питонобиндинги на момент выхода гидры были только в исходниках, при сборке виндабилдов не подключались. Один r2pipe (который в буквальном смысле пайп с обменом текст туда, html обратно) был доступен, и для линукс-бояр vala-биндинги.
     
  16. Indy_

    Indy_ Well-Known Member

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

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

    Процессор имеется в виду натуральный железный с кремнием, а не какой то скрипт :rofl:
     
  17. f13nd

    f13nd Well-Known Member

    Публикаций:
    0
    Регистрация:
    22 июн 2009
    Сообщения:
    2.000
    Особенно забавлял огромный список языков программирования, с которых можно взаимодействовать с радаром. Можно реализовать обмен через пайп на хаскеле - хаскел поддерживается и т.д.
     
  18. Rel

    Rel Well-Known Member

    Публикаций:
    2
    Регистрация:
    11 дек 2008
    Сообщения:
    5.330
    Так а почему забавлял? Это же работает.
     
  19. f13nd

    f13nd Well-Known Member

    Публикаций:
    0
    Регистрация:
    22 июн 2009
    Сообщения:
    2.000
    Это очковтирательство. Можно составить например список клавиатур, которыми можно набирать команды для радара, то есть из всех, у которых шланг usb, ps/2 или din-коннектором заканчивается.
     
  20. Rel

    Rel Well-Known Member

    Публикаций:
    2
    Регистрация:
    11 дек 2008
    Сообщения:
    5.330
    Ну это спорный момент, тот факт, что радаре может принимать команды по пайпу, не является типичной фичей подобных проектов. И эта фича позволяет управлять радаре в принципе из любого языка, на котором можно писать/читать пайпы и кодировать/декодировать джейсон. Как бы хорошая фича и вполне себе фича, которую можно рекламировать.