Jonas Maebe

dblp:15/2105 · DBLP profile ↗
← Back
4ranked-venue papers
1as first author
0since 2021 · last 2013
—ORCID · none

Domains — the database's venue-derived domains; a paper can count in several

Systems, architecture and hardware · 3Software engineering, systems software and programming languages · 2 · 1 first-author

Expertise — from the expertise taxonomy: the topics of the expert's papers under the CCF categories. A weight counts papers with recency: 1 for a paper about the topic, 0.3 when the topic is its context, halved every five years.

Software engineering, system software, and programming languages
2 papers
Program analysis · 45% Compilers and program optimization · 40% Runtime systems and virtual machines · 15%
Network and information security
1 paper
Systems and software security · 100%
Computer architecture, parallel and distributed computing, and storage systems
1 paper
Performance modeling and evaluation · 100%

Topics — the 8 heaviest of 9, each with the papers that count most for it

TopicWeightPapersLastEvidence papers
Systems and software security
software diversity
0.212013
Feedback-driven binary code diversification · ACM Trans. Archit. Code Optim. 2013
Program analysis
dynamic analysis
0.112006
Javana: a system for building customized Java program analysis tools · OOPSLA 2006
Program analysis › dynamic analysis
dynamic binary instrumentation
0.112006
Javana: a system for building customized Java program analysis tools · OOPSLA 2006
Runtime systems and virtual machines › virtual machine implementation
java virtual machine
0.112006
Javana: a system for building customized Java program analysis tools · OOPSLA 2006
Program analysis › dynamic analysis
profiling
0.112006
Javana: a system for building customized Java program analysis tools · OOPSLA 2006
Systems and software security
exploitation
0.012013
Feedback-driven binary code diversification · ACM Trans. Archit. Code Optim. 2013
Performance modeling and evaluation › tracing
memory reference tracing
0.012006
Javana: a system for building customized Java program analysis tools · OOPSLA 2006
Performance modeling and evaluation
workload characterization
0.012006
Javana: a system for building customized Java program analysis tools · OOPSLA 2006

Methods — techniques the papers use, named apart from their topics

iterative code transformation · 0.3binary diffing · 0.3instrumentation · 0.1dynamic binary instrumentation · 0.1
YearPublicationVenuePosition
2013 Feedback-driven binary code diversification
abstract
As described in many blog posts and in the scientific literature, exploits for software vulnerabilities are often engineered on the basis of patches. For example, “Microsoft Patch Tuesday” is often followed by “Exploit Wednesday” during which yet unpatched systems become vulnerable to patch-based exploits. Part of the patch engineering includes the identification of the vulnerable binary code by means of reverse-engineering tools and diffing add-ons. In this article we present a feedback-driven compiler tool flow that iteratively transforms code until diffing tools become ineffective enough to close the “Exploit Wednesday” window of opportunity. We demonstrate the tool's effectiveness on a set of real-world patches and against the latest version of BinDiff.
Bart Coppens 0001, Bjorn De Sutter, Jonas Maebe
ACM Trans. Archit. Code Optim.3
2011 Link-time optimization for power efficiency in a tagless instruction cache
abstract
The instruction cache is a critical component in any microprocessor. It must have high performance to enable fetching of instructions on every cycle. However, current designs waste a large amount of energy on each access as tags and data banks from all cache ways are consulted in parallel to fetch the correct instructions as quickly as possible. Existing approaches to reduce this overhead remove unnecessary accesses to the data banks or to the ways that are not likely to hit. However, tag hunks still need to be checked. This paper considers a new hybrid hardware and linker-assisted approach to tagless instruction caching. Our novel cache architecture, supported by the compilation toolchain, removes the need for tag checks entirely for the majority of cache accesses. The linker places frequently-executed instructions in specific program regions that are then mapped into the cache without the need for tag checks. This requires minor hardware modifications, no ISA changes and works across cache configurations. Our approach keeps the software and hardware independent, resulting in both backward and forward compatibility. evaluation on a superscalar processor with and without SMI' support shows power savings of 66% within the instruction cache with no loss of performance. This translates to a 49% saving when considering the combined power of the instruction cache and translation lookaside buffer, which is involved in managing our tagless scheme.
Timothy M. Jones 0001, Sandro Bartolini, Jonas Maebe, Dominique Chanet
CGO3
2006 Javana: a system for building customized Java program analysis tools
abstract
Understanding the behavior of applications running on high-level language virtual machines, as is the case in Java, is non-trivial because of the tight entanglement at the lowest execution level between the application and the virtual machine. This paper proposes Javana, a system for building Java program analysis tools. Javana provides an easy-to-use instrumentation infrastructure that allows for building customized profiling tools very quickly.Javana runs a dynamic binary instrumentation tool underneath the virtual machine. The virtual machine communicates with the instrumentation layer through an event handling mechanism for building a vertical map that links low-level native instruction pointers and memory addresses to high-level language concepts such as objects, methods, threads, lines of code, etc. The dynamic binary instrumentation tool then intercepts all memory accesses and instructions executed and provides the Javana end user with high-level language information for all memory accesses and natively executed instructions.We demonstrate the power of Javana through a number of applications: memory address tracing, vertical cache simulation and object lifetime computation. For each of these applications, the instrumentation specification requires only a small number of lines of code. Developing similarly powerful profiling tools within a virtual machine (as done in current practice) is both time-consuming and error-prone; in addition, the accuracy of the obtained profiling results might be questionable as we show in this paper.
Jonas Maebe, Dries Buytaert, Lieven Eeckhout, Koen De Bosschere
OOPSLA1
2004 Detecting Data Races in Sequential Programs with DIOTA
Michiel Ronsse, Jonas Maebe, Koen De Bosschere
Euro-Par2