Demonstration venue · read-only. Every page can be browsed; the buttons that would change it are switched off. Create an account to run TaxoReview on your own data.

David Williams-King

dblp:68/8270 · DBLP profile ↗
← Back
10ranked-venue papers
3as first author
4since 2021 · last 2025
0000-0003-2447-4094ORCID · corroborated

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

Software engineering, systems software and programming languages · 4 · 2 first-author · 1 since 2021Human-computer interaction and ubiquitous computing · 3 · 1 first-author · 2 since 2021Systems, architecture and hardware · 2 · 1 first-authorSecurity and privacy · 2 · 1 since 2021Graphics, computer vision, multimedia, augmented reality and games · 2 · 2 since 2021

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
4 papers
Program analysis · 80% Compilers and program optimization · 20%
Network and information security
3 papers
Systems and software security · 100%

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

TopicWeightPapersLastEvidence papers
Program analysis
binary analysis
1.132021
XDA: Accurate, Robust Disassembly with Transfer Learning · NDSS 2021
Egalito: Layout-Agnostic Binary Recompilation · ASPLOS 2020
StateFormer: fine-grained type recovery from binaries using generative state modeling · ESEC/SIGSOFT FSE 2021
Program analysis › binary analysis
disassembly
0.922021
XDA: Accurate, Robust Disassembly with Transfer Learning · NDSS 2021
Egalito: Layout-Agnostic Binary Recompilation · ASPLOS 2020
Systems and software security
binary analysis
0.512021
StateFormer: fine-grained type recovery from binaries using generative state modeling · ESEC/SIGSOFT FSE 2021
Systems and software security › binary analysis
binary type recovery
0.512021
StateFormer: fine-grained type recovery from binaries using generative state modeling · ESEC/SIGSOFT FSE 2021
Compilers and program optimization
recompilation
0.412020
Egalito: Layout-Agnostic Binary Recompilation · ASPLOS 2020
Systems and software security
code randomization
0.422020
Shuffler: Fast and Deployable Continuous Code Re-Randomization · OSDI 2016
Egalito: Layout-Agnostic Binary Recompilation · ASPLOS 2020
Compilers and program optimization
code generation
0.112016
Shuffler: Fast and Deployable Continuous Code Re-Randomization · OSDI 2016

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

neural network · 1.0generative state modeling · 1.0intermediate representation · 0.9binary rewriting · 0.9transfer learning · 0.5
YearPublicationVenuePosition
2025 Time-Series Grid Encoding of Eye-Tracking Data for Explainable AI in Dyslexia Detection
Linh Le, Quoc Toan Nguyen, Nghia Duong-Trung, David Williams-King
ETRA4
2025 Learning Disorder Detection Using Eye Tracking: Are Large Language Models Better Than Machine Learning?
abstract
Learning Disorder Detection Using Eye Tracking: Are Large Language Models Better Than Machine Learning?
Quoc-Toan Nguyen, Hy Nguyen, Quang-Hieu Tang, Tien Truong, Van-Tuan Pham, Linh Le, David Williams-King
ETRA7
2021 XDA: Accurate, Robust Disassembly with Transfer Learning
Kexin Pei, Jonas Guan, David Williams-King, Suman Jana
NDSS3
2021 StateFormer: fine-grained type recovery from binaries using generative state modeling
abstract
Binary type inference is a critical reverse engineering task supporting many security applications, including vulnerability analysis, binary hardening, forensics, and decompilation. It is a difficult task because source-level type information is often stripped during compilation, leaving only binaries with untyped memory and register accesses. Existing approaches rely on hand-coded type inference rules defined by domain experts, which are brittle and require nontrivial effort to maintain and update. Even though machine learning approaches have shown promise at automatically learning the inference rules, their accuracy is still low, especially for optimized binaries.
Kexin Pei, Jonas Guan, Matthew Broughton, Zhongtian Chen, Songchen Yao, David Williams-King, Vikas Ummadisetty, Baishakhi Ray, Suman Jana
ESEC/SIGSOFT FSE6
2020 Egalito: Layout-Agnostic Binary Recompilation
abstract
For comprehensive analysis of all executable code, and fast turn-around time for transformations, it is essential to operate directly on binaries to enable profiling, security hardening, and architectural adaptation. Disassembling binaries is difficult, and prior work relies on a process virtual machine to translate references on the fly or inefficient binary code patching. Our Egalito recompiler leverages metadata present in current stripped x86_64 and ARM64 binaries to generate a complete disassembly, and allows arbitrary modifications that may affect program layout without any constraints from the original binary. We utilize our own layout-agnostic intermediate representation, which is low-level enough to make the regeneration of output code predictable, yet supports a dual high-level representation for sophisticated analysis. We demonstrate nine binary tools including a novel continuous code randomization technique where Egalito transforms itself, and software emulation of the control-flow integrity in upcoming hardware. We evaluated Egalito on a large set of Debian packages, completely analyzing 99.9% of a selection of 867 executables and libraries; a majority of 149 applicable Debian packages pass all tests under Egalito. On SPEC CPU 2006, thanks to our binary optimizations, Egalito actually observes a 1.7% performance speedup.
David Williams-King, Hidenori Kobayashi, Kent Williams-King, Graham Patterson, Frank Spano, Yu Jian Wu, Vasileios P. Kemerlis
ASPLOS1
2019 Nibbler: debloating binary shared libraries
abstract
Developers today have access to an arsenal of toolkits and libraries for rapid application prototyping. However, when an application loads a library, the entirety of that library's code is mapped into the address space, even if only a single function is actually needed. The unused portion is bloat that can negatively impact software defenses by unnecessarily inflating their overhead or increasing their attack surface. Recent work has explored debloating as a way of alleviating the above problems, when source code is available. In this paper, we investigate whether debloating is possible and practical at the binary level. To this end, we present Nibbler: a system that identifies and erases unused functions within shared libraries. Nibbler works in tandem with defenses like continuous code re-randomization and control-flow integrity, enhancing them without incurring additional run-time overhead. We developed and tested a prototype of Nibbler on x86-64 Linux; Nibbler reduces the size of shared libraries and the number of available functions, for real-world binaries and the SPEC CINT2006 suite, by up to 56% and 82%, respectively. We also demonstrate that Nibbler benefits defenses by showing that: (i) it improves the deployability of a continuous re-randomization system for binaries, namely Shuffler, by increasing its efficiency by 20%, and (ii) it improves certain fast, but coarse and context-insensitive control-flow integrity schemes by reducing the number of gadgets reachable through returns and indirect calls by 75% and 49% on average.
Ioannis Agadakos, David Williams-King, Vasileios P. Kemerlis, Georgios Portokalidis
ACSAC3
2016 Shuffler: Fast and Deployable Continuous Code Re-Randomization
David Williams-King, Graham Gobieski, Kent Williams-King, James P. Blake, Xinhao Yuan, Patrick Colp, Michelle Zheng, Vasileios P. Kemerlis, William Aiello
OSDI1
2015 Making lock-free data structures verifiable with artificial transactions
abstract
Among all classes of parallel programming abstractions, lock-free data structures are considered one of the most scalable and efficient thanks to their fine-grained style of synchronization. However, they are also challenging for developers and tools to verify because of the huge number of possible interleavings that result from fine-grained synchronizations.
Xinhao Yuan, David Williams-King, Simha Sethumadhavan
PLOS@SOSP2
2013 Tolerating business failures in hosted applications
abstract
Users of hosted web-based applications implicitly trust that those applications, and the data that is within them, will remain active and available indefinitely into the future. When a service is terminated, for reasons such as the insolvency of the business that is providing it, users risk the immediate loss of software functionality and may face the permanent loss of their own data. This paper presents Micasa, a runtime for hosted applications that allows a significant subset of application logic and user data to remain available even in the event of the failure of a provider's business. By allowing users to audit application dependence on hosted components, and maintain externalized and private copies of their own data and the logic that allows access to it, we believe that Micasa is a first step in the direction of a more balanced degree of trust and investment between application providers and their users.
Jean-Sébastien Légaré, Dutch T. Meyer, Mark Spear, Alexandru Totolici, Sara Bainbridge, Kalan MacRow, Róbert Sumi, Quinlan Jung, Dennis Tjandra, David Williams-King, William Aiello, Andy Warfield
SoCC10
2010 Enbug: when debuggers go bad
abstract
We have developed a tool, enbug, that intentionally induces errors into software in a controlled fashion. The robustness of students' code can be challenged by presenting exotic failure scenarios for testing, without Herculean efforts on the part of teaching assistants or instructors. Enbug also has applications in computer security and secure software courses, by being able to inject specific flaws into existing software for students to locate and exploit. The implementation of enbug is an example of tool reuse, through the automated (ab)use of a debugger.
David Williams-King, John Aycock, Daniel Medeiros Nunes de Castro
ITiCSE1