Subroutine inlining and bytecode abstraction to simplify static and dynamic analysis

Abstract: In Java bytecode, intra-method subroutines are employed to represent code in “finally” blocks. The use of such polymorphic subroutines within a method makes bytecode analysis very difficult. Fortunately, such subroutines can be eliminated through recompilation or inlining. Inlining is the obvious choice since it does not require changing compilers or access to the source code. It also allows transformation of legacy bytecode. However, the combination of nested, non-contiguous subroutines with overlapping exception handlers poses a difficult challenge. This paper presents an algorithm that successfully solves all these problems without producing superfluous instructions. Furthermore, inlining can be combined with bytecode simplification, using abstract bytecode. We show how this abstration is extended to the full set of instructions and how it simplifies static and dynamic analysis

Location
Deutsche Nationalbibliothek Frankfurt am Main
Extent
Online-Ressource
Language
Englisch
Notes
ISSN: 1571-0661

Event
Veröffentlichung
(where)
Freiburg
(who)
Universität
(when)
2023
Creator

DOI
10.1016/j.entcs.2005.02.034
URN
urn:nbn:de:bsz:25-freidok-2395132
Rights
Open Access; Der Zugriff auf das Objekt ist unbeschränkt möglich.
Last update
25.03.2025, 1:45 PM CET

Data provider

This object is provided by:
Deutsche Nationalbibliothek. If you have any questions about the object, please contact the data provider.

Associated

Time of origin

  • 2023

Other Objects (12)