{"title":"自动修复剥离的可执行文件与CFG显微手术","authors":"Scott E Friedman, D. Musliner","doi":"10.1109/SASOW.2015.21","DOIUrl":null,"url":null,"abstract":"BINSURGEON is a binary rewriting system that enhances stripped binary executables with repairs, defenses, and additional functionality. This involves making space-consuming changes to the program's control flow graph (CFG), recomputing instruction content, and relocating instructions, all while preserving functionality in the remainder of the program's control flow. BINSURGEON uses extendable rewrite templates that enable other systems to specify and parameterize program modifications, which allows BINSURGEON to be a fully-automatic component of a larger system. In this paper, we describe BINSURGEON in the context of the FUZZBOMB automated program analysis and repair system. We outline BIN Surgeon's general binary rewriting algorithm for modifying CFGs according to FUZZ Bomb's rewrite templates. We also review some of FUZZ Bomb's rewrite templates to demonstrate the diverse repair and defense strategies -- including stack protection, heap protection, CFI, pointer-checking, and more -- that are implemented by BINSURGEON to harden and repair vulnerable binaries.","PeriodicalId":384469,"journal":{"name":"2015 IEEE International Conference on Self-Adaptive and Self-Organizing Systems Workshops","volume":"1 1","pages":"0"},"PeriodicalIF":0.0000,"publicationDate":"2015-09-21","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":"5","resultStr":"{\"title\":\"Automatically Repairing Stripped Executables with CFG Microsurgery\",\"authors\":\"Scott E Friedman, D. Musliner\",\"doi\":\"10.1109/SASOW.2015.21\",\"DOIUrl\":null,\"url\":null,\"abstract\":\"BINSURGEON is a binary rewriting system that enhances stripped binary executables with repairs, defenses, and additional functionality. This involves making space-consuming changes to the program's control flow graph (CFG), recomputing instruction content, and relocating instructions, all while preserving functionality in the remainder of the program's control flow. BINSURGEON uses extendable rewrite templates that enable other systems to specify and parameterize program modifications, which allows BINSURGEON to be a fully-automatic component of a larger system. In this paper, we describe BINSURGEON in the context of the FUZZBOMB automated program analysis and repair system. We outline BIN Surgeon's general binary rewriting algorithm for modifying CFGs according to FUZZ Bomb's rewrite templates. We also review some of FUZZ Bomb's rewrite templates to demonstrate the diverse repair and defense strategies -- including stack protection, heap protection, CFI, pointer-checking, and more -- that are implemented by BINSURGEON to harden and repair vulnerable binaries.\",\"PeriodicalId\":384469,\"journal\":{\"name\":\"2015 IEEE International Conference on Self-Adaptive and Self-Organizing Systems Workshops\",\"volume\":\"1 1\",\"pages\":\"0\"},\"PeriodicalIF\":0.0000,\"publicationDate\":\"2015-09-21\",\"publicationTypes\":\"Journal Article\",\"fieldsOfStudy\":null,\"isOpenAccess\":false,\"openAccessPdf\":\"\",\"citationCount\":\"5\",\"resultStr\":null,\"platform\":\"Semanticscholar\",\"paperid\":null,\"PeriodicalName\":\"2015 IEEE International Conference on Self-Adaptive and Self-Organizing Systems Workshops\",\"FirstCategoryId\":\"1085\",\"ListUrlMain\":\"https://doi.org/10.1109/SASOW.2015.21\",\"RegionNum\":0,\"RegionCategory\":null,\"ArticlePicture\":[],\"TitleCN\":null,\"AbstractTextCN\":null,\"PMCID\":null,\"EPubDate\":\"\",\"PubModel\":\"\",\"JCR\":\"\",\"JCRName\":\"\",\"Score\":null,\"Total\":0}","platform":"Semanticscholar","paperid":null,"PeriodicalName":"2015 IEEE International Conference on Self-Adaptive and Self-Organizing Systems Workshops","FirstCategoryId":"1085","ListUrlMain":"https://doi.org/10.1109/SASOW.2015.21","RegionNum":0,"RegionCategory":null,"ArticlePicture":[],"TitleCN":null,"AbstractTextCN":null,"PMCID":null,"EPubDate":"","PubModel":"","JCR":"","JCRName":"","Score":null,"Total":0}
Automatically Repairing Stripped Executables with CFG Microsurgery
BINSURGEON is a binary rewriting system that enhances stripped binary executables with repairs, defenses, and additional functionality. This involves making space-consuming changes to the program's control flow graph (CFG), recomputing instruction content, and relocating instructions, all while preserving functionality in the remainder of the program's control flow. BINSURGEON uses extendable rewrite templates that enable other systems to specify and parameterize program modifications, which allows BINSURGEON to be a fully-automatic component of a larger system. In this paper, we describe BINSURGEON in the context of the FUZZBOMB automated program analysis and repair system. We outline BIN Surgeon's general binary rewriting algorithm for modifying CFGs according to FUZZ Bomb's rewrite templates. We also review some of FUZZ Bomb's rewrite templates to demonstrate the diverse repair and defense strategies -- including stack protection, heap protection, CFI, pointer-checking, and more -- that are implemented by BINSURGEON to harden and repair vulnerable binaries.