Про disasm

Тема в разделе "WASM.RESEARCH", создана пользователем gazlan, 12 сен 2019.

Метки:
  1. gazlan

    gazlan Member

    Публикаций:
    0
    Регистрация:
    22 май 2005
    Сообщения:
    414
    omne999666 нравится это.
  2. Indy_

    Indy_ Well-Known Member

    Публикаций:
    4
    Регистрация:
    29 апр 2011
    Сообщения:
    4.775
    Повествование ниочём по первой ссылке, смешно:

     
  3. Rel

    Rel Well-Known Member

    Публикаций:
    2
    Регистрация:
    11 дек 2008
    Сообщения:
    5.323
    как бы не вижу особых противоречий сказанного и реального мира... Ида и Гидра делают это вторым способом...
     
  4. f13nd

    f13nd Well-Known Member

    Публикаций:
    0
    Регистрация:
    22 июн 2009
    Сообщения:
    1.995
    "Черным ящиком" обычно называют ситуацию, когда программа или ее часть недоступна для анализа (донглы, смарткарты, сервер). Исходя из названия первой статьи можно решить, что речь идет о восстановлении алгоритма по данным на входе и выходе. Напоминает реферат студента нагуглившего за вечер инфы по незнакомой теме.
    --- Сообщение объединено, 12 сен 2019 ---
    Гидра это делает несколько сложней, чем просто рекурсивно размотать адреса назначения переходов. Во-первых на каждую процедуру при анализе натягивается солвер, находящий адреса, рассчитываемые динамически (у иды кстати с этим есть некоторые нерешаемые трудности, связанные с ее устройством). Во-вторых есть стратегия поиска массивов адресов (где оценивается насколько правдоподобен код по адресам назначения). В-третьих есть плугин aggressive instruction finder, который по псевдокоду ищет конструкции, напоминающие пролог процедуры (я немножко ошалел, когда он в 100% не предусмотренной разработчиками плугина архитектуре, добавленной самостоятельно, начал их находить).
     
    Indy_ нравится это.
  5. KPG

    KPG Member

    Публикаций:
    0
    Регистрация:
    13 янв 2021
    Сообщения:
    121
    Интересно, а как, например, обстоят дела у гидры с дизассемблированием бинарного кода созданного например на компиляторах Forth?

    P.S. В качестве интереса пробовал дизассемблировать исполняемый файл Форт-системы но IDA как то не сильно с ним справилась (по умолчанию, от слова совсем), поэтому сдизасемблил файл в полу ручном режиме на самопальном дизассемблере в рамках Форт же использования. :)
    Получилось не всё прямо, но процесс такого интерактивного корректировки Форт скрипта в принципе показал сходимость.
    (если кому интересно, то могу приложить ссылку на то как это "извращение" получалось в выходном файле)
     
    Последнее редактирование: 16 янв 2021
  6. f13nd

    f13nd Well-Known Member

    Публикаций:
    0
    Регистрация:
    22 июн 2009
    Сообщения:
    1.995
    Я не знаю что это такое, компиляторы Forth. Наверное дела в ней как-то обстоят, если гидра такой набор команд поддерживает.
     
  7. Indy_

    Indy_ Well-Known Member

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

    Код (Text):
    1. DUP , 0 ?DO
    2.        DUP C@ C, CHAR+
    3. LOOP DROP 0 C,
    4.  
    - вики; для сумасшедших диалект, только они такое могут понять.
     
  8. KPG

    KPG Member

    Публикаций:
    0
    Регистрация:
    13 янв 2021
    Сообщения:
    121
    Ну Вы древние :)

    http://rosettacode.org/wiki/Category:Forth
    https://www.concatenative.org/wiki/view/Front Page

    P.S. Даже с функциональным наполнением - язык со стэком Factor https://factorcode.org/
     
  9. Rel

    Rel Well-Known Member

    Публикаций:
    2
    Регистрация:
    11 дек 2008
    Сообщения:
    5.323
    Оу, друзья, это жесткая штука для программерских задротов, даже есть более менее современные диалекты, такие как: https://factorcode.org/ (типа Форт в Смалтоковской инфраструктуре) и https://8th-dev.com/ (типа многоплатформенный Форт, в том числе и для мобилок). Как на этом разрабатывать я хз, но можно об этом думать, как об ассемблере для стековой вм.
     
  10. KPG

    KPG Member

    Публикаций:
    0
    Регистрация:
    13 янв 2021
    Сообщения:
    121
    Ну да, кому ассемблер приелся. :)

    P.S. хотя на нём (Forth), ассемблер делается на раз!
     
  11. f13nd

    f13nd Well-Known Member

    Публикаций:
    0
    Регистрация:
    22 июн 2009
    Сообщения:
    1.995
    Да мне как бы оно и не надо, я реверсом занимаюсь лет 15, ничего кроме ассемблера там нахрен не упало. Судя по всему тебя интересует умение гидродекомпиля выводить псевдокод в синтаксисе этого языка. Вердикт - не умеет.
     
  12. KPG

    KPG Member

    Публикаций:
    0
    Регистрация:
    13 янв 2021
    Сообщения:
    121
    Не обязательно в псевдо-Форт, если там уже нативный ассемблер, но, чтобы структура Форт кода не ломала мозги диззасемблеру как IDA на нём сливается.
     
  13. Indy_

    Indy_ Well-Known Member

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

    А автору иды нужно уделить внимание яп 70-х годов, про который сейчас никто ничего не знает ?

    Так подбери под это древнее мамонта соотв инструмент, он таким же древним должен быть теоретически.
     
  14. f13nd

    f13nd Well-Known Member

    Публикаций:
    0
    Регистрация:
    22 июн 2009
    Сообщения:
    1.995
    Ну тут наверное безумной популярности этого выдающегося ЯП пока недостаточно, чтобы интересоваться на форумах хорошо ли, плохо ли бинарники, написанные на нем, анализируются гидрой. Пока приходится проверять такие вещи самостоятельно.
     
  15. KPG

    KPG Member

    Публикаций:
    0
    Регистрация:
    13 янв 2021
    Сообщения:
    121
    Это современные системы.

    Откуда такие сведения, что "никто" не знает?
    Есть как любительские так и коммерческие Форт-системы (и с открытым кодом)
    также "много" Форта представлено в разработке для контроллеров и пишется он и интегрируется в каких то прoектах
    с использованием разных языков, а не только ассемблера.

    P.S, Forth on Github https://github.com/search?q=Forth&type=
    --- Сообщение объединено, 16 янв 2021 ---
    Да, вроде только упоминался один вирус времён ДОС написанный на нём,
    но в какой то практике и для анализа вредоностности кода видел проект на/с нём.

    но Софт в разной ипостаси на нём, всё же делают и есть рускоязычный форум по нему с 2006г.

    В скриптах Биткоина Форт-подобный язык.
    При разработке крипты TON язык Fifth для VM сделан по подобию Forth.

    В биосах компьтеров Sun и OLPC он под названием OpenFirmware (OpenBios)
    ...
    ...
    --- Сообщение объединено, 16 янв 2021 ---
    Кстати, в Radare2 язык симуляции выполнения ассемблерных команд построен с использование стэковой нотации подобной Форт.

    P.S. Козьма Прутков @"Многие вещи нам непонятны не потому, что наши понятия слабы; но потому, что сии вещи не входят в круг наших понятий"
    --- Сообщение объединено, 16 янв 2021 ---
    ESIL on Radare2 https://github.com/radareorg/radare2book/blob/master/src/disassembling/esil.md
     
    Последнее редактирование: 16 янв 2021
  16. Indy_

    Indy_ Well-Known Member

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

    По твоей ссылке первый попавшийся текст, что это такое!?

    Код (Text):
    1. 114     0 >r 2>r        \ R: q n
    2. 115     0 1 begin ?dup while dup 2* repeat
    3. 116     r> 0 begin        \ S: [...1<<i...] d r
    4. 117       2*        \ r <<= 1
    5. 118       r@ 0< if 1+ then    \ if n&msb then r++
    6. 119       r> 2* >r        \ n <<= 1
    7. 120       2dup > if rot drop else \ if r>=d
    8.  
    Этот высер всю парадигму прог-я ломает. Это что то похожее на обфускацию. Если на коменты посмотреть, то это вполне обьясняет всё такое, у них своя математика понятия, в каждом домике свои гномики".

    Ты пришёл сюда продвигать что то, реклама ?

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

    KPG Member

    Публикаций:
    0
    Регистрация:
    13 янв 2021
    Сообщения:
    121
    Вполне понимаемый код (. Засилье слов >R (перенести значение со стэка данных на стэк возвратов, а потом брать по R@ копию этого значения )
    обычно применяется для временного сохранения элемента стэка на стэке возврата.
    Практика использования Форт может существенно различаться у разных пользователей его как в хорошую так и в частную сторону.
    После \ слэш - это комментарий
    Перед IF получается флаг для ветвления, как в ассемблере формирования флагов
    THEN слово завершение IF
    между IF ... THEN может ещё быть слово ELSE
    ... по книгам за авторством Броуди и другим можно ознакомится с Форт.
    (сейчас рускоязычные книги по Форт с начала 90-х не печатаются)

    Нет, мне тема реверса и ассемблерного программирования близка.
    Я спросил определённый вопрос в теме с общим названием подходящим под этот вопрос, чтобы не создавать отдельный топик.
    В остальном, не я был "зачинщик" обмена "информацией" :)

    P.S. Модератор, если посчитает нужным, может отделить часть этого топика в отдельную тему.
     
    Последнее редактирование: 16 янв 2021
  18. Rel

    Rel Well-Known Member

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

    KPG Member

    Публикаций:
    0
    Регистрация:
    13 янв 2021
    Сообщения:
    121
    Это, возможно, что то из области иррационального поведения (ну как, например, коллекционирование чего то:)

    Статья What the Hell is Forth (Что, черт возьми, такое Форт?
     
  20. Mikl___

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

    Публикаций:
    14
    Регистрация:
    25 июн 2008
    Сообщения:
    3.792
    omne999666,
    Правила форума WASM