{"status":"ok","message-type":"work","message-version":"1.0.0","message":{"indexed":{"date-parts":[[2026,5,4]],"date-time":"2026-05-04T11:06:47Z","timestamp":1777892807891,"version":"3.51.4"},"reference-count":79,"publisher":"Association for Computing Machinery (ACM)","issue":"ISSTA","funder":[{"DOI":"10.13039\/501100000781","name":"European Research Council","doi-asserted-by":"publisher","award":["101095951"],"award-info":[{"award-number":["101095951"]}],"id":[{"id":"10.13039\/501100000781","id-type":"DOI","asserted-by":"publisher"}]}],"content-domain":{"domain":[],"crossmark-restriction":false},"short-container-title":["Proc. ACM Softw. Eng."],"published-print":{"date-parts":[[2025,6,22]]},"abstract":"<jats:p>Decompilation of binary code has arisen as a highly-important application in the space of Ethereum VM (EVM) smart contracts. Major new decompilers appear nearly every year and attain popularity, for a multitude of reverse-engineering or tool-building purposes. Technically, the problem is fundamental: it consists of recovering high-level control flow from a highly-optimized continuation-passing-style (CPS) representation. Architecturally, decompilers can be built using either static analysis or symbolic execution techniques.<\/jats:p>\n          <jats:p>We present Shrnkr, a static-analysis-based decompiler succeeding the state-of-the-art Elipmoc decompiler. Shrnkr manages to achieve drastic improvements relative to the state of the art, in all significant dimensions: scalability, completeness, precision. Chief among the techniques employed is a new variant of static analysis context: shrinking context sensitivity. Shrinking context sensitivity performs deep cuts in the static analysis context, eagerly \u201cforgetting\u201d control-flow history, in order to leave room for further precise reasoning.<\/jats:p>\n          <jats:p>We compare Shrnkr to state-of-the-art decompilers, both static-analysis- and symbolic-execution-based. In a standard benchmark set, Shrnkr scales to over 99.5% of contracts (compared to \u223c95% for Elipmoc), covers (i.e., reaches and manages to decompile) 67% more code than Heimdall-rs, and reduces key imprecision metrics by over 65%, compared again to Elipmoc.<\/jats:p>","DOI":"10.1145\/3728935","type":"journal-article","created":{"date-parts":[[2025,6,22]],"date-time":"2025-06-22T10:52:56Z","timestamp":1750589576000},"page":"1350-1373","source":"Crossref","is-referenced-by-count":1,"title":["The Incredible Shrinking Context... in a Decompiler Near You"],"prefix":"10.1145","volume":"2","author":[{"ORCID":"https:\/\/orcid.org\/0000-0002-6233-1548","authenticated-orcid":false,"given":"Sifis","family":"Lagouvardos","sequence":"first","affiliation":[{"name":"University of Athens, Athens, Greece"},{"name":"Dedaub, Athens, Greece"}]},{"ORCID":"https:\/\/orcid.org\/0009-0006-6905-9264","authenticated-orcid":false,"given":"Yannis","family":"Bollanos","sequence":"additional","affiliation":[{"name":"Dedaub, Athens, Greece"}]},{"ORCID":"https:\/\/orcid.org\/0000-0002-6790-2872","authenticated-orcid":false,"given":"Neville","family":"Grech","sequence":"additional","affiliation":[{"name":"Dedaub, Msida, Malta"}]},{"ORCID":"https:\/\/orcid.org\/0000-0002-0499-0182","authenticated-orcid":false,"given":"Yannis","family":"Smaragdakis","sequence":"additional","affiliation":[{"name":"University of Athens, Athens, Greece"},{"name":"Dedaub, Athens, Greece"}]}],"member":"320","published-online":{"date-parts":[[2025,6,22]]},"reference":[{"key":"e_1_2_1_1_1","unstructured":"2018. Online Solidity Decompiler. http:\/\/ethervm.io\/decompile"},{"key":"e_1_2_1_2_1","volume-title":"Automated Technology for Verification and Analysis (ATVA)","author":"Albert Elvira","unstructured":"Elvira Albert, Pablo Gordillo, Benjamin Livshits, Albert Rubio, and Ilya Sergey. 2018. EthIR: A Framework for High-Level Analysis of Ethereum Bytecode. In Automated Technology for Verification and Analysis (ATVA). Springer."},{"key":"e_1_2_1_3_1","doi-asserted-by":"publisher","DOI":"10.1145\/3428277"},{"key":"e_1_2_1_4_1","doi-asserted-by":"publisher","DOI":"10.1109\/TDSC.2022.3178836"},{"key":"e_1_2_1_5_1","unstructured":"Jonathan Becker. 2023. Heimdall is an advanced EVM smart contract toolkit specializing in bytecode analysis and extracting information from unverified contracts.. https:\/\/github.com\/Jon-Becker\/heimdall-rs"},{"key":"e_1_2_1_6_1","doi-asserted-by":"publisher","DOI":"10.1145\/2968455.2968505"},{"key":"e_1_2_1_7_1","doi-asserted-by":"publisher","DOI":"10.1145\/3385412.3385990"},{"key":"e_1_2_1_8_1","volume-title":"Vandal: A Scalable Security Analysis Framework for Smart Contracts. arxiv:1809.03981.","author":"Brent Lexi","year":"2018","unstructured":"Lexi Brent, Anton Jurisevic, Michael Kong, Eric Liu, Francois Gauthier, Vincent Gramoli, Ralph Holz, and Bernhard Scholz. 2018. Vandal: A Scalable Security Analysis Framework for Smart Contracts. arxiv:1809.03981."},{"key":"e_1_2_1_9_1","volume-title":"22nd USENIX Security Symposium (USENIX Security 13)","author":"Brumley David","year":"2013","unstructured":"David Brumley, JongHyup Lee, Edward J. Schwartz, and Maverick Woo. 2013. Native x86 Decompilation Using Semantics-Preserving Structural Analysis and Iterative Control-Flow Structuring. In 22nd USENIX Security Symposium (USENIX Security 13). USENIX Association, Washington, D.C.. 353\u2013368. isbn:978-1-931971-03-4 https:\/\/www.usenix.org\/conference\/usenixsecurity13\/technical-sessions\/presentation\/schwartz"},{"key":"e_1_2_1_10_1","doi-asserted-by":"publisher","DOI":"10.1145\/3597503.3623302"},{"key":"e_1_2_1_11_1","doi-asserted-by":"publisher","DOI":"10.1145\/3563328"},{"key":"e_1_2_1_12_1","doi-asserted-by":"publisher","DOI":"10.1109\/ASE51524.2021.9678888"},{"key":"e_1_2_1_13_1","volume-title":"Reverse compilation techniques. Ph. D. Dissertation","author":"Cifuentes Cristina","unstructured":"Cristina Cifuentes. 1994. Reverse compilation techniques. Ph. D. Dissertation. Queensland University of Technology. https:\/\/eprints.qut.edu.au\/36820\/ Presented to the School of Computing Science, Queensland University of Technology."},{"key":"e_1_2_1_14_1","doi-asserted-by":"publisher","DOI":"10.1109\/ICPC52881.2021.00021"},{"key":"e_1_2_1_15_1","volume-title":"Proceedings of the ACM SIGPLAN 1994 conference on Programming language design and implementation. 242\u2013256","author":"Emami Maryam","unstructured":"Maryam Emami, Rakesh Ghiya, and Laurie J. Hendren. 1994. Context-sensitive interprocedural points-to analysis in the presence of function pointers. In PLDI \u201994: Proceedings of the ACM SIGPLAN 1994 conference on Programming language design and implementation. 242\u2013256."},{"key":"e_1_2_1_16_1","unstructured":"Antonio Flores-Montoya and Eric Schulte. 2020. Datalog Disassembly. 1075\u20131092 pages. isbn:978-1-939133-17-5 https:\/\/www.usenix.org\/conference\/usenixsecurity20\/presentation\/flores-montoya"},{"key":"e_1_2_1_17_1","doi-asserted-by":"publisher","DOI":"10.1109\/ICSE.2019.00120"},{"key":"e_1_2_1_18_1","doi-asserted-by":"publisher","DOI":"10.1145\/3276486"},{"key":"e_1_2_1_19_1","doi-asserted-by":"crossref","unstructured":"Neville Grech Michael Kong Anton Jurisevic Lexi Brent Bernhard Scholz and Yannis Smaragdakis. 2020. MadMax: Analyzing the Out-of-Gas World of Smart Contracts. Commun. ACM Nov..","DOI":"10.1145\/3416262"},{"key":"e_1_2_1_20_1","doi-asserted-by":"publisher","DOI":"10.1145\/3527321"},{"key":"e_1_2_1_21_1","doi-asserted-by":"publisher","DOI":"10.1145\/3395363.3404366"},{"key":"e_1_2_1_22_1","volume-title":"Confusum Contractum: Confused Deputy Vulnerabilities in Ethereum Smart Contracts. In 32nd USENIX Security Symposium (USENIX Security 23)","author":"Gritti Fabio","year":"2023","unstructured":"Fabio Gritti, Nicola Ruaro, Robert McLaughlin, Priyanka Bose, Dipanjan Das, Ilya Grishchenko, Christopher Kruegel, and Giovanni Vigna. 2023. Confusum Contractum: Confused Deputy Vulnerabilities in Ethereum Smart Contracts. In 32nd USENIX Security Symposium (USENIX Security 23). USENIX Association, Anaheim, CA. 1793\u20131810. isbn:978-1-939133-37-3 https:\/\/www.usenix.org\/conference\/usenixsecurity23\/presentation\/gritti"},{"key":"e_1_2_1_23_1","doi-asserted-by":"publisher","DOI":"10.1145\/3460319.3469076"},{"key":"e_1_2_1_24_1","doi-asserted-by":"publisher","DOI":"10.1145\/3158136"},{"key":"e_1_2_1_25_1","doi-asserted-by":"publisher","DOI":"10.1145\/3689796"},{"key":"e_1_2_1_26_1","doi-asserted-by":"publisher","DOI":"10.1109\/SCAM.2009.24"},{"key":"e_1_2_1_27_1","volume-title":"The Strengths and Behavioral Quirks of Java Bytecode Decompilers. In 2019 19th International Working Conference on Source Code Analysis and Manipulation (SCAM). 92\u2013102","author":"Harrand Nicolas","year":"2019","unstructured":"Nicolas Harrand, C\u2019esar Soto-Valero, Martin Monperrus, and Benoit Baudry. 2019. The Strengths and Behavioral Quirks of Java Bytecode Decompilers. In 2019 19th International Working Conference on Source Code Analysis and Manipulation (SCAM). 92\u2013102. arxiv:1908.06895"},{"key":"e_1_2_1_28_1","doi-asserted-by":"publisher","DOI":"10.1145\/3319535.3363230"},{"key":"e_1_2_1_29_1","doi-asserted-by":"publisher","DOI":"10.1016\/j.jss.2023.111627"},{"key":"e_1_2_1_30_1","doi-asserted-by":"publisher","DOI":"10.1145\/3293607"},{"key":"e_1_2_1_31_1","doi-asserted-by":"publisher","DOI":"10.1145\/3276510"},{"key":"e_1_2_1_32_1","doi-asserted-by":"publisher","DOI":"10.1145\/3498720"},{"key":"e_1_2_1_33_1","doi-asserted-by":"publisher","DOI":"10.1145\/3133924"},{"key":"e_1_2_1_34_1","doi-asserted-by":"publisher","DOI":"10.1145\/3238147.3238177"},{"key":"e_1_2_1_35_1","volume-title":"2018 IEEE 25th International Conference on Software Analysis, Evolution and Reengineering (SANER). 346\u2013356","author":"Katz D. S.","unstructured":"D. S. Katz, J. Ruchti, and E. Schulte. 2018. Using recurrent neural networks for decompilation. In 2018 IEEE 25th International Conference on Software Analysis, Evolution and Reengineering (SANER). 346\u2013356."},{"key":"e_1_2_1_36_1","unstructured":"Tomasz Kolinko and Palkeo. 2020. Panoramix \u2013 Decompiler at the heart of eveem.org. https:\/\/github.com\/palkeo\/panoramix"},{"key":"e_1_2_1_37_1","doi-asserted-by":"publisher","DOI":"10.1145\/3597926.3598124"},{"key":"e_1_2_1_38_1","volume-title":"Proceedings of the 13th Conference on USENIX Security Symposium -","volume":"13","author":"Kruegel Christopher","year":"2004","unstructured":"Christopher Kruegel, William Robertson, Fredrik Valeur, and Giovanni Vigna. 2004. Static Disassembly of Obfuscated Binaries. In Proceedings of the 13th Conference on USENIX Security Symposium - Volume 13 (SSYM\u201904). USENIX Association, USA. 18."},{"key":"e_1_2_1_39_1","unstructured":"Sifis Lagouvardos Yannis Bollanos Michael Debono Neville Grech and Yannis Smaragdakis. 2025. Precise Static Identification of Ethereum Storage Variables. arxiv:2503.20690. arxiv:2503.20690"},{"key":"e_1_2_1_40_1","doi-asserted-by":"publisher","unstructured":"Sifis Lagouvardos Yannis Bollanos Neville Grech and Yannis Smaragdakis. 2025. The Incredible Shrinking Context... in a Decompiler Near You (Artifact). https:\/\/doi.org\/10.5281\/zenodo.15189970 10.5281\/zenodo.15189970","DOI":"10.5281\/zenodo.15189970"},{"key":"e_1_2_1_41_1","unstructured":"Sifis Lagouvardos Yannis Bollanos Neville Grech and Yannis Smaragdakis. 2025. The Incredible Shrinking Context... in a Decompiler Near You (Extended Version). arxiv:2409.11157. arxiv:2409.11157"},{"key":"e_1_2_1_42_1","doi-asserted-by":"publisher","DOI":"10.1145\/3428258"},{"key":"e_1_2_1_43_1","doi-asserted-by":"publisher","DOI":"10.1145\/3276511"},{"key":"e_1_2_1_44_1","doi-asserted-by":"publisher","DOI":"10.1145\/3236024.3236041"},{"key":"e_1_2_1_45_1","doi-asserted-by":"publisher","DOI":"10.1145\/3381915"},{"key":"e_1_2_1_46_1","doi-asserted-by":"publisher","DOI":"10.1145\/3533767.3534222"},{"key":"e_1_2_1_47_1","doi-asserted-by":"publisher","DOI":"10.1109\/SANER56733.2023.00011"},{"key":"e_1_2_1_48_1","doi-asserted-by":"publisher","DOI":"10.1145\/3360574"},{"key":"e_1_2_1_49_1","doi-asserted-by":"publisher","DOI":"10.1145\/1044834.1044835"},{"key":"e_1_2_1_50_1","doi-asserted-by":"publisher","DOI":"10.1109\/WETSEB59161.2023.00007"},{"key":"e_1_2_1_51_1","doi-asserted-by":"publisher","DOI":"10.1145\/3377811.3380334"},{"key":"e_1_2_1_52_1","doi-asserted-by":"publisher","DOI":"10.1145\/2594291.2594318"},{"key":"e_1_2_1_53_1","doi-asserted-by":"publisher","DOI":"10.1145\/3540250.3549097"},{"key":"e_1_2_1_54_1","volume-title":"Smart Contract Vulnerabilities: Vulnerable Does Not Imply Exploited. In 30th USENIX Security Symposium (USENIX Security 21)","author":"Perez Daniel","year":"2021","unstructured":"Daniel Perez and Benjamin Livshits. 2021. Smart Contract Vulnerabilities: Vulnerable Does Not Imply Exploited. In 30th USENIX Security Symposium (USENIX Security 21). USENIX Association, 1325\u20131341. isbn:978-1-939133-24-3 https:\/\/www.usenix.org\/conference\/usenixsecurity21\/presentation\/perez"},{"key":"e_1_2_1_55_1","doi-asserted-by":"crossref","unstructured":"Nicola Ruaro Fabio Gritti Robert McLaughlin Ilya Grishchenko Christopher Kruegel and Giovanni Vigna. 2024. Not your Type! Detecting Storage Collision Vulnerabilities in Ethereum Smart Contracts. isbn:ISBN 1-891562-93-2","DOI":"10.14722\/ndss.2024.24713"},{"key":"e_1_2_1_56_1","volume-title":"Invited Talk: Harnessing SMT Solvers for Verifying Low Level Programs.. In SMT. 2.","author":"Sagiv Mooly","year":"2020","unstructured":"Mooly Sagiv. 2020. Invited Talk: Harnessing SMT Solvers for Verifying Low Level Programs.. In SMT. 2."},{"key":"e_1_2_1_57_1","doi-asserted-by":"publisher","DOI":"10.1145\/3243734.3243793"},{"key":"e_1_2_1_58_1","unstructured":"Micha Sharir and Amir Pnueli. 1981. Two Approaches to Interprocedural Data Flow Analysis. 189\u2013233. isbn:0137296819"},{"key":"e_1_2_1_59_1","unstructured":"Olin Grigsby Shivers. 1991. Control-flow analysis of higher-order languages of taming lambda. Ph. D. Dissertation. USA. UMI Order No. GAX91-26964"},{"key":"e_1_2_1_60_1","doi-asserted-by":"publisher","DOI":"10.1145\/3597926.3598124"},{"key":"e_1_2_1_61_1","doi-asserted-by":"publisher","DOI":"10.1145\/1925844.1926390"},{"key":"e_1_2_1_62_1","doi-asserted-by":"publisher","DOI":"10.1145\/3485540"},{"key":"e_1_2_1_63_1","doi-asserted-by":"publisher","DOI":"10.1145\/2594291.2594320"},{"key":"e_1_2_1_64_1","unstructured":"Solidity. [n. d.]. Contract ABI Specification. https:\/\/docs.soliditylang.org\/en\/v0.8.25\/abi-spec.html"},{"key":"e_1_2_1_65_1","unstructured":"Solidity Team. 2020. Solidity 0.8.0 Release Announcement. https:\/\/soliditylang.org\/blog\/2020\/12\/16\/solidity-v0.8.0-release-announcement\/"},{"key":"e_1_2_1_66_1","unstructured":"Solidity Team. 2022. Solidity 0.8.13 Release Announcement. https:\/\/soliditylang.org\/blog\/2022\/03\/16\/solidity-0.8.13-release-announcement\/"},{"key":"e_1_2_1_67_1","unstructured":"Solidity Team. 2024. A Closer Look at Via-IR. https:\/\/soliditylang.org\/blog\/2024\/07\/12\/a-closer-look-at-via-ir\/"},{"key":"e_1_2_1_68_1","volume-title":"Porosity: A Decompiler for Blockchain-Based Smart Contracts Bytecode","author":"Suiche Matt","year":"2017","unstructured":"Matt Suiche. 2017. Porosity: A Decompiler for Blockchain-Based Smart Contracts Bytecode. http:\/\/web.archive.org\/web\/20170915103422\/https:\/\/www.comae.io\/reports\/dc25-msuiche-Porosity-Decompiling-Ethereum-Smart-Contracts-wp.pdf"},{"key":"e_1_2_1_69_1","doi-asserted-by":"publisher","DOI":"10.1145\/3485524"},{"key":"e_1_2_1_70_1","volume-title":"Making k-Object-Sensitive Pointer Analysis More Precise with Still k-Limiting","author":"Tan Tian","unstructured":"Tian Tan, Yue Li, and Jingling Xue. 2016. Making k-Object-Sensitive Pointer Analysis More Precise with Still k-Limiting. In Static Analysis, Xavier Rival (Ed.). Springer Berlin Heidelberg, Berlin, Heidelberg. 489\u2013510. isbn:978-3-662-53413-7"},{"key":"e_1_2_1_71_1","unstructured":"Michael Van Emmerik. 2007. Static Single Assignment for Decompilation. Ph. D. Dissertation."},{"key":"e_1_2_1_72_1","doi-asserted-by":"publisher","DOI":"10.1145\/3368089.3417064"},{"key":"e_1_2_1_73_1","doi-asserted-by":"publisher","DOI":"10.1109\/SP.2016.18"},{"key":"e_1_2_1_74_1","doi-asserted-by":"publisher","unstructured":"Khaled Yakdan Sebastian Eschweiler Elmar Gerhards-Padilla and Matthew Smith. 2015. No More Gotos: Decompilation Using Pattern-Independent Control-Flow Structuring and Semantics-Preserving Transformations. https:\/\/doi.org\/10.14722\/ndss.2015.23185 10.14722\/ndss.2015.23185","DOI":"10.14722\/ndss.2015.23185"},{"key":"e_1_2_1_75_1","doi-asserted-by":"publisher","DOI":"10.1145\/3597503.3639153"},{"key":"e_1_2_1_76_1","doi-asserted-by":"publisher","DOI":"10.1109\/ICSE55347.2025.00083"},{"key":"e_1_2_1_77_1","doi-asserted-by":"publisher","DOI":"10.1109\/ICSE48619.2023.00061"},{"key":"e_1_2_1_78_1","doi-asserted-by":"publisher","DOI":"10.1145\/3611643.3616343"},{"key":"e_1_2_1_79_1","doi-asserted-by":"publisher","DOI":"10.1145\/3597503.3639140"}],"container-title":["Proceedings of the ACM on Software Engineering"],"original-title":[],"language":"en","link":[{"URL":"https:\/\/dl.acm.org\/doi\/pdf\/10.1145\/3728935","content-type":"unspecified","content-version":"vor","intended-application":"similarity-checking"}],"deposited":{"date-parts":[[2025,7,16]],"date-time":"2025-07-16T16:51:39Z","timestamp":1752684699000},"score":1,"resource":{"primary":{"URL":"https:\/\/dl.acm.org\/doi\/10.1145\/3728935"}},"subtitle":[],"short-title":[],"issued":{"date-parts":[[2025,6,22]]},"references-count":79,"journal-issue":{"issue":"ISSTA","published-print":{"date-parts":[[2025,6,22]]}},"alternative-id":["10.1145\/3728935"],"URL":"https:\/\/doi.org\/10.1145\/3728935","relation":{},"ISSN":["2994-970X"],"issn-type":[{"value":"2994-970X","type":"electronic"}],"subject":[],"published":{"date-parts":[[2025,6,22]]}}}