Hello there, I am Chinmay! I am a GPU Compiler Engineer working at AMD.
I received my PhD in Computer Science from the University of California Irvine in 2024. I worked with Prof. Michael Franz on improving the state-of-the-art in binary recompilation. Recompilation involves translating, or “lifting”, binary programs (without source access) to LLVM IR with the goal of leveraging the existing compiler ecosystem to transform and optimize them. My research involved tackling challenges relating to the lifting and recompilation of multithreaded binary programs, and the recovery of stack-based program variables in LLVM IR. Our prototype is by far the best recompiler - in terms of compatibility, robustness, and performance of generated output - out there.
My primary interests lie broadly in the area of software systems, compilers, program and binary analysis. More generally, I love hacking on low-level code - be it reverse engineering binaries or writing code generation passes as part of a compiler. I also have experience in the topics of software security, both offensive and defensive, formal verification, and deep learning.
2024 - I defended my PhD Dissertation titled - “Practical Recompilation of Multithreaded Binaries: Choreographing Static and Dynamic Techniques”.
2023 - I interned with the Vulnerability Discovery and Mitigations Research Group as a part of Qualcomm’s Product Security Team (QPSI) to find memory corruption vulnerabilities in kernel-mode driver binaries using symbolic execution. I found interesting taint flows using symbolic execution that led to the discovery of multiple critical bugs. I worked with Dr. Nilo Redini and Murali Somanchy.
2022 - I passed my candidacy examination. My talk described techniques for recovery of semantics from binary code with a focus on recompilation.
2021 - I interned with the Automated Reasoning Group at Amazon Web Services. I worked with the Kani Verifier (then RMC) team on research and development of a verification-friendly vector stub for the Rust standard library. The focus was to improve proof performance by providing a hierarchy of vector abstractions. I had the pleasure of working with Dr. Nathan Chong and Dr. Daniel Schwartz-Narbonne.
2020 - I was an intern with the folks over at Vector35 working on User-Informed Dataflow for BinaryNinja. I was primarily working with Peter LaFosse and Ryan Snyder. What an amazing experience it was !
What You Trace is What You Get: Dynamic Stack-Layout Recovery for Binary Recompilation
Fabian Parzefall, Chinmay Deshpande, Felicitas Hetzelt, and Michael Franz
29th ACM International Conference on Architectural Support for Programming Languages and Operating Systems (ASPLOS ‘24)
[paper]
Polynima - Practical Hybrid Recompilation for Multithreaded Binaries
Chinmay Deshpande, Fabian Parzefall, Felicitas Hetzelt, and Michael Franz
19th European Conference on Computer Systems (EuroSys ‘24).
[paper]
StackBERT: Machine Learning Assisted Static Stack Frame Size Recovery on Stripped and Optimized Binaries
Chinmay Deshpande, David Gens, and Michael Franz
14th ACM Workshop on Artificial Intelligence and Security (AISec ‘21) @ Conference on Computer and Communications Security (CCS)
[paper] [code]
I grew up in मुंबई (Mumbai), India enjoying torrential rains and playing (mostly underarm) Cricket. I completed my undergraduate degree at NITK Surathkal after which I spent a couple of years in rosy ಬೆಂಗಳೂರು (Bengaluru). Irvine, CA was my home during the PhD and holds a special place in my heart.
I am quite passionate about music. My interests are quite varied and range from Classical 80s Bollywood to Melodic Death Metal. I also enjoy playing the guitar. Favorite artists (to listen and play): Opeth, John Mayer, and The Local Train.
I have spent countless hours flaming n00bs and smashing my keyboard in rage while playing Dota2. I wonder if that time is now behind me…