Jonas Maebe's research while affiliated with Ghent University and other places
What is this page?
This page lists the scientific contributions of an author, who either does not have a ResearchGate profile, or has not yet added these contributions to their profile.
It was automatically created by ResearchGate to create a record of this author's body of work. We create such pages to advance our goal of creating and maintaining the most comprehensive scientific repository possible. In doing so, we process publicly available (personal) data relating to the author as a member of the scientific community.
If you're a ResearchGate member, you can follow this page to keep up with this author's work.
If you are this author, and you don't want us to display this page anymore, please let us know.
It was automatically created by ResearchGate to create a record of this author's body of work. We create such pages to advance our goal of creating and maintaining the most comprehensive scientific repository possible. In doing so, we process publicly available (personal) data relating to the author as a member of the scientific community.
If you're a ResearchGate member, you can follow this page to keep up with this author's work.
If you are this author, and you don't want us to display this page anymore, please let us know.
Publications (21)
This paper presents a feasibility study to protect smart card software against fault-injection attacks by means of link-time code rewriting. This approach avoids the drawbacks of source code hardening, avoids the need for manual assembly writing, and is applicable in conjunction with closed third-party compilers. We implemented a range of cookbook...
We present a feasibility study to protect smart card software against fault-injection attacks by means of binary code rewriting. We implemented a range of protection techniques in a link-time rewriter and evaluate and discuss the obtained coverage, the associated overhead and engineering effort, as well as its practical usability.
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...
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. Ex...
The HiPEAC roadmap describes the HiPEAC vision on high-performance embedded architecture and compilation for the coming decade. It starts from societal challenges, application and industry trends, and technological constraints which lead to 7 technical challenges. This forms the basis for the HiPEAC vision "keep it simple for humans, and let the co...
Javana is a tool for creating customized Java program analysis tools. It comes with an easy-to-use instrumentation framework that enables programmers to develop profiling tools that crosscut the Java application, the Java Virtual Machine (JVM) and the native execution layers. The goal of this poster isto demonstrate the power of Javana, using objec...
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-...
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-...
In this paper we show that data races, a type of bug that generally only causes havoc in parallel programs, can also occur
in sequential programs that use signal handlers. Fortunately, it turns out that adapting existing data race detectors to detect
such bugs for sequential programs is straightforward. We present such a tool, and we describe the m...
In this paper we show that data races, a type of bug that generally only causes havoc in parallel programs, can also occur in se- quential programs that use signal handlers. Fortunately, it turns out that adapting existing data race detectors to detect such bugs for sequential programs is straightforward. We present such a tool, and we describe the...
Adding small code snippets at key points to existing code fragments is called instrumentation. It is an established technique to debug certain otherwise hard to solve faults, such as memory management issues and data races. Dynamic instrumentation can already be used to analyse code which is loaded or even generated at run time.With the advent of e...
This chapter describes data race backend developed for DIOTA (Dynamic Instrumentation, Optimization and Transformation of Applications). DIOTA is generic instrumentation tool, and this tool uses so-called backend to use the information gathered using the instrumentation. Data race backend uses innovative technologies like multilevel bitmaps, snoope...
In this paper, we describe DIOTA, a dynamic in- strumentation technique. The technique correctly deals with pro- grams that contain traditionally hard to instrument features such as data in code and code in data. The technique does not require reverse engineering, program understanding tools or heuristics about the compiler or linker used. The basi...
A memory leak occurs when a program allocates a block of memory, but does not release it after its last use. In case such a block is still referenced by one or more reachable pointers at the end of the execution, fixing the leak is of- ten quite simple as long as it is known where the block was allocated. If, however, all references to the block ar...
Software designers and developers face many problems in designing, building, deploying, and maintaining cutting-edge software applicationsreliability,security,performance,power,legacy code,use of multi-core platforms,and maintenance are just a few of the issues that must be considered. Many of these issues are fundamental parts of the grand challe...
Adding small code snippets at key points to existing code fragments is called instrumentation. It is an established technique to debug certain otherwise hard to solve faults, such as memory management issues and data races. Dynamic instru- mentation can already be used to analyse code which is loaded or even generated at run time. With the advent o...
In this paper, we describe DIOTA, a novel method for instrumenting binaries. The technique correctly deals with programs that contain traditionally hard to instrument features such as data in code and code in data. The technique does not re- quire reverse engineering, program understanding tools or heuris- tics about the compiler or linker used. Th...
Memory leaks are caused by allocating memory blocks and not releasing them after their last use. In most modern programs, dynamic data structures are used quite extensively. In this case, only knowing the allocation site of leaked memory blocks, as reported by most current tools, is often not enough to fix said leaks. It is also possible that all p...
Citations
... Computer scientists consider that we have entered the Centaur Era (humans and computers working together). People are interacting with the physical world in completely new ways, with sensory input devices, smartphones, wearables, smart applications, cars, robots and computers augmenting reality to assist humans [1]. A rich variety of sensors are present in almost all smart phones: accelerometers, gyroscope, magnetometer, GPS technology, barometer, proximity sensor, ambient light sensor, sound sensor (microphone), touchscreen sensors, fingerprint sensor, pedometer, barcode/QR code sensors, heart rate sensor, thermometer, air humidity sensor and even Geiger counter which can measure the radiation level. ...
... Applications for binary rewriters have been code compaction [149], instrumentation [63], performance optimization [116,135], and protection [147]. A wide range of protections have been implemented in binary rewriters, examples of which are hardening techniques [125,128], protections against fault injection [65,109], and protections against MATE attacks [28,147,150]. Section 2.4.2 provides an in-depth discussion on the use of link-time rewriters for code protection. ...
Reference: Stealthy and Resilient Code Protection
... 4. Accessibility: for older adults or disabled persons, voice-command systems can control the lights, lock the doors, operate a telephone or use a computer. Automation allows the user to set a schedule for automatic tasks like watering the lawn. 5. Providing convenience [5,6]: by giving the consumers control all the appliances [7] like making the accessibility for controlling the systems including air conditioning systems, intercoms, music, and multimedia devices throughout the home. Integrated hardware allows inhabitants to watch a video or listen to audio in all rooms. ...
... Dynamic instrumentation frameworks such as Valgrind (Nethercote and Seward 2007) or Javana (Maebe et al. 2006) serve as the basis for profilers and other kinds of performance tools. These frameworks resemble the use of continuation marks in our framework and could potentially be used to build feature-specific profilers. ...
Reference: Feature-Specific Profiling
... This makes it important to detect and prevent fault injection attacks on IoT systems as it can have disastrous consequences. Software vulnerability analysis techniques discover the IoT software system vulnerabilities to fault injection attacks and subsequently safeguard the software against the attack effects using software hardening techniques [3], [4]. ...
... Notice that a single tool can serve multiple purposes, such as building and protecting software. Importantly, when a software analysis tool such as BinDiff, IDA Pro, or KLEE is used in a feedback-driven protection approach in some paper (e. g., [181]), we count that as a tool's use for protection. Of course, when the tool is also used to evaluate the strength of the eventually obtained protection, we mark it as a tool's use for analysis. ...
... The monitor could then prevent the SIGSEGV signal from being delivered, thus effectively emulating all accesses to the shared memory pages. Emulating accesses to shared memory is unfortunately prohibitively slow [83] and completely negates the performance benefits of using shared memory in the first place. ...
... Determining precise locations of memory leakage has also been investigated. Maebe et al. [10] have presented a technique that tracks all pointers to the allocated memory using reference count. In their approach authors keep track of pointers by monitoring load and store operations that may change pointer structure of a program, detecting locations of memory leakage. ...
Reference: A Dynamic Approach to Locating Memory Leaks
... The same approach is used by DynInst [25,48] 27 . Diota [87] utilizes this approach as well, but retains an original copy of the altered program's parts in memory to handle the data in code and code in data rewriting problem for CISC machines. ...
... Concurrency bugs are generally associated with multithreaded programs. However, researchers have shown that they also exist in sequential [14], interrupt-driven [15], and event-based programs [16]. The execution of signal-handlers, interrupt-handlers, and other asynchronously invoked eventhandlers interrupts the control flow of these programs and so introduces fine-grained concurrency. ...