I'm an Associate Professor
in the Department of Computer Science at the University of Arizona.
Prior to arriving in Tucson I worked at the University of Auckland, New Zealand, and before that I got my Ph.D.
from Lund University, Sweden. I have also held a visiting position at the Chinese Academy of Sciences in Beijing, China.
My main research interest is computer security, in particular the so-called Man-At-The-End Attack which occurs
in settings where an adversary has physical access to a device and compromises it by tampering with its
hardware or software. My current research focuses on remote man-at-the-end attacks which occur in
distributed systems where untrusted clients are in frequent communication with trusted servers over a
network, and a malicious user can get an advantage by compromising an untrusted device.
Links: DBLP, Google Scholar Teaching: CSc 466/566, CSc 620, CSc 553, CSc 520, CSc 453
Software protection is the branch of computer security that studies techniques for protecting secrets contained in computer programs from being discovered, modified, or redistributed. In this introductory lecture we will show how an adversary can study a program under their control (using disassemblers, decompilers, etc.) in order to extract proprietary information or modify the program, for example in order to bypass a license check. We will discuss important basic software protection algorithms for obfuscation, tamper-proofing, and software watermarking, as well as basic reverse engineering techniques for attacking such protections.