{"status":"ok","message-type":"work","message-version":"1.0.0","message":{"indexed":{"date-parts":[[2026,2,19]],"date-time":"2026-02-19T06:05:17Z","timestamp":1771481117320,"version":"3.50.1"},"publisher-location":"Cham","reference-count":44,"publisher":"Springer International Publishing","isbn-type":[{"value":"9783030220372","type":"print"},{"value":"9783030220389","type":"electronic"}],"license":[{"start":{"date-parts":[[2019,1,1]],"date-time":"2019-01-01T00:00:00Z","timestamp":1546300800000},"content-version":"tdm","delay-in-days":0,"URL":"http:\/\/www.springer.com\/tdm"}],"content-domain":{"domain":["link.springer.com"],"crossmark-restriction":false},"short-container-title":[],"published-print":{"date-parts":[[2019]]},"DOI":"10.1007\/978-3-030-22038-9_14","type":"book-chapter","created":{"date-parts":[[2019,6,9]],"date-time":"2019-06-09T23:02:31Z","timestamp":1560121351000},"page":"288-308","update-policy":"https:\/\/doi.org\/10.1007\/springer_crossmark_policy","source":"Crossref","is-referenced-by-count":22,"title":["TypeMiner: Recovering Types in Binary Programs Using Machine Learning"],"prefix":"10.1007","author":[{"given":"Alwin","family":"Maier","sequence":"first","affiliation":[],"role":[{"role":"author","vocabulary":"crossref"}]},{"given":"Hugo","family":"Gascon","sequence":"additional","affiliation":[],"role":[{"role":"author","vocabulary":"crossref"}]},{"given":"Christian","family":"Wressnegger","sequence":"additional","affiliation":[],"role":[{"role":"author","vocabulary":"crossref"}]},{"given":"Konrad","family":"Rieck","sequence":"additional","affiliation":[],"role":[{"role":"author","vocabulary":"crossref"}]}],"member":"297","published-online":{"date-parts":[[2019,6,6]]},"reference":[{"key":"14_CR1","volume-title":"Compilers Principles, Techniques, and Tools","author":"AV Aho","year":"2006","unstructured":"Aho, A.V., Sethi, R., Ullman, J.D.: Compilers Principles, Techniques, and Tools, 2nd edn. Addison-Wesley, Boston (2006)","edition":"2"},{"key":"14_CR2","doi-asserted-by":"crossref","unstructured":"B\u00f6hme, M., Pham, V.T., Nguyen, M.D., Roychoudhury, A.: Directed greybox fuzzing. In: Proceedings of the ACM Conference on Computer and Communications Security (CCS), pp. 2329\u20132344 (2017)","DOI":"10.1145\/3133956.3134020"},{"key":"14_CR3","unstructured":"Brumley, D., Chiueh, T., Johnson, R., Lin, H., Song, D.X.: RICH: automatically protecting against integer-based vulnerabilities. In: Proceedings of the Network and Distributed System Security Symposium (NDSS) (2007)"},{"key":"14_CR4","doi-asserted-by":"crossref","unstructured":"Caballero, J., Johnson, N.M., McCamant, S., Song, D.: Binary code extraction and interface identification for security applications. In: Proceedings of the Network and Distributed System Security Symposium (NDSS) (2010)","DOI":"10.21236\/ADA538737"},{"key":"14_CR5","doi-asserted-by":"publisher","first-page":"65","DOI":"10.1145\/2896499","volume":"48","author":"J Caballero","year":"2016","unstructured":"Caballero, J., Lin, Z.: Type inference on executables. ACM Comput. Surv. (CSUR) 48, 65 (2016)","journal-title":"ACM Comput. Surv. (CSUR)"},{"key":"14_CR6","doi-asserted-by":"crossref","unstructured":"Checkoway, S., et al.: A systematic analysis of the Juniper Dual EC incident. In: Proceedings of the ACM Conference on Computer and Communications Security (CCS), pp. 468\u2013479 (2016)","DOI":"10.1145\/2976749.2978395"},{"key":"14_CR7","doi-asserted-by":"crossref","unstructured":"Chipounov, V., Kuznetsov, V., Candea, G.: S2E: a platform for in-vivo multi-path analysis of software systems. In: Proceedings of the International Conference on Architectural Support for Programming Languages and Operating Systems (ASPLOS), pp. 265\u2013278 (2011)","DOI":"10.1145\/1950365.1950396"},{"key":"14_CR8","unstructured":"Costin, A., Zaddach, J., Francillon, A., Balzarotti, D.: A large-scale analysis of the security of embedded firmwares. In: Proceedings of the USENIX Security Symposium, pp. 95\u2013110 (2014)"},{"key":"14_CR9","unstructured":"Dewey, D., Giffin, J.: Static detection of C++ vtable escape vulnerabilities in binary code. In: Proceedings of the Network and Distributed System Security Symposium (NDSS) (2012)"},{"key":"14_CR10","unstructured":"Dietz, W., Li, P., Regehr, J., Adve, V.: Understanding integer overflow in C\/C++. In: Proceedings of the International Conference on Software Engineering (ICSE), pp. 760\u2013770 (2012)"},{"key":"14_CR11","doi-asserted-by":"crossref","unstructured":"Fokin, A., Troshina, K., Chernov, A.: Reconstruction of class hierarchies for decompilation of C++ programs. In: European Conference on Software Maintenance and Reengineering (CSMR) (2010)","DOI":"10.1109\/CSMR.2010.43"},{"key":"14_CR12","doi-asserted-by":"crossref","unstructured":"Haller, I., et al.: TypeSan: practical type confusion detection. In: Proceedings of the ACM Conference on Computer and Communications Security (CCS), pp. 517\u2013528 (2016)","DOI":"10.1145\/2976749.2978405"},{"key":"14_CR13","doi-asserted-by":"crossref","unstructured":"Haller, I., Slowinska, A., Bos, H.: MemPick: high-level data structure detection in C\/C++ binaries. In: Proceedings of the Working Conference on Reverse Engineering (WCRE) (2013)","DOI":"10.1109\/WCRE.2013.6671327"},{"key":"14_CR14","unstructured":"Hex-Rays SA: Hex-Rays Decompiler (2017). https:\/\/www.hex-rays.com\/products\/decompiler . Accessed February 2019"},{"key":"14_CR15","unstructured":"Hex-Rays SA: Hex-Rays IDA Disassembler (2017). https:\/\/www.hex-rays.com\/products\/ida . Accessed February 2019"},{"key":"14_CR16","unstructured":"Intel Corporation: Intel\u00ae 64 and IA-32 Architectures Software Developer\u2019s Manual. Intel Corporation (2016)"},{"key":"14_CR17","unstructured":"ISO: Programming languages - C. International Organization for Standardization, Committee Draft (N1570), April 2011"},{"key":"14_CR18","doi-asserted-by":"crossref","unstructured":"Jamrozik, K., Fraser, G., Tillmann, N., de Halleux, J.: Augmented dynamic symbolic execution. In: Proceedings of the International Conference on Automated Software Engineering (ASE), pp. 254\u2013257 (2012)","DOI":"10.1145\/2351676.2351716"},{"key":"14_CR19","doi-asserted-by":"crossref","unstructured":"Jeon, Y., Biswas, P., Carr, S.A., Lee, B., Payer, M.: HexType: efficient detection of type confusion errors for C++. In: Proceedings of the ACM Conference on Computer and Communications Security (CCS), pp. 2373\u20132387 (2017)","DOI":"10.1145\/3133956.3134062"},{"key":"14_CR20","doi-asserted-by":"crossref","unstructured":"Jin, W., et al.: Recovering C++ objects from binaries using inter-procedural data-flow analysis. In: Proceedings of the ACM SIGPLAN Program Protection and Reverse Engineering Workshop (PPREW) (2014)","DOI":"10.1145\/2556464.2556465"},{"key":"14_CR21","doi-asserted-by":"crossref","unstructured":"Joachims, T.: Text categorization with support vector machines: learning with many relevant features. Technical report. 23, LS VIII, University of Dortmund (1997)","DOI":"10.1007\/BFb0026683"},{"key":"14_CR22","doi-asserted-by":"crossref","unstructured":"Joachims, T.: Learning to Classify Text Using Support Vector Machines. Kluwer (2002)","DOI":"10.1007\/978-1-4615-0907-3"},{"key":"14_CR23","doi-asserted-by":"crossref","unstructured":"Jung, C., Clark, N.: DDT: design and evaluation of a dynamic program analysis for optimizing data structure usage. In: Proceedings of the IEEE\/ACM International Symposium on Microarchitecture (MICRO) (2009)","DOI":"10.1145\/1669112.1669122"},{"key":"14_CR24","doi-asserted-by":"crossref","unstructured":"Katz, O., El-Yaniv, R., Yahav, E.: Estimating types in binaries using predictive modeling. In: Proceedings of the ACM SIGPLAN-SIGACT Symposium on Principles of Programming Languages (POPL), pp. 313\u2013326 (2016)","DOI":"10.1145\/2914770.2837674"},{"key":"14_CR25","unstructured":"Lee, B., Song, C., Kim, T., Lee, W.: Type casting verification: stopping an emerging attack vector. In: Proceedings of the USENIX Security Symposium, pp. 81\u201396 (2015)"},{"key":"14_CR26","unstructured":"Lee, J., Avgerinos, T., Brumley, D.: TIE: principled reverse engineering of types in binary programs. In: Proceedings of the Network and Distributed System Security Symposium (NDSS) (2011)"},{"key":"14_CR27","unstructured":"Lin, Z., Zhang, X., Xu, D.: Automatic reverse engineering of data structures from binary execution. In: Proceedings of the Network and Distributed System Security Symposium (NDSS) (2010)"},{"key":"14_CR28","doi-asserted-by":"crossref","unstructured":"Noonan, M., Loginov, A., Cok, D.: Polymorphic type inference for machine code. In: Proceedings of the ACM SIGPLAN International Conference on Programming Languages Design and Implementation (PLDI) (2016)","DOI":"10.1145\/2908080.2908119"},{"key":"14_CR29","doi-asserted-by":"crossref","unstructured":"Pawlowski, A., et al.: MARX: uncovering class hierarchies in C++ programs. In: Proceedings of the Network and Distributed System Security Symposium (NDSS) (2017)","DOI":"10.14722\/ndss.2017.23096"},{"key":"14_CR30","doi-asserted-by":"crossref","unstructured":"Petsios, T., Tang, A., Stolfo, S., Keromytis, A.D., Jana, S.: Nezha: efficient domain-independent differential testing. In: Proceedings of the IEEE Symposium on Security and Privacy, pp. 615\u2013632 (2017)","DOI":"10.1109\/SP.2017.27"},{"key":"14_CR31","doi-asserted-by":"crossref","unstructured":"Prakashm, A., Hu, X., Yin, H.: vfGuard: strict protection for virtual function calls in COTS C++ binaries. In: Proceedings of the Network and Distributed System Security Symposium (NDSS) (2015)","DOI":"10.14722\/ndss.2015.23297"},{"key":"14_CR32","unstructured":"Ramos, D.A., Engler, D.: Under-constrained symbolic execution: correctness checking for real code. In: Proceedings of the USENIX Security Symposium, pp. 49\u201364 (2015)"},{"key":"14_CR33","doi-asserted-by":"crossref","unstructured":"Rawat, S., Jain, V., Kumar, A., Cojocar, L., Giuffrida, C., Bos, H.: VUzzer: application-aware evolutionary fuzzing. In: Proceedings of the Network and Distributed System Security Symposium (NDSS) (2017)","DOI":"10.14722\/ndss.2017.23404"},{"key":"14_CR34","doi-asserted-by":"crossref","unstructured":"Rupprecht, T., Chen, X., White, D.H., Boockmann, J.H., L\u00fcttgen, G., Bos, H.: DSIbin: identifying dynamic data structures in C\/C++ binaries. In: Proceedings of the International Conference on Automated Software Engineering (ASE) (2017)","DOI":"10.1109\/ASE.2017.8115646"},{"issue":"11","key":"14_CR35","doi-asserted-by":"publisher","first-page":"613","DOI":"10.1145\/361219.361220","volume":"18","author":"G Salton","year":"1975","unstructured":"Salton, G., Wong, A., Yang, C.S.: A vector space model for automatic indexing. Commun. ACM 18(11), 613\u2013620 (1975)","journal-title":"Commun. ACM"},{"key":"14_CR36","unstructured":"Schumilo, S., Aschermann, C., Gawlik, R., Schinzel, S., Holz, T.: kAFL: hardware-assisted feedback fuzzing for OS kernels. In: Proceedings of the USENIX Security Symposium, pp. 167\u2013182 (2017)"},{"key":"14_CR37","unstructured":"Slowinska, A., Stancescu, T., Bos, H.: Howard: a dynamic excavator for reverse engineering data structures. In: Proceedings of the Network and Distributed System Security Symposium (NDSS) (2011)"},{"key":"14_CR38","doi-asserted-by":"crossref","unstructured":"Stephens, N.D., et al.: Driller: augmenting fuzzing through selective symbolic execution. In: Proceedings of the Network and Distributed System Security Symposium (NDSS) (2016)","DOI":"10.14722\/ndss.2016.23368"},{"key":"14_CR39","volume-title":"C Programming FAQs: Frequently Asked Questions","author":"S Summit","year":"1996","unstructured":"Summit, S.: C Programming FAQs: Frequently Asked Questions. Addison-Wesley, Boston (1996)"},{"key":"14_CR40","unstructured":"Wang, T., Wei, T., Lin, Z., Zou, W.: IntScope: automatically detecting integer overflow vulnerability in X86 binary using symbolic execution. In: Proceedings of the Network and Distributed System Security Symposium (NDSS) (2009)"},{"key":"14_CR41","unstructured":"Wang, X., Chen, H., Jia, Z., Zeldovich, N., Kaashoek, M.F.: Improving integer security for systems with KINT. In: Proceedings of the USENIX Symposium on Operating Systems Design and Implementation (OSDI), pp. 163\u2013177 (2012)"},{"key":"14_CR42","doi-asserted-by":"crossref","unstructured":"White, D.H., Rupprecht, T., L\u00fcttgen, G.: DSI: an evidence-based approach to identify dynamic data structures in C programs. In: Proceedings of the International Symposium on Software Testing and Analysis (ISSTA) (2016)","DOI":"10.1145\/2931037.2931071"},{"key":"14_CR43","doi-asserted-by":"crossref","unstructured":"Wressnegger, C., Yamaguchi, F., Maier, A., Rieck, K.: Twice the bits, twice the trouble: vulnerabilities induced by migrating to 64-bit platforms. In: Proceedings of the ACM Conference on Computer and Communications Security (CCS), pp. 541\u2013552, October 2016","DOI":"10.1145\/2976749.2978403"},{"key":"14_CR44","doi-asserted-by":"crossref","unstructured":"Zhang, C., Songz, C., Chen, K.Z., Cheny, Z., Song, D.: VTint: protecting virtual function tables\u2019 integrity. In: Proceedings of the Network and Distributed System Security Symposium (NDSS) (2015)","DOI":"10.14722\/ndss.2015.23099"}],"container-title":["Lecture Notes in Computer Science","Detection of Intrusions and Malware, and Vulnerability Assessment"],"original-title":[],"language":"en","link":[{"URL":"http:\/\/link.springer.com\/content\/pdf\/10.1007\/978-3-030-22038-9_14","content-type":"unspecified","content-version":"vor","intended-application":"similarity-checking"}],"deposited":{"date-parts":[[2022,9,20]],"date-time":"2022-09-20T01:15:49Z","timestamp":1663636549000},"score":1,"resource":{"primary":{"URL":"http:\/\/link.springer.com\/10.1007\/978-3-030-22038-9_14"}},"subtitle":[],"short-title":[],"issued":{"date-parts":[[2019]]},"ISBN":["9783030220372","9783030220389"],"references-count":44,"URL":"https:\/\/doi.org\/10.1007\/978-3-030-22038-9_14","relation":{},"ISSN":["0302-9743","1611-3349"],"issn-type":[{"value":"0302-9743","type":"print"},{"value":"1611-3349","type":"electronic"}],"subject":[],"published":{"date-parts":[[2019]]},"assertion":[{"value":"6 June 2019","order":1,"name":"first_online","label":"First Online","group":{"name":"ChapterHistory","label":"Chapter History"}},{"value":"DIMVA","order":1,"name":"conference_acronym","label":"Conference Acronym","group":{"name":"ConferenceInfo","label":"Conference Information"}},{"value":"International Conference on Detection of Intrusions and Malware, and Vulnerability Assessment","order":2,"name":"conference_name","label":"Conference Name","group":{"name":"ConferenceInfo","label":"Conference Information"}},{"value":"Gothenburg","order":3,"name":"conference_city","label":"Conference City","group":{"name":"ConferenceInfo","label":"Conference Information"}},{"value":"Sweden","order":4,"name":"conference_country","label":"Conference Country","group":{"name":"ConferenceInfo","label":"Conference Information"}},{"value":"2019","order":5,"name":"conference_year","label":"Conference Year","group":{"name":"ConferenceInfo","label":"Conference Information"}},{"value":"19 June 2019","order":7,"name":"conference_start_date","label":"Conference Start Date","group":{"name":"ConferenceInfo","label":"Conference Information"}},{"value":"20 June 2019","order":8,"name":"conference_end_date","label":"Conference End Date","group":{"name":"ConferenceInfo","label":"Conference Information"}},{"value":"16","order":9,"name":"conference_number","label":"Conference Number","group":{"name":"ConferenceInfo","label":"Conference Information"}},{"value":"dimva2019","order":10,"name":"conference_id","label":"Conference ID","group":{"name":"ConferenceInfo","label":"Conference Information"}},{"value":"https:\/\/www.dimva2019.org\/","order":11,"name":"conference_url","label":"Conference URL","group":{"name":"ConferenceInfo","label":"Conference Information"}},{"value":"Double-blind","order":1,"name":"type","label":"Type","group":{"name":"ConfEventPeerReviewInformation","label":"Peer Review Information"}},{"value":"dimca2019.hotcrp.com","order":2,"name":"conference_management_system","label":"Conference Management System","group":{"name":"ConfEventPeerReviewInformation","label":"Peer Review Information"}},{"value":"80","order":3,"name":"number_of_submissions_sent_for_review","label":"Number of Submissions Sent for Review","group":{"name":"ConfEventPeerReviewInformation","label":"Peer Review Information"}},{"value":"23","order":4,"name":"number_of_full_papers_accepted","label":"Number of Full Papers Accepted","group":{"name":"ConfEventPeerReviewInformation","label":"Peer Review Information"}},{"value":"0","order":5,"name":"number_of_short_papers_accepted","label":"Number of Short Papers Accepted","group":{"name":"ConfEventPeerReviewInformation","label":"Peer Review Information"}},{"value":"29% - The value is computed by the equation \"Number of Full Papers Accepted \/ Number of Submissions Sent for Review * 100\" and then rounded to a whole number.","order":6,"name":"acceptance_rate_of_full_papers","label":"Acceptance Rate of Full Papers","group":{"name":"ConfEventPeerReviewInformation","label":"Peer Review Information"}},{"value":"3","order":7,"name":"average_number_of_reviews_per_paper","label":"Average Number of Reviews per Paper","group":{"name":"ConfEventPeerReviewInformation","label":"Peer Review Information"}},{"value":"6","order":8,"name":"average_number_of_papers_per_reviewer","label":"Average Number of Papers per Reviewer","group":{"name":"ConfEventPeerReviewInformation","label":"Peer Review Information"}},{"value":"Yes","order":9,"name":"external_reviewers_involved","label":"External Reviewers Involved","group":{"name":"ConfEventPeerReviewInformation","label":"Peer Review Information"}}]}}