GREGORY J. DUCK


Δ Info

Gregory J. Duck
Research Assistant Professor
National University of Singapore
Office: COM2-03-33
Email:

Δ Bio

Gregory is a Research Assistant Professor at the National University of Singapore.

Previously, Gregory received his BSc (Mathematics), BEng (Software) and Phd (Computer Science) from the University of Melbourne. From 2011 Gregory works at the National University of Singapore.

Gregory's research interests include: systems, security, binary rewriting, fuzzing, repair, and programming languages.

Δ Projects

  • EnvFuzz: A binary fuzzer that can fuzz just about anything (GUI/network/editors/compilers/etc.)
  • BlueFat: Strong and compatible memory safety with Fully Randomized Pointers (FRP).
  • RedFat: A binary hardening system for the x86_64.
    • libredfat: A hardened malloc() replacement.
  • E9Patch: A powerful static binary rewriter.
    • E9Syscall: System call hooking using static binary rewriting.
    • E9AFL: Binary fuzzing using AFL.
  • EffectiveSan: Type and memory error detection using dynamically typed C/C++
  • LowFat - Lean program hardening with low-fat pointers.

Δ Publications

Publications:

  • Ruijie Meng, Gregory J. Duck, Abhik Roychoudhury, Program Environment Fuzzing, Computer and Communications Security (CCS), 2024, [github] [abstract]
  • Dylan Wolff, Shi Zheng, Gregory J. Duck, Umang Mathur, Abhik Roychoudhury, Greybox Fuzzing for Concurrency Testing, Architectural Support for Programming Languages and Operating Systems (ASPLOS), 2024
  • Ridwan Shariffdeen, Yannic Noller, Martin Mirchev, Haifeng Ruan, Xiang Gao, Andreea Costea, Gregory J. Duck, Abhik Roychoudhury, Program Repair Competition 2024, Workshop on Automated Program Repair (APR), 2024
  • Jinsheng Ba, Gregory J. Duck, Abhik Roychoudhury, Efficient Greybox Fuzzing to Detect Memory Errors, Automated Software Engineering (ASE), 2022 [github]
    ★ ACM SIGSOFT Distinguished Paper Award ★
  • Yuancheng Jiang, Gregory J. Duck, Roland H. C. Yap, Zhenkai Liang, Pinghai Yuan, Extensible Virtual Call Integrity, European Symposium on Research in Computer Security (ESORICS), 2022
  • Yuntong Zhang, Xiang Gao, Gregory J. Duck, Abhik Roychoudhury, Program Vulnerability Repair via Inductive Inference, International Symposium on Software Testing and Analysis (ISSTA), 2022 [github]
  • Gregory J. Duck, Yuntong Zhang, Roland H. C. Yap, Hardening Binaries against More Memory Errors, European Conference on Computer Systems (EuroSys), 2022 [github] [download] [abstract]
  • Xiang Gao, Gregory J. Duck, Abhik Roychoudhury, Scalable Fuzzing of Program Binaries with E9AFL, Automated Software Engineering (ASE), 2021 [tool paper] [github] [download] [abstract]
  • Ridwan Shariffdeen, Xiang Gao, Gregory J. Duck, Shin Hwei Tan, Julia Lawall, Abhik Roychoudhury, Automated Patch Backporting in Linux (Experience Paper), International Symposium on Software Testing and Analysis (ISSTA), 2021 [github]
    ★ ISSTA 2021 Distingluished Artifact Award ★
  • Xiang Gao, Bo Wang, Gregory J. Duck, Ruyi Ji, Yingfei Xiong, Abhik Roychoudhury, Beyond Tests: Program Vulnerability Repair via Crash Constraint Extraction, Transactions on Software Engineering and Methodology (TOSEM), 2021
  • Gregory J. Duck, Xiang Gao, Abhik Roychoudhury, Binary Rewriting without Control Flow Recovery, Programming Language Design and Implementation (PLDI), 2020 [github] [download] [abstract]
  • Gregory J. Duck, Joxan Jaffar, and Roland H. C. Yap, Shape Neutral Analysis of Graph-based Data-structures, International Conference on Logic Programming (ICLP), Theory and Practice of Logic Programming (TPLP), 2018, [abstract]
  • Gregory J. Duck, Roland H. C. Yap, EffectiveSan: Type and Memory Error Detection using Dynamically Typed C/C++, Programming Language Design and Implementation (PLDI), 2018, [github] [download] [abstract]
  • Gregory J. Duck, Roland H. C. Yap, Lorenzo Cavallaro, Stack Bounds Protection with Low Fat Pointers, Network and Distributed System Security Symposium (NDSS), 2017 [github] [abstract]
  • Gregory J. Duck, Roland H. C. Yap, Heap Bounds Protection with Low Fat Pointers, Compiler Construction (CC), 2016 [github] [abstract]
  • Gregory J. Duck, Rémy Haemmerlé and Martin Sulzmann, On Termination, Confluence and Consistent CHR-based Type Inference, International Conference on Logic Programming (ICLP), Theory and Practice of Logic Programming (TPLP), 2014 [abstract]
  • Gregory J. Duck, Joxan Jaffar, Nicolas C. H. Koh, Constraint-based Program Reasoning with Heaps and Separation, Constraint Programming (CP), 2013 [github] [abstract]
  • Gregory J. Duck, Satisfiability Modulo Constraint Handling Rules (Extended Abstract), International Joint Conference on Artificial Intelligence (IJCAI), 2013 [github] [abstract]
  • Gregory J. Duck, SMCHR: Satisfiability Modulo Constraint Handling Rules, International Conference on Logic Programming (ICLP), Theory and Practice of Logic Programming (TPLP), 2012. [github] [abstract]
    ★ ICLP 2012 Best Paper Award ★
  • Leslie De Koninck, Gregory J. Duck, and Peter J. Stuckey. Demand-driven normalisation for ACD term rewriting, International Conference on Logic Programming (ICLP), 2009.
  • Gregory J. Duck, Peter J. Stuckey, Leslie De Koninck, Cadmium: An Implementation of ACD Term Rewriting, International Conference on Logic Programming (ICLP), 2008. [github]
  • Leslie De Koninck, Peter J. Stuckey, and Gregory J. Duck, Optimizing compilation of CHR with rule priorities, Symposium on Functional and Logic Programming (FLOPS), 2008.
  • Sebastian Brand, Gregory J. Duck, Jakob Puchinger, and Peter J. Stuckey, Flexible, Rule-based Constraint Model Linearisation, Practical Aspects of Declarative Languages (PADL), 2008.
  • Martin Sulzmann, Gregory J. Duck, Simon Peyton-Jones, Peter J. Stuckey, Understanding Functional Dependencies via Constraint Handling Rules, Journal of Functional Programming, 2007.
  • Gregory J. Duck, Peter J. Stuckey, and Martin Sulzmann, Observable Confluence for Constraint Handling Rules, International Conference on Logic Programming (ICLP), 2007.
  • Nicholas Nethercote, Peter J. Stuckey, Ralph Becket, Sebastian Brand, Gregory J. Duck and Guido Tack. MiniZinc: Towards a Standard CP Modelling Language, Constraint Programming (CP), 2007.
  • Tom Schrijvers, Bart Demoen, Gregory J. Duck, Peter J. Stuckey, Thom W. Frühwirth, Automatic Implication Checking for CHR Constraints, Electronic Notes in Theoretical Computer Science, 2006
  • Gregory J. Duck, Peter J. Stuckey, Sebastian Brand, ACD Term Rewriting, International Conference on Logic Programming (ICLP), 2006. [github]
  • Gregory J. Duck, Compilation of Constraint Handling Rules, 2005. [PhD thesis]
  • Tom Schrijvers, Peter J. Stuckey, Gregory J. Duck, Abstract Interpretation for Constraint Handling Rules, Principles and Practice of Declarative Programming (PPDP), 2005
  • Christian Holzbaur, Maria Garcia de la Banda, Peter J. Stuckey, and Gregory J. Duck. Optimizing Compilation of Constraint Handling Rules in HAL, Special Issue of Theory and Practice of Logic Programming on Constraint Handling Rules, 2004.
  • Gregory J. Duck, Maria Garcia de la Banda, Peter J. Stuckey. Compiling Ask Constraints, International Conference on Logic Programming (ICLP), 2004.
  • Gregory J. Duck, Peter J. Stuckey, Maria Garcia de la Banda, Christian Holzbaur. The Refined Operational Semantics of Constraint Handling Rules, International Conference on Logic Programming (ICLP), 2004.
    ★ ICLP 2014 Test of Time Award (10 Years) ★
  • Gregory J. Duck, Simon Peyton Jones, Peter J. Stuckey, and Martin Sulzmann. Sound and Decidable Type Inference for Functional Dependencies, European Symposium on Programming (ESOP), 2004.
  • Gregory J. Duck, Peter J. Stuckey, Maria Garcia de la Banda, and Christian Holzbaur. Extending Arbitrary Solvers with Constraint Handling Rules, Principles and Practice of Declarative Programming (PPDP), 2003.

Other:


© Copyright 2024