Как сгенерировать График зависимости программы (PDG) от Bytecode в Java

Я хочу сгенерировать график зависимости программ (PDG) от Java Bytecode для дальнейшего программного анализа. Так как это старое (бумага - с 1987 года и, по-видимому, хорошо известная технология, я думал, что подходящие инструменты будут легко доступны --- однако я не смог их найти.

Фактически расширенный поиск показал лишь несколько результатов:

  • Проект Bandera, который был оставлен в 2006 году.
  • Проект Indus, который, кажется, не получал никаких усилий с 2007 года, за исключением того, что он был создан с открытым исходным кодом в 2009 году.
  • Проект Moose JEE, который кажется довольно новым, поскольку в принципе нет документации.
  • И Soot framework, который предоставляет некоторые классы (см. JavaDoc), но, похоже, не хватает реализации для генерации. Фактически, Саут является основой для Бандеры и Инда.

Итак, мой вопрос заключается в следующем: есть ли живая и поддерживаемая реализация? Есть ли у кого-нибудь опыт в одном из вышеупомянутых проектов? Что бы вы порекомендовали?

Спасибо вам за ваш вклад, мы высоко ценим!

Ответ 1

Я предлагаю вам проверить WALA, систему, которая извлекает представления SSA из java файлов байтового кода.

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