首页 | 本学科首页   官方微博 | 高级检索  
     


Subroutine Inlining and Bytecode Abstraction to Simplify Static and Dynamic Analysis
Authors:Cyrille Artho  Armin Biere
Affiliation:Computer Systems Institute, ETH Zürich, Switzerland;Institute for Formal Models and Verification, Johannes Kepler University, Linz, Austria
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.
Keywords:Java bytecode analysis  inlining  static analysis  dynamic analysis
本文献已被 ScienceDirect 等数据库收录!
设为首页 | 免责声明 | 关于勤云 | 加入收藏

Copyright©北京勤云科技发展有限公司  京ICP备09084417号