Что такое граф кода, где его можно использовать и где скачать пример?

Тема в разделе "WASM.WIN32", создана пользователем intel_x128, 9 апр 2011.

  1. intel_x128

    intel_x128 New Member

    Публикаций:
    0
    Регистрация:
    17 май 2009
    Сообщения:
    345
    Некоторые умные люди на васме регулярно упоминают "граф".
    Расскажите, что это такое, для чего оно нужно и где об этом можно почитать?
     
  2. ohne

    ohne New Member

    Публикаций:
    0
    Регистрация:
    28 фев 2009
    Сообщения:
    431
  3. intel_x128

    intel_x128 New Member

    Публикаций:
    0
    Регистрация:
    17 май 2009
    Сообщения:
    345
    Имелись ввиду эти графы.
     
  4. Rel

    Rel Well-Known Member

    Публикаций:
    2
    Регистрация:
    11 дек 2008
    Сообщения:
    5.323
    в книге по теории графов или дискретной математике...
     
  5. qqwe

    qqwe New Member

    Публикаций:
    0
    Регистрация:
    2 янв 2009
    Сообщения:
    2.914
    intel_x128
    программа с переходами может быть представлена в виде графа. в узлах будут последовательные участки между метками и переходами. переходы будут ребрами.
    так представляют дизасмы ида и иммунити дебугер. удобно, наглядно. для автоматического анализа разветвленного кода рекомендуется.
    только теория графов для данной конкретной цели мало нужна. такое представление только задля анализа запутанного кода по сетке переходов.
     
  6. ohne

    ohne New Member

    Публикаций:
    0
    Регистрация:
    28 фев 2009
    Сообщения:
    431
    intel_x128
    вы неправильно поняли контекст, между строк почитайте
     
  7. gaeprust

    gaeprust New Member

    Публикаций:
    0
    Регистрация:
    2 май 2011
    Сообщения:
    188
    Граф это сруктура обьекта. Если просто - все возможные варианты исполнения кода в виде структуры.

    Пример можна скачать тут(старый не полноценный двиг, но большинство задач решает):
    http://www.woodmann.com/collaborati...Control_Flow_Graph_Creation_And_Build_Engine)
     
  8. GoldFinch

    GoldFinch New Member

    Публикаций:
    0
    Регистрация:
    29 мар 2008
    Сообщения:
    1.775
    толсто.
     
  9. izl3sa

    izl3sa New Member

    Публикаций:
    0
    Регистрация:
    22 апр 2010
    Сообщения:
    164
    Адрес:
    Spb
    этот тип представления исполняемого кода, тыщу лет имеет собственное название - CFG - control flow graph. Первоначально разработан для нужд оптимизации в компиляторах (см. Ахо и компания). Сейчас его используют для многих нужд, к примеру морфа (http://morpher.com/ обфусцирующий компилятор), поиска неэкспортируемых имен, анализ и детектирование малвари, деобфускация и тд. В общем довольно удобное представление бинарного кода. В теории делится на interprocedural и intraprocedural. Вообщем по большей части достаточно внутрипроцедурного графа.
    Ну и не стоит забывать и про другие графы анализа - DFG и PFG. Но они более сложны для построения (нужна по сути эмуляция) и в принципе применимы для слайсинга (именно slicing) и продвинутой деобфускации (зависимость по данным и тд).