Анализ программ на языке Java в инструменте Svace

Автор: Меркулов А.П., Поляков С.А., Белеванцев А.А.

Журнал: Труды Института системного программирования РАН @trudy-isp-ran

Статья в выпуске: 3 т.29, 2017 года.

Бесплатный доступ

В статье описываются работы, выполненные для поддержки анализа программ на языке Java в статическом анализаторе Svace, разрабатываемом в ИСП РАН. Приводятся методы построения внутреннего представления для анализа Java, включая изменения в компоненте контролируемой сборки, доработки компилятора OpenJDK, трансляцию байткода Java в окончательное представление для анализа. Описываются особенности анализа Java-программ - алгоритм девиртуализации, спецификации методов стандартной библиотеки Java, некоторые специфичные детекторы. Представлены результаты выполнения анализа для исходного кода операционной системы Android 5.

Статический анализ, девиртуализация, байткод

Короткий адрес: https://sciup.org/14916441

IDR: 14916441   |   DOI: 10.15514/ISPRAS-2017-29(3)-5

Список литературы Анализ программ на языке Java в инструменте Svace

  • V.P. Ivannikov, A.A. Belevantsev, A.E. Borodin, V.N. Ignatiev, D.M. Zhurikhin, A.I. Avetisyan, M.I. Leonov. Static analyzer Svace for finding of defects in program source code. Trudy ISP RAN/Procf ISP RAS, vol. 26, issue 1, 2014, pp. 231-250 DOI: 10.15514/ISPRAS-2014-26(1)-7
  • A. Borodin, A. Belevancev. A Static Analysis Tool Svace as a Collection of Analyzers with Various Complexity Levels. Trudy ISP RAS/Proc. ISP RAS, vol. 27, issue 6, pp. 111-134 DOI: 10.15514/ISPRAS-2015-27(6)-8
  • Java virtual machine specification. http://docs.oracle.com/javase/specs/jvms/se7/html/, accessed 20.06.2017
  • The Javac compiler. http://docs.oracle.com/javase/7/docs/technotes/tools/windows/javac.html, accessed 20.06.2017
  • Java compiler API. http://openjdk.java.net/groups/compiler/guide/compilerAPI.html, accessed 20.06.2017
  • Ant build system. http://ant.apache.org/, accessed 20.06.2017
  • Maven build system. https://maven.apache.org/, accessed 20.06.2017
  • Android operating system. https://source.android.com/, accessed 20.06.2017
  • The Eclipse ECJ compiler. https://mvnrepository.com/artifact/org.eclipse.jdt.core.compiler/ecj, accessed 20.06.2017
  • Instrumenting Java bytecode with Java agents. https://docs.oracle.com/javase/7/docs/api/java/lang/instrument/package-summary.html, accessed 20.06.2017
Еще
Статья научная