ищу parser generator

Тема в разделе "WASM.ZEN", создана пользователем scf, 8 дек 2008.

  1. scf

    scf Member

    Публикаций:
    0
    Регистрация:
    12 сен 2005
    Сообщения:
    386
    Собрался писать тулзу для обфускации программ на С, нужен хороший парсер.
    Из парсеров я знаю только Bison, думаю, для него даже есть готовая грамматика С, но меня смущает его древность.
    Неужели за прошедшие 15 лет ничего лучше не написали?
    Кто-нибудь знает лучшую альтернативу?
     
  2. katrus

    katrus New Member

    Публикаций:
    0
    Регистрация:
    7 мар 2007
    Сообщения:
    612
    А почему не написать сам обфускатор не на С? Например для Java/Python/Ruby есть очень хорошие генераторы компиляторов.

    Для С лет 8 назад использовал Anagram parser. Очень-очень хороший парсер. Мне в нем было комфортнее чем в Bison. К сожалению Anagram - мертвый проект, так как его основной разработчик умер :dntknw: Сайт до сих пор остался ...
     
  3. censored

    censored New Member

    Публикаций:
    0
    Регистрация:
    5 июл 2005
    Сообщения:
    1.615
    Адрес:
    деревня "Анонимные Прокси"
    scf
    Из относительно нового можно посмотреть на coco.
     
  4. scf

    scf Member

    Публикаций:
    0
    Регистрация:
    12 сен 2005
    Сообщения:
    386
    katrus
    а щоб не декомпилировали =)

    А какой из них "лучший" ?
     
  5. s0larian

    s0larian New Member

    Публикаций:
    0
    Регистрация:
    15 июл 2004
    Сообщения:
    489
    Адрес:
    Крыжёпполь
    scf, bison постоянно дорабатывают. Например у него есть новый С++ скелет. При чём тут древность? Древность языка С тебя не смущает? Это ж подобный инструмент.

    Сама грамматика для С небольшая. Можешь подсмотреть в gcc 3.x
     
  6. TermoSINteZ

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

    Публикаций:
    2
    Регистрация:
    11 июн 2004
    Сообщения:
    3.557
    Адрес:
    Russia
    scf
    К тому же, по bison много документации, и примеров. И он очень похож (совместим) на yacc. Последний, кстати, часто используют в купе с lex.
     
  7. _basmp_

    _basmp_ New Member

    Публикаций:
    0
    Регистрация:
    10 июл 2005
    Сообщения:
    2.939
    scf
    ?? Те транслятор C --> C? А чем это вам поможет? Можно просто скомпилить без дебугинфо или каким нить малораспросраненным компилером с нестандартной работой, напр, с локалками. Или поэкспериментировать с ключиками. У гцц или ов их оч много. Или поиграться с прагмами, напр, в ов есть прагмы для тонкого выруливания способов передачи/возврата параметров, манглов, формирования заголовков итд. В гнуси их тоже немало, но я предпочитаю ов тк код у него лучше.

    А может я непонял что тут обфускацией зовется..

    например есть такая штука:
    GCC-XML - This program dumps an XML description of C++ source code
    using an extension on the GCC C++ compiler.

    http://www.gccxml.org

    На antlr - е есть полный граммар к гнуC. Для анси или кр их вообще много. хоть под яцц с бизоном, хоть под сосо.
     
  8. Proteus

    Proteus Member

    Публикаций:
    0
    Регистрация:
    19 июн 2004
    Сообщения:
    344
    Адрес:
    Russia
    Среди олдовых генераторов, Бизон самый молодой помойму. К тому же его не написали и бросили, а до сих пор что-то добавляют. Я в перемешку как мог пользовался Bison и Yacc, притом раздражали оба. Все форумы когда-то изгадил (особенно RSDN), кучу сил потратил. Вменяемой замены так и не видел =))

    Lemon - более менее интересной штукой показался. Но там довольно противные ограничения на имена токенов, ещё кажется не может с отдельными буквами работать...