DrPin: A dynamic binary instumentator for multiple processor architectures - Antonioli, Luis Fernando; Pannain, Ricardo; Azevedo, Rodolfo (Anais do Simpósio em Sistemas Computacionais de Alto Desempenho (SSCAD); 2020: Anais do XXI Simpósio em Sistemas Computacionais de Alto DesempenhoDO - 10.5753/wscad.2020.14074, 2020)
Modern applications rely heavily on dynamically loaded shared libraries, making static analysis tools used to debug and understand applications no longer sufﬁcient. As a consequence, dynamic analysis tools are being adopted and integrated into the development and study of modern applications. Building tools that manipulate and instrument binary code at runtime is difﬁcult and error-prone. Because of that, Dynamic Binary Instrumentation (DBI) frameworks have become increasingly popular. Those frameworks provide means of building dynamic binary analysis tools with low effort. Among them, Pin 2 has been by far the most popular and easy to use one. However, since the release of the Linux Kernel 4 series, it became unsupported, and Pin 3 broke backward compatibility. In this work we focus on studying the challenges faced when building a new DBI (DrPin) that seeks to be compatible with Pin 2 API, without the restrictions of Pin 3, that also runs multiple architectures (x86-64, x86, Arm, Aarch64), and on modern Linux systems.