{"title":"Java字节码程序的符号逆向模拟","authors":"Tetsuya Inafune, S. Miura, T. Taketa, Y. Hiranaka","doi":"10.1145/3177457.3177480","DOIUrl":null,"url":null,"abstract":"We present a new method, symbolic backward simulation, for detecting bugs in Java bytecode programs. In order to find bugs comprehensively, the method determines conditions on the input side by tracing back from the tail of the program while performing reverse execution for each bytecode. Generally, reverse execution is difficult, especially for instructions of two-input-one-output operations and branches. Our method solves the problem symbolically with essentially fewer simulation cases than numerical testing and forward symbolic analysis. We also show simulation results which detected a branch condition error and a real number processing error.","PeriodicalId":297531,"journal":{"name":"Proceedings of the 10th International Conference on Computer Modeling and Simulation","volume":"31 1","pages":"0"},"PeriodicalIF":0.0000,"publicationDate":"2018-01-08","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":"1","resultStr":"{\"title\":\"Symbolic backward simulation of Java bytecode program\",\"authors\":\"Tetsuya Inafune, S. Miura, T. Taketa, Y. Hiranaka\",\"doi\":\"10.1145/3177457.3177480\",\"DOIUrl\":null,\"url\":null,\"abstract\":\"We present a new method, symbolic backward simulation, for detecting bugs in Java bytecode programs. In order to find bugs comprehensively, the method determines conditions on the input side by tracing back from the tail of the program while performing reverse execution for each bytecode. Generally, reverse execution is difficult, especially for instructions of two-input-one-output operations and branches. Our method solves the problem symbolically with essentially fewer simulation cases than numerical testing and forward symbolic analysis. We also show simulation results which detected a branch condition error and a real number processing error.\",\"PeriodicalId\":297531,\"journal\":{\"name\":\"Proceedings of the 10th International Conference on Computer Modeling and Simulation\",\"volume\":\"31 1\",\"pages\":\"0\"},\"PeriodicalIF\":0.0000,\"publicationDate\":\"2018-01-08\",\"publicationTypes\":\"Journal Article\",\"fieldsOfStudy\":null,\"isOpenAccess\":false,\"openAccessPdf\":\"\",\"citationCount\":\"1\",\"resultStr\":null,\"platform\":\"Semanticscholar\",\"paperid\":null,\"PeriodicalName\":\"Proceedings of the 10th International Conference on Computer Modeling and Simulation\",\"FirstCategoryId\":\"1085\",\"ListUrlMain\":\"https://doi.org/10.1145/3177457.3177480\",\"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 10th International Conference on Computer Modeling and Simulation","FirstCategoryId":"1085","ListUrlMain":"https://doi.org/10.1145/3177457.3177480","RegionNum":0,"RegionCategory":null,"ArticlePicture":[],"TitleCN":null,"AbstractTextCN":null,"PMCID":null,"EPubDate":"","PubModel":"","JCR":"","JCRName":"","Score":null,"Total":0}
Symbolic backward simulation of Java bytecode program
We present a new method, symbolic backward simulation, for detecting bugs in Java bytecode programs. In order to find bugs comprehensively, the method determines conditions on the input side by tracing back from the tail of the program while performing reverse execution for each bytecode. Generally, reverse execution is difficult, especially for instructions of two-input-one-output operations and branches. Our method solves the problem symbolically with essentially fewer simulation cases than numerical testing and forward symbolic analysis. We also show simulation results which detected a branch condition error and a real number processing error.