Christophe Foket

dblp:128/6842 · DBLP profile ↗
← Back
3ranked-venue papers
2as first author
0since 2021 · last 2020
0000-0002-4414-8483ORCID · corroborated

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

Systems, architecture and hardware · 1Security and privacy · 1 · 1 first-authorSoftware engineering, systems software and programming languages · 1 · 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.

Computer architecture, parallel and distributed computing, and storage systems
1 paper
GPUs and heterogeneous computing · 100%
Software engineering, system software, and programming languages
2 papers
Compilers and program optimization · 69% Programming languages and type systems · 31%
Network and information security
1 paper
Systems and software security · 100%

Topics — the 4 heaviest of 5, each with the papers that count most for it

TopicWeightPapersLastEvidence papers
Compilers and program optimization › accelerator compilation
GPU compiler
0.412019
Effective Extensible Programming: Unleashing Julia on GPUs · IEEE Trans. Parallel Distributed Syst. 2019
GPUs and heterogeneous computing
GPU programming
0.412019
Effective Extensible Programming: Unleashing Julia on GPUs · IEEE Trans. Parallel Distributed Syst. 2019
GPUs and heterogeneous computing › GPU programming
high-level language compilation
0.412019
Effective Extensible Programming: Unleashing Julia on GPUs · IEEE Trans. Parallel Distributed Syst. 2019
Systems and software security › software protection
code obfuscation
0.212014
Pushing Java Type Obfuscation to the Limit · IEEE Trans. Dependable Secur. Comput. 2014

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

compiler infrastructure · 0.8object factory insertion · 0.4interface merging · 0.4class hierarchy flattening · 0.4
YearPublicationVenuePosition
2020 Effective and efficient Java-type obfuscation
abstract
Summary To protect valuable assets embedded in software against reverse‐engineering attacks, software obfuscations aim at raising the apparent complexity of programs and at removing information that is useful for attackers. In this work, we propose to combine five transformations that obfuscate the type hierarchy of Java applications and eliminate much of the type information that can be inferred from the Java bytecode. We rely on some existing algorithms, present adaptations, and introduce new algorithms for some of the transformations, which are all made available in an open‐source prototype implementation ready for take‐up. We present an extensive experimental evaluation on benchmarks of real‐world complexity, using complementary metrics that cover the protection strength against both human and tool‐based reverse‐engineering attack methods. The results indicate that the obfuscation is effective as well as much more efficient than the previous state of the art. For the first time, this makes these obfuscations practically viable in real‐world deployment scenarios.
Christophe Foket, Koen De Bosschere, Bjorn De Sutter
Softw. Pract. Exp.1
2019 Effective Extensible Programming: Unleashing Julia on GPUs
abstract
GPUs and other accelerators are popular devices for accelerating compute-intensive, parallelizable applications. However, programming these devices is a difficult task. Writing efficient device code is challenging, and is typically done in a low-level programming language. High-level languages are rarely supported, or do not integrate with the rest of the high-level language ecosystem. To overcome this, we propose compiler infrastructure to efficiently add support for new hardware or environments to an existing programming language. We evaluate our approach by adding support for NVIDIA GPUs to the Julia programming language. By integrating with the existing compiler, we significantly lower the cost to implement and maintain the new compiler, and facilitate reuse of existing application code. Moreover, use of the high-level Julia programming language enables new and dynamic approaches for GPU programming. This greatly improves programmer productivity, while maintaining application performance similar to that of the official NVIDIA CUDA toolkit.
Tim Besard, Christophe Foket, Bjorn De Sutter
IEEE Trans. Parallel Distributed Syst.2
2014 Pushing Java Type Obfuscation to the Limit
abstract
Bytecoded .Net and Java programs reveal type information through encoded type hierarchies, casts, field declarations and method signatures. This facilitates bytecode verification, but it also helps reverse engineers. To obfuscate the type information, we combine three transformations. Class hierarchy flattening removes as much of the type hierarchy from programs as possible. Interface merging and object factory insertion further remove type information from casts, method signatures, and object creation sites. We evaluate these techniques with a prototype tool for Java bytecode. On real-life programs from the DaCapo benchmark suite, we demonstrate that our approach effectively hinders human and tool analysis with limited overhead.
Christophe Foket, Bjorn De Sutter, Koen De Bosschere
IEEE Trans. Dependable Secur. Comput.1