{"title":"ProExtor:为程序漏洞检测挖掘API协议","authors":"Huijia Ye, Juwei Rao, Yang Shi, Zhihua Li","doi":"10.1145/3503047.3503100","DOIUrl":null,"url":null,"abstract":"API protocols play an important role in program verification, testing, evolution and other phases of the software development process. Many approaches have been proposed to mine API protocols automatically from programs. However, few tools are available, especially dynamical API protocol mining tools. In this paper, we present a dynamical API protocol mining tool for Java programs: ProExtor. Our tool mines API protocols in an online mode based on the instrumentation technique of Java agent. For each class, it produces two models: a probabilistic model and a deterministic model. The probabilistic model will be evolved persistently when more application programs are fed for mining. The deterministic model is transformed from the latest probabilistic model, which can be used for program verification, testing, evolution, etc. Both models can be visualized with the software Graphviz. We elaborate design and implementation details of our tool and an application to a real-world program. We believe our work is a good reference for the development of similar tools.","PeriodicalId":190604,"journal":{"name":"Proceedings of the 3rd International Conference on Advanced Information Science and System","volume":"26 1","pages":"0"},"PeriodicalIF":0.0000,"publicationDate":"2021-11-26","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":"0","resultStr":"{\"title\":\"ProExtor: Mining API Protocols for Program Vulnerability Detection\",\"authors\":\"Huijia Ye, Juwei Rao, Yang Shi, Zhihua Li\",\"doi\":\"10.1145/3503047.3503100\",\"DOIUrl\":null,\"url\":null,\"abstract\":\"API protocols play an important role in program verification, testing, evolution and other phases of the software development process. Many approaches have been proposed to mine API protocols automatically from programs. However, few tools are available, especially dynamical API protocol mining tools. In this paper, we present a dynamical API protocol mining tool for Java programs: ProExtor. Our tool mines API protocols in an online mode based on the instrumentation technique of Java agent. For each class, it produces two models: a probabilistic model and a deterministic model. The probabilistic model will be evolved persistently when more application programs are fed for mining. The deterministic model is transformed from the latest probabilistic model, which can be used for program verification, testing, evolution, etc. Both models can be visualized with the software Graphviz. We elaborate design and implementation details of our tool and an application to a real-world program. We believe our work is a good reference for the development of similar tools.\",\"PeriodicalId\":190604,\"journal\":{\"name\":\"Proceedings of the 3rd International Conference on Advanced Information Science and System\",\"volume\":\"26 1\",\"pages\":\"0\"},\"PeriodicalIF\":0.0000,\"publicationDate\":\"2021-11-26\",\"publicationTypes\":\"Journal Article\",\"fieldsOfStudy\":null,\"isOpenAccess\":false,\"openAccessPdf\":\"\",\"citationCount\":\"0\",\"resultStr\":null,\"platform\":\"Semanticscholar\",\"paperid\":null,\"PeriodicalName\":\"Proceedings of the 3rd International Conference on Advanced Information Science and System\",\"FirstCategoryId\":\"1085\",\"ListUrlMain\":\"https://doi.org/10.1145/3503047.3503100\",\"RegionNum\":0,\"RegionCategory\":null,\"ArticlePicture\":[],\"TitleCN\":null,\"AbstractTextCN\":null,\"PMCID\":null,\"EPubDate\":\"\",\"PubModel\":\"\",\"JCR\":\"\",\"JCRName\":\"\",\"Score\":null,\"Total\":0}","platform":"Semanticscholar","paperid":null,"PeriodicalName":"Proceedings of the 3rd International Conference on Advanced Information Science and System","FirstCategoryId":"1085","ListUrlMain":"https://doi.org/10.1145/3503047.3503100","RegionNum":0,"RegionCategory":null,"ArticlePicture":[],"TitleCN":null,"AbstractTextCN":null,"PMCID":null,"EPubDate":"","PubModel":"","JCR":"","JCRName":"","Score":null,"Total":0}
ProExtor: Mining API Protocols for Program Vulnerability Detection
API protocols play an important role in program verification, testing, evolution and other phases of the software development process. Many approaches have been proposed to mine API protocols automatically from programs. However, few tools are available, especially dynamical API protocol mining tools. In this paper, we present a dynamical API protocol mining tool for Java programs: ProExtor. Our tool mines API protocols in an online mode based on the instrumentation technique of Java agent. For each class, it produces two models: a probabilistic model and a deterministic model. The probabilistic model will be evolved persistently when more application programs are fed for mining. The deterministic model is transformed from the latest probabilistic model, which can be used for program verification, testing, evolution, etc. Both models can be visualized with the software Graphviz. We elaborate design and implementation details of our tool and an application to a real-world program. We believe our work is a good reference for the development of similar tools.