{"status":"ok","message-type":"work","message-version":"1.0.0","message":{"indexed":{"date-parts":[[2026,3,27]],"date-time":"2026-03-27T02:36:56Z","timestamp":1774579016703,"version":"3.50.1"},"publisher-location":"New York, NY, USA","reference-count":50,"publisher":"ACM","license":[{"start":{"date-parts":[[2017,7,10]],"date-time":"2017-07-10T00:00:00Z","timestamp":1499644800000},"content-version":"vor","delay-in-days":0,"URL":"https:\/\/www.acm.org\/publications\/policies\/copyright_policy#Background"}],"content-domain":{"domain":["dl.acm.org"],"crossmark-restriction":true},"short-container-title":[],"published-print":{"date-parts":[[2017,7,10]]},"DOI":"10.1145\/3092703.3092729","type":"proceedings-article","created":{"date-parts":[[2017,7,11]],"date-time":"2017-07-11T20:17:18Z","timestamp":1499804238000},"page":"329-340","update-policy":"https:\/\/doi.org\/10.1145\/crossmark-policy","source":"Crossref","is-referenced-by-count":27,"title":["Boosting the precision of virtual call integrity protection with partial pointer analysis for C++"],"prefix":"10.1145","author":[{"given":"Xiaokang","family":"Fan","sequence":"first","affiliation":[{"name":"UNSW, Australia"}]},{"given":"Yulei","family":"Sui","sequence":"additional","affiliation":[{"name":"UNSW, Australia"}]},{"given":"Xiangke","family":"Liao","sequence":"additional","affiliation":[{"name":"National University of Defense Technology, China"}]},{"given":"Jingling","family":"Xue","sequence":"additional","affiliation":[{"name":"UNSW, Australia"}]}],"member":"320","published-online":{"date-parts":[[2017,7,10]]},"reference":[{"key":"e_1_3_2_1_1_1","unstructured":"C++ specification. http:\/\/www.open-std.org\/jtc1\/sc22\/wg21\/docs\/ papers\/2012\/n3337.pdf.  C++ specification. http:\/\/www.open-std.org\/jtc1\/sc22\/wg21\/docs\/ papers\/2012\/n3337.pdf."},{"key":"e_1_3_2_1_2_1","unstructured":"Clang: Control flow integrity design documentation. http:\/\/clang.llvm. org\/docs\/ControlFlowIntegrityDesign.html.  Clang: Control flow integrity design documentation. http:\/\/clang.llvm. org\/docs\/ControlFlowIntegrityDesign.html."},{"key":"e_1_3_2_1_3_1","unstructured":"MicroSoft data execution prevention. https:\/\/support.microsoft.com\/ en-au\/kb\/875352.  MicroSoft data execution prevention. https:\/\/support.microsoft.com\/ en-au\/kb\/875352."},{"key":"e_1_3_2_1_4_1","unstructured":"PaX. https:\/\/pax.grsecurity.net\/docs\/aslr.txt.  PaX. https:\/\/pax.grsecurity.net\/docs\/aslr.txt."},{"key":"e_1_3_2_1_5_1","unstructured":"Wirple BMark HTML5 3D benchmark. https:\/\/www.wirple.com\/ bmark\/.  Wirple BMark HTML5 3D benchmark. https:\/\/www.wirple.com\/ bmark\/."},{"key":"e_1_3_2_1_6_1","doi-asserted-by":"publisher","DOI":"10.1145\/1102120.1102165"},{"key":"e_1_3_2_1_7_1","unstructured":"Apple. Sunspider 1.0.2 javascript benchmark suite. Apple. https: \/\/webkit.org\/perf\/sunspider\/sunspider.html.  Apple. Sunspider 1.0.2 javascript benchmark suite. Apple. https: \/\/webkit.org\/perf\/sunspider\/sunspider.html."},{"key":"e_1_3_2_1_8_1","doi-asserted-by":"crossref","unstructured":"George Balatsouras and Yannis Smaragdakis. 2016. Structure-sensitive Points-to analysis for C and C++. In SAS \u201916. 84\u2013104.  George Balatsouras and Yannis Smaragdakis. 2016. Structure-sensitive Points-to analysis for C and C++. In SAS \u201916. 84\u2013104.","DOI":"10.1007\/978-3-662-53413-7_5"},{"key":"e_1_3_2_1_9_1","doi-asserted-by":"crossref","unstructured":"Dimitar Bounov R Kici and Sorin Lerner. 2016. Protecting C++ dynamic dispatch through vtable interleaving. In NDSS \u201916.  Dimitar Bounov R Kici and Sorin Lerner. 2016. Protecting C++ dynamic dispatch through vtable interleaving. In NDSS \u201916.","DOI":"10.14722\/ndss.2016.23421"},{"key":"e_1_3_2_1_10_1","unstructured":"BrowserBench. JetStream JavaScript performance test suite. Browser-Bench. http:\/\/browserbench.org\/JetStream\/.  BrowserBench. JetStream JavaScript performance test suite. Browser-Bench. http:\/\/browserbench.org\/JetStream\/."},{"key":"e_1_3_2_1_11_1","unstructured":"Crispan Cowan Calton Pu Dave Maier Jonathan Walpole Peat Bakke Steve Beattie Aaron Grier Perry Wagle Qian Zhang and Heather Hinton. 1998. StackGuard: Automatic Adaptive Detection and Prevention of Buffer-Overflow Attacks.. In USENIX Security \u201998. 63\u201378.   Crispan Cowan Calton Pu Dave Maier Jonathan Walpole Peat Bakke Steve Beattie Aaron Grier Perry Wagle Qian Zhang and Heather Hinton. 1998. StackGuard: Automatic Adaptive Detection and Prevention of Buffer-Overflow Attacks.. In USENIX Security \u201998. 63\u201378."},{"key":"e_1_3_2_1_12_1","volume-title":"ECOOP \u201995","author":"Dean Jeffrey","unstructured":"Jeffrey Dean , David Grove , and Craig Chambers . 1995. Optimization of object-oriented programs using static class hierarchy analysis . In ECOOP \u201995 . Springer , 77\u2013101. Jeffrey Dean, David Grove, and Craig Chambers. 1995. Optimization of object-oriented programs using static class hierarchy analysis. In ECOOP \u201995. Springer, 77\u2013101."},{"key":"e_1_3_2_1_13_1","doi-asserted-by":"publisher","DOI":"10.1145\/2509136.2509550"},{"key":"e_1_3_2_1_14_1","unstructured":"FutureMark. Peacekeeper: HTML5 browser speed test. FutureMark. http:\/\/peacekeeper.futuremark.com\/.  FutureMark. Peacekeeper: HTML5 browser speed test. FutureMark. http:\/\/peacekeeper.futuremark.com\/."},{"key":"e_1_3_2_1_15_1","doi-asserted-by":"publisher","DOI":"10.1145\/2664243.2664249"},{"key":"e_1_3_2_1_16_1","unstructured":"Google. Octane JavaScript benchmark suite. Google. https:\/\/developers. google.com\/octane\/.  Google. Octane JavaScript benchmark suite. Google. https:\/\/developers. google.com\/octane\/."},{"key":"e_1_3_2_1_17_1","doi-asserted-by":"publisher","DOI":"10.1145\/2818000.2818025"},{"key":"e_1_3_2_1_18_1","doi-asserted-by":"publisher","DOI":"10.1145\/1250734.1250767"},{"key":"e_1_3_2_1_19_1","doi-asserted-by":"crossref","unstructured":"Ben Hardekopf and Calvin Lin. 2011. Flow-sensitive pointer analysis for millions of lines of code. In CGO \u201911. 289\u2013298.   Ben Hardekopf and Calvin Lin. 2011. Flow-sensitive pointer analysis for millions of lines of code. In CGO \u201911. 289\u2013298.","DOI":"10.1109\/CGO.2011.5764696"},{"key":"e_1_3_2_1_20_1","unstructured":"ISO90. 1990. ISO\/IEC. international standard ISO\/IEC 9899 programming languages - C.  ISO90. 1990. ISO\/IEC. international standard ISO\/IEC 9899 programming languages - C."},{"key":"e_1_3_2_1_21_1","doi-asserted-by":"crossref","unstructured":"Dongseok Jang Zachary Tatlock and Sorin Lerner. 2014. SafeDispatch: securing C++ virtual calls from memory corruption attacks. In NDSS \u201914.  Dongseok Jang Zachary Tatlock and Sorin Lerner. 2014. SafeDispatch: securing C++ virtual calls from memory corruption attacks. In NDSS \u201914.","DOI":"10.14722\/ndss.2014.23287"},{"key":"e_1_3_2_1_22_1","unstructured":"Volodymyr Kuznetsov L\u00e1szl\u00f3 Szekeres Mathias Payer George Candea R Sekar and Dawn Song. 2014. Code-pointer integrity. In OSDI \u201914. 147\u2013163.   Volodymyr Kuznetsov L\u00e1szl\u00f3 Szekeres Mathias Payer George Candea R Sekar and Dawn Song. 2014. Code-pointer integrity. In OSDI \u201914. 147\u2013163."},{"key":"e_1_3_2_1_23_1","doi-asserted-by":"publisher","DOI":"10.1145\/1250734.1250766"},{"key":"e_1_3_2_1_24_1","unstructured":"Julian Lettner Benjamin Kollenda Andrei Homescu Per Larsen Felix Schuster Lucas Davi Ahmad-Reza Sadeghi Thorsten Holz and Michael Franz. 2016. Subversive-C: Abusing and protecting dynamic message dispatch. In USENIX ATC \u201916. 209\u2013221.   Julian Lettner Benjamin Kollenda Andrei Homescu Per Larsen Felix Schuster Lucas Davi Ahmad-Reza Sadeghi Thorsten Holz and Michael Franz. 2016. Subversive-C: Abusing and protecting dynamic message dispatch. In USENIX ATC \u201916. 209\u2013221."},{"key":"e_1_3_2_1_25_1","doi-asserted-by":"publisher","DOI":"10.1145\/1926385.1926389"},{"key":"e_1_3_2_1_26_1","doi-asserted-by":"publisher","DOI":"10.1145\/2025113.2025160"},{"key":"e_1_3_2_1_27_1","unstructured":"Microsoft. LiteBrite: HTML CSS and JavaScript Performance Benchmark. Microsoft. https:\/\/testdrive-archive.azurewebsites.net\/ Performance\/LiteBrite\/.  Microsoft. LiteBrite: HTML CSS and JavaScript Performance Benchmark. Microsoft. https:\/\/testdrive-archive.azurewebsites.net\/ Performance\/LiteBrite\/."},{"key":"e_1_3_2_1_28_1","unstructured":"Mozilla. Dromaeo JavaScript performance test suite. Mozilla. http: \/\/dromaeo.com\/.  Mozilla. Dromaeo JavaScript performance test suite. Mozilla. http: \/\/dromaeo.com\/."},{"key":"e_1_3_2_1_29_1","unstructured":"Mozilla. Kraken 1.1 Javascript benchmark suite. Mozilla. http:\/\/ krakenbenchmark.mozilla.org\/.  Mozilla. Kraken 1.1 Javascript benchmark suite. Mozilla. http:\/\/ krakenbenchmark.mozilla.org\/."},{"key":"e_1_3_2_1_30_1","doi-asserted-by":"publisher","DOI":"10.1145\/1542476.1542504"},{"key":"e_1_3_2_1_31_1","doi-asserted-by":"publisher","DOI":"10.1145\/1806651.1806657"},{"key":"e_1_3_2_1_32_1","doi-asserted-by":"publisher","DOI":"10.1145\/1065887.1065892"},{"key":"e_1_3_2_1_33_1","doi-asserted-by":"publisher","DOI":"10.1145\/2810103.2813644"},{"key":"e_1_3_2_1_34_1","doi-asserted-by":"publisher","DOI":"10.1016\/0020-0190(94)90047-7"},{"key":"e_1_3_2_1_35_1","doi-asserted-by":"publisher","DOI":"10.1145\/1290520.1290524"},{"key":"e_1_3_2_1_36_1","doi-asserted-by":"crossref","unstructured":"Aravind Prakash Xunchao Hu and Heng Yin. 2015. vfGuard: Strict protection for virtual function calls in COTS C++ binaries. In NDSS \u201915.  Aravind Prakash Xunchao Hu and Heng Yin. 2015. vfGuard: Strict protection for virtual function calls in COTS C++ binaries. In NDSS \u201915.","DOI":"10.14722\/ndss.2015.23297"},{"key":"e_1_3_2_1_37_1","doi-asserted-by":"publisher","DOI":"10.1109\/SP.2015.51"},{"key":"e_1_3_2_1_38_1","doi-asserted-by":"publisher","DOI":"10.1145\/2907950.2907957"},{"key":"e_1_3_2_1_39_1","doi-asserted-by":"publisher","DOI":"10.1109\/CGO.2013.6494978"},{"key":"e_1_3_2_1_40_1","doi-asserted-by":"publisher","DOI":"10.1145\/2950290.2950296"},{"key":"e_1_3_2_1_41_1","doi-asserted-by":"publisher","DOI":"10.1145\/2892208.2892235"},{"key":"e_1_3_2_1_42_1","doi-asserted-by":"publisher","DOI":"10.1145\/2338965.2336784"},{"key":"e_1_3_2_1_43_1","doi-asserted-by":"publisher","DOI":"10.1109\/TSE.2014.2302311"},{"key":"e_1_3_2_1_44_1","doi-asserted-by":"publisher","DOI":"10.1007\/978-3-642-25318-8_14"},{"key":"e_1_3_2_1_45_1","volume-title":"GNU Tools Cauldron Workshop.","author":"Tice Caroline","year":"2012","unstructured":"Caroline Tice . 2012 . Improving function pointer security for virtual method dispatches . In GNU Tools Cauldron Workshop. Caroline Tice. 2012. Improving function pointer security for virtual method dispatches. In GNU Tools Cauldron Workshop."},{"key":"e_1_3_2_1_46_1","volume-title":"Enforcing forwardedge control-flow integrity in GCC &amp","author":"Tice Caroline","unstructured":"Caroline Tice , Tom Roeder , Peter Collingbourne , Stephen Checkoway , \u00dalfar Erlingsson , Luis Lozano , and Geoff Pike . 2014. Enforcing forwardedge control-flow integrity in GCC &amp ; LLVM. In USENIX Security \u201914. 941\u2013955. Caroline Tice, Tom Roeder, Peter Collingbourne, Stephen Checkoway, \u00dalfar Erlingsson, Luis Lozano, and Geoff Pike. 2014. Enforcing forwardedge control-flow integrity in GCC &amp; LLVM. In USENIX Security \u201914. 941\u2013955."},{"key":"e_1_3_2_1_47_1","volume-title":"July","author":"van der Veen Victor","year":"2017","unstructured":"Victor van der Veen , Enes G\u00f6ktas , Moritz Contag , Andre Pawlowski , Xi Chen , Sanjay Rawat , Herbert Bos , Thorsten Holz , Elias Athanasopoulos , and Cristiano Giuffrida . 2016. A tough call: Mitigating ISSTA\u201917 , July 2017 , Santa Barbara, CA , USA Xiaokang Fan, Yulei Sui, Xiangke Liao, and Jingling Xue advanced code-reuse attacks at the binary level. In S &amp;P \u201916. 934\u2013953. Victor van der Veen, Enes G\u00f6ktas, Moritz Contag, Andre Pawlowski, Xi Chen, Sanjay Rawat, Herbert Bos, Thorsten Holz, Elias Athanasopoulos, and Cristiano Giuffrida. 2016. A tough call: Mitigating ISSTA\u201917, July 2017, Santa Barbara, CA, USA Xiaokang Fan, Yulei Sui, Xiangke Liao, and Jingling Xue advanced code-reuse attacks at the binary level. In S&amp;P \u201916. 934\u2013953."},{"key":"e_1_3_2_1_48_1","volume-title":"SAS \u201914","author":"Ye Sen","unstructured":"Sen Ye , Yulei Sui , and Jingling Xue . 2014. Region-based selective flow-sensitive pointer analysis . In SAS \u201914 . Springer , 319\u2013336. Sen Ye, Yulei Sui, and Jingling Xue. 2014. Region-based selective flow-sensitive pointer analysis. In SAS \u201914. Springer, 319\u2013336."},{"key":"e_1_3_2_1_49_1","doi-asserted-by":"publisher","DOI":"10.1145\/1772954.1772985"},{"key":"e_1_3_2_1_50_1","doi-asserted-by":"crossref","unstructured":"Chao Zhang Scott A Carr Tongxin Li Yu Ding Chengyu Song Mathias Payer and Dawn Song. 2016. VTrust: Regaining trust on virtual calls. In NDSS \u201916.  Chao Zhang Scott A Carr Tongxin Li Yu Ding Chengyu Song Mathias Payer and Dawn Song. 2016. VTrust: Regaining trust on virtual calls. In NDSS \u201916.","DOI":"10.14722\/ndss.2016.23164"}],"event":{"name":"ISSTA '17: International Symposium on Software Testing and Analysis","location":"Santa Barbara CA USA","acronym":"ISSTA '17","sponsor":["SIGSOFT ACM Special Interest Group on Software Engineering"]},"container-title":["Proceedings of the 26th ACM SIGSOFT International Symposium on Software Testing and Analysis"],"original-title":[],"link":[{"URL":"https:\/\/dl.acm.org\/doi\/10.1145\/3092703.3092729","content-type":"unspecified","content-version":"vor","intended-application":"text-mining"},{"URL":"https:\/\/dl.acm.org\/doi\/pdf\/10.1145\/3092703.3092729","content-type":"unspecified","content-version":"vor","intended-application":"similarity-checking"}],"deposited":{"date-parts":[[2025,6,18]],"date-time":"2025-06-18T03:37:27Z","timestamp":1750217847000},"score":1,"resource":{"primary":{"URL":"https:\/\/dl.acm.org\/doi\/10.1145\/3092703.3092729"}},"subtitle":[],"short-title":[],"issued":{"date-parts":[[2017,7,10]]},"references-count":50,"alternative-id":["10.1145\/3092703.3092729","10.1145\/3092703"],"URL":"https:\/\/doi.org\/10.1145\/3092703.3092729","relation":{},"subject":[],"published":{"date-parts":[[2017,7,10]]},"assertion":[{"value":"2017-07-10","order":2,"name":"published","label":"Published","group":{"name":"publication_history","label":"Publication History"}}]}}