Submitted in partial fulfillment of the requirements for the degree of Doctor of Philosophy in Computer Science in the Graduate School of
Binghamton University State University of New York, – Binghamton University, Binghamton, 2020. - 151 p.
Traditional software development favors a one-size-fits-all mentality which results in software with incremental complexity and packed with often unused features creating powerful resources for attacks as well as obstacles for defenses: critical gadgets for code-reuse attacks, add complexity for analysis, vulnerabilities for crafting and escalating exploits, etc.