{"status":"ok","message-type":"work","message-version":"1.0.0","message":{"indexed":{"date-parts":[[2026,10,8]],"date-time":"2026-10-08T11:34:55Z","timestamp":1791459295334,"version":"4.3.4"},"reference-count":57,"publisher":"Association for Computing Machinery (ACM)","issue":"OOPSLA","license":[{"start":{"date-parts":[[2020,11,13]],"date-time":"2020-11-13T00:00:00Z","timestamp":1605225600000},"content-version":"vor","delay-in-days":0,"URL":"https:\/\/creativecommons.org\/licenses\/by-nc-sa\/4.0\/"}],"funder":[{"name":"Israel Ministry of Science and Technology","award":["3-9779"],"award-info":[{"award-number":["3-9779"]}]}],"content-domain":{"domain":["dl.acm.org"],"crossmark-restriction":true},"short-container-title":["Proc. ACM Program. Lang."],"published-print":{"date-parts":[[2020,11,13]]},"abstract":"<jats:p>We address the problem of reverse engineering of stripped executables, which contain no debug information. This is a challenging problem because of the low amount of syntactic information available in stripped executables, and the diverse assembly code patterns arising from compiler optimizations. We present a novel approach for predicting procedure names in stripped executables. Our approach combines static analysis with neural models. The main idea is to use static analysis to obtain augmented representations of call sites; encode the structure of these call sites using the control-flow graph (CFG) and finally, generate a target name while attending to these call sites. We use our representation to drive graph-based, LSTM-based and Transformer-based architectures. Our evaluation shows that our models produce predictions that are difficult and time consuming for humans, while improving on existing methods by 28% and by 100% over state-of-the-art neural textual models that do not use any static analysis. Code and data for this evaluation are available at https:\/\/github.com\/tech-srl\/Nero.<\/jats:p>","DOI":"10.1145\/3428293","type":"journal-article","created":{"date-parts":[[2020,11,24]],"date-time":"2020-11-24T23:40:14Z","timestamp":1606261214000},"page":"1-28","update-policy":"https:\/\/doi.org\/10.1145\/crossmark-policy","source":"Crossref","is-referenced-by-count":77,"title":["Neural reverse engineering of stripped binaries using augmented control flow graphs"],"prefix":"10.1145","volume":"4","author":[{"given":"Yaniv","family":"David","sequence":"first","affiliation":[{"name":"Technion, Israel"}],"role":[{"vocabulary":"crossref","role":"author"}]},{"given":"Uri","family":"Alon","sequence":"additional","affiliation":[{"name":"Technion, Israel"}],"role":[{"vocabulary":"crossref","role":"author"}]},{"given":"Eran","family":"Yahav","sequence":"additional","affiliation":[{"name":"Technion, Israel"}],"role":[{"vocabulary":"crossref","role":"author"}]}],"member":"320","published-online":{"date-parts":[[2020,11,13]]},"reference":[{"key":"e_1_2_2_1_1","volume-title":"The Adverse Efects of Code Duplication in Machine Learning Models of Code. arXiv preprint arXiv","author":"Allamanis Miltiadis","year":"1812"},{"key":"e_1_2_2_2_1","doi-asserted-by":"publisher","DOI":"10.1145\/2786805.2786849"},{"key":"e_1_2_2_3_1","unstructured":"Miltiadis Allamanis Marc Brockschmidt and Mahmoud Khademi. 2018. Learning to Represent Programs with Graphs. In ICLR.  Miltiadis Allamanis Marc Brockschmidt and Mahmoud Khademi. 2018. Learning to Represent Programs with Graphs. In ICLR."},{"key":"e_1_2_2_4_1","volume-title":"Proceedings of the 33nd International Conference on Machine Learning, ICML 2016","author":"Allamanis Miltiadis","year":"2016"},{"key":"e_1_2_2_5_1","first-page":"2123","volume-title":"Proceedings of the 32nd International Conference on International Conference on Machine Learning-Volume 37 (ICML'15)","author":"Allamanis Miltiadis","year":"2015"},{"key":"e_1_2_2_6_1","volume-title":"International Conference on Learning Representations. https:\/\/openreview.net\/forum?id=H1gKYo09tX","author":"Alon Uri","year":"2019"},{"key":"e_1_2_2_7_1","volume-title":"Structural Language Models for Any-Code Generation. arXiv preprint arXiv","author":"Alon Uri","year":"1910"},{"key":"e_1_2_2_8_1","doi-asserted-by":"publisher","DOI":"10.1145\/3192366.3192412"},{"key":"e_1_2_2_9_1","doi-asserted-by":"publisher","DOI":"10.1145\/3290353"},{"key":"e_1_2_2_10_1","unstructured":"Dzmitry Bahdanau Kyunghyun Cho and Yoshua Bengio. 2014. Neural Machine Translation by Jointly Learning to Align and Translate. CoRR abs\/1409.0473 ( 2014 ). http:\/\/arxiv.org\/abs\/1409.0473  Dzmitry Bahdanau Kyunghyun Cho and Yoshua Bengio. 2014. Neural Machine Translation by Jointly Learning to Align and Translate. CoRR abs\/1409.0473 ( 2014 ). http:\/\/arxiv.org\/abs\/1409.0473"},{"key":"e_1_2_2_11_1","volume-title":"Proceedings of the 23rd USENIX Security Symposium ( 2014 ), 845-860","author":"Bao Tifany","year":"2014"},{"key":"e_1_2_2_12_1","volume-title":"Context2Name: A deep learning-based approach to infer natural variable names from usage contexts. arXiv preprint arXiv","author":"Bavishi Rohan","year":"1809"},{"key":"e_1_2_2_13_1","volume-title":"Proceedings of the 33nd International Conference on Machine Learning, ICML 2016","author":"Bielik Pavol","year":"2016"},{"key":"e_1_2_2_14_1","volume-title":"Generative Code Modeling with Graphs. In International Conference on Learning Representations. https:\/\/openreview.net\/forum?id=Bke4KsA5FX","author":"Brockschmidt Marc","year":"2019"},{"key":"e_1_2_2_15_1","doi-asserted-by":"publisher","DOI":"10.1109\/ICASSP.2018.8462105"},{"key":"e_1_2_2_16_1","volume-title":"Caglar Gulcehre, Dzmitry Bahdanau, Fethi Bougares, Holger Schwenk, and Yoshua Bengio.","author":"Cho Kyunghyun","year":"2014"},{"key":"e_1_2_2_17_1","doi-asserted-by":"publisher","DOI":"10.1145\/3062341.3062387"},{"key":"e_1_2_2_18_1","doi-asserted-by":"publisher","DOI":"10.1145\/3236024.3236059"},{"key":"e_1_2_2_19_1","volume-title":"Proceedings of the 2019 Conference of the North American Chapter of the Association for Computational Linguistics: Human Language Technologies","volume":"1","author":"Devlin Jacob","year":"2019"},{"key":"e_1_2_2_20_1","volume-title":"Benjamin C M Fung, and Philippe Charland","author":"Ding Steven H H","year":"2019"},{"key":"e_1_2_2_21_1","unstructured":"R. Edmonds. 2006. PolyUnpack : Automating the Hidden-Code Extraction of.  R. Edmonds. 2006. PolyUnpack : Automating the Hidden-Code Extraction of."},{"key":"e_1_2_2_22_1","volume-title":"Structured Neural Summarization. In International Conference on Learning Representations. https:\/\/openreview.net\/forum?id=H1ersoRqtm","author":"Fernandes Patrick","year":"2019"},{"key":"e_1_2_2_23_1","volume-title":"Refactoring: Improving the Design of Existing Code","author":"Fowler Martin","year":"1999"},{"key":"e_1_2_2_24_1","doi-asserted-by":"publisher","DOI":"10.1145\/3243734.3243866"},{"key":"e_1_2_2_25_1","doi-asserted-by":"publisher","DOI":"10.1162\/neco.1997.9.8.1735"},{"key":"e_1_2_2_26_1","doi-asserted-by":"publisher","DOI":"10.1007\/978-3-642-03013-0_14"},{"key":"e_1_2_2_27_1","unstructured":"Intel. [n. d.]. Linux64-abi LINUXABI. https:\/\/software.intel.com\/sites\/default\/files\/article\/402129\/mpx-linux64-abi.pdf.  Intel. [n. d.]. Linux64-abi LINUXABI. https:\/\/software.intel.com\/sites\/default\/files\/article\/402129\/mpx-linux64-abi.pdf."},{"key":"e_1_2_2_28_1","doi-asserted-by":"publisher","DOI":"10.18653\/v1\/D18-1192"},{"key":"e_1_2_2_29_1","doi-asserted-by":"publisher","DOI":"10.1145\/2024569.2024571"},{"key":"e_1_2_2_30_1","doi-asserted-by":"publisher","DOI":"10.1145\/3173162.3173202"},{"key":"e_1_2_2_31_1","volume-title":"Adam: A method for stochastic optimization. arXiv preprint arXiv:1412.6980 ( 2014 ).","author":"Kingma Diederik","year":"2014"},{"key":"e_1_2_2_32_1","unstructured":"Thomas Kipf and Max Welling. 2017. Semi-Supervised Classification with Graph Convolutional Networks. In ICLR.  Thomas Kipf and Max Welling. 2017. Semi-Supervised Classification with Graph Convolutional Networks. In ICLR."},{"key":"e_1_2_2_33_1","volume-title":"Graham Neubig, and Bogdan Vasilescu.","author":"Lacomis Jeremy","year":"2019"},{"key":"e_1_2_2_34_1","volume-title":"TIE: Principled reverse engineering of types in binary programs. ( 2011 ).","author":"Lee JongHyup","year":"2011"},{"key":"e_1_2_2_35_1","doi-asserted-by":"publisher","DOI":"10.1145\/3133908"},{"key":"e_1_2_2_36_1","unstructured":"Yanxin Lu Swarat Chaudhuri Chris Jermaine and David Melski. 2017. Data-Driven Program Completion. CoRR abs\/1705.09042 ( 2017 ). arXiv: 1705.09042 http:\/\/arxiv.org\/abs\/1705.09042  Yanxin Lu Swarat Chaudhuri Chris Jermaine and David Melski. 2017. Data-Driven Program Completion. CoRR abs\/1705.09042 ( 2017 ). arXiv: 1705.09042 http:\/\/arxiv.org\/abs\/1705.09042"},{"key":"e_1_2_2_37_1","doi-asserted-by":"publisher","DOI":"10.18653\/v1\/D15-1166"},{"key":"e_1_2_2_38_1","volume-title":"Proceedings of the 1993 Software Engineering Research Forum. Citeseer, 255-260","author":"Lyle James R","year":"1993"},{"key":"e_1_2_2_39_1","volume-title":"International Conference on Machine Learning. 649-657","author":"Maddison Chris","year":"2014"},{"key":"e_1_2_2_40_1","unstructured":"Vijayaraghavan Murali Swarat Chaudhuri and Chris Jermaine. 2017. Bayesian Sketch Learning for Program Synthesis. CoRR abs\/1703.05698 ( 2017 ). arXiv: 1703.05698 http:\/\/arxiv.org\/abs\/1703.05698  Vijayaraghavan Murali Swarat Chaudhuri and Chris Jermaine. 2017. Bayesian Sketch Learning for Program Synthesis. CoRR abs\/1703.05698 ( 2017 ). arXiv: 1703.05698 http:\/\/arxiv.org\/abs\/1703.05698"},{"key":"e_1_2_2_41_1","doi-asserted-by":"publisher","DOI":"10.1109\/SP.2015.49"},{"key":"e_1_2_2_42_1","doi-asserted-by":"publisher","DOI":"10.1145\/3276517"},{"key":"e_1_2_2_43_1","unstructured":"Alec Radford Jefrey Wu Rewon Child David Luan Dario Amodei and Ilya Sutskever. 2018. Language models are unsupervised multitask learners. ( 2018 ).  Alec Radford Jefrey Wu Rewon Child David Luan Dario Amodei and Ilya Sutskever. 2018. Language models are unsupervised multitask learners. ( 2018 )."},{"key":"e_1_2_2_44_1","doi-asserted-by":"publisher","DOI":"10.1145\/2983990.2984041"},{"key":"e_1_2_2_45_1","doi-asserted-by":"publisher","DOI":"10.1145\/2837614.2837671"},{"key":"e_1_2_2_46_1","doi-asserted-by":"publisher","DOI":"10.1145\/2676726.2677009"},{"key":"e_1_2_2_47_1","doi-asserted-by":"publisher","DOI":"10.1145\/2594291.2594321"},{"key":"e_1_2_2_48_1","doi-asserted-by":"publisher","DOI":"10.1007\/11575467_15"},{"key":"e_1_2_2_49_1","doi-asserted-by":"publisher","DOI":"10.1145\/3133928"},{"key":"e_1_2_2_50_1","doi-asserted-by":"publisher","DOI":"10.1145\/3211346.3211353"},{"key":"e_1_2_2_51_1","volume-title":"USENIX Security Symposium. 611-626","author":"Richard Shin Eui Chul","year":"2015"},{"key":"e_1_2_2_52_1","article-title":"Dropout: a simple way to prevent neural networks from overfitting","volume":"15","author":"Srivastava Nitish","year":"2014","journal-title":"Journal of machine learning research"},{"key":"e_1_2_2_53_1","unstructured":"Ilya Sutskever Oriol Vinyals and Quoc V Le. 2014. Sequence to sequence learning with neural networks. In Advances in neural information processing systems. 3104-3112.  Ilya Sutskever Oriol Vinyals and Quoc V Le. 2014. Sequence to sequence learning with neural networks. In Advances in neural information processing systems. 3104-3112."},{"key":"e_1_2_2_54_1","unstructured":"Ashish Vaswani Noam Shazeer Niki Parmar Jakob Uszkoreit Llion Jones Aidan N Gomez \u0141ukasz Kaiser and Illia Polosukhin. 2017. Attention is all you need. In Advances in neural information processing systems. 5998-6008.  Ashish Vaswani Noam Shazeer Niki Parmar Jakob Uszkoreit Llion Jones Aidan N Gomez \u0141ukasz Kaiser and Illia Polosukhin. 2017. Attention is all you need. In Advances in neural information processing systems. 5998-6008."},{"key":"e_1_2_2_55_1","volume-title":"An Observational Investigation of Reverse Engineers' Processes. In 29th USENIX Security Symposium (USENIX Security 20)","author":"Votipka Daniel","year":"2020"},{"key":"e_1_2_2_56_1","doi-asserted-by":"publisher","DOI":"10.1109\/TSE.1984.5010248"},{"key":"e_1_2_2_57_1","doi-asserted-by":"publisher","DOI":"10.1145\/3133956.3134018"}],"container-title":["Proceedings of the ACM on Programming Languages"],"original-title":[],"language":"en","link":[{"URL":"https:\/\/dl.acm.org\/doi\/10.1145\/3428293","content-type":"unspecified","content-version":"vor","intended-application":"text-mining"},{"URL":"https:\/\/dl.acm.org\/doi\/pdf\/10.1145\/3428293","content-type":"unspecified","content-version":"vor","intended-application":"similarity-checking"}],"deposited":{"date-parts":[[2025,6,17]],"date-time":"2025-06-17T22:02:58Z","timestamp":1750197778000},"score":1,"resource":{"primary":{"URL":"https:\/\/dl.acm.org\/doi\/10.1145\/3428293"}},"subtitle":[],"short-title":[],"issued":{"date-parts":[[2020,11,13]]},"references-count":57,"journal-issue":{"issue":"OOPSLA","published-print":{"date-parts":[[2020,11,13]]}},"alternative-id":["10.1145\/3428293"],"URL":"https:\/\/doi.org\/10.1145\/3428293","relation":{},"ISSN":["2475-1421"],"issn-type":[{"value":"2475-1421","type":"electronic"}],"subject":[],"published":{"date-parts":[[2020,11,13]]},"assertion":[{"value":"2020-11-13","order":2,"name":"published","label":"Published","group":{"name":"publication_history","label":"Publication History"}}]}}