Recovering clear, natural identifiers from obfuscated JS names
By Bogdan Vasilescu, Casey Casalnuovo, Premkumar T. Devanbu. 2017
71 citations recorded by the source corpus.
Subfields: Artificial Intelligence, Information Systems, Program Analysis & Verification
How researchers see this paper
The researchers whose trusted networks rank it highest, strongest advocate first. Every researcher gets a different order.
In Artificial Intelligence
- Charles Sutton
- Miltiadis Allamanis
- Rafael-Michael Karampatsis
- Romain Robbes
- Hlib Babii
- Andrea Janes
- Vincent J. Hellendoorn
- Earl T. Barr
In Information Systems
- Charles Sutton
- Miltiadis Allamanis
- Michael Pradel
- Georgios Gousios
- Rafael-Michael Karampatsis
- Romain Robbes
- Hlib Babii
- Earl T. Barr
In Program Analysis & Verification
- Charles Sutton
- Georgios Gousios
- Miltiadis Allamanis
- Rafael-Michael Karampatsis
- Earl T. Barr
- Romain Robbes
- Hlib Babii
- Andrea Janes
Citations in the corpus
- TypeWriter: neural type prediction with search-based validation (2019, background): “Beyond type prediction, others have proposed learning-based techniques to find programming errors [25, 28], predict variable and method names [1, 29, 35], suggest how to improve names [19], search code [10, 31], detect clones [38, 42], classify code [24, 41], predict code edits [33, 40, 43], predict”
- DOBF: A Deobfuscation Pre-Training Objective for Programming Languages (2021, methodology): “…deobfuscation of identifier names and identifier name proposal using n-grams (Allamanis et al., 2014; 2015), probabilistic models (Raychev et al., 2015; Bichsel et al., 2016; Vasilescu et al., 2017; Alon et al., 2018), and recurrent neural networks (Bavishi et al., 2018; Lacomis et al., 2019).”
- DeepBugs: a learning approach to name-based bug detection (2018, methodology): “2015] and JSNaughty [Vasilescu et al. 2017] address the problem of recovering meaningful identifiers from minified code, using conditional random fields and statistical machine translation, respectively.”
- Big Code != Big Vocabulary: Open-Vocabulary Models for Source Code (2020, methodology): “Several approaches use neural machine translation, in which an encoder LM is paired to a decoder LM. Examples include recovering names from minified Javascript code [10, 84], or from decom-piled C code [50].”
- NL2Type: Inferring JavaScript Function Types from Natural Language Information (2019, background): “Other approaches predict natural language information from source code, e.g., by predicting function name-like summaries for code snippets [48], or by de-obfuscating minified JavaScript code [15], [49], [50].”
- Studying the Usage of Text-To-Text Transfer Transformer to Support Code-Related Tasks (2021, background): “Some examples include automatic bug fixing [1]–[4], learning generic code changes [5], code migration [6], [7], code summarization [8]–[11], pseudo-code generation [12], code deobfuscation [13], [14], injection of”
- Deep Learning to Find Bugs (2017, methodology): “JSNice [35] and JSNaughty [40] address the problem of recovering meaningful identifiers from minified code, using conditional random fields and statistical machine translation, respectively.”
- Context2Name: A Deep Learning-Based Approach to Infer Natural Variable Names from Usage Contexts (2017, methodology): “Acomparison with the state-of-the-art tools JSNice [31] and JSNaughty [38] shows that our work achieves comparable accuracy while improving in efficiency.”
- Typilus: neural type hints (2020, methodology): “Machine learning models of code are also used to predict names of variables and functions [2, 3, 8, 9, 12], with applications to deobfuscation [51, 59] and decompila-tion [22, 30, 41].”
- On Learning Meaningful Assert Statements for Unit Test Cases (2020, methodology): “We take advantage of the deep learning strategy of NMT, which has become an important tool for supporting software-related tasks such as bug-xing [7, 12, 20, 36], code changes [35], code migration [21, 22], code summarization [18, 19, 39], pseudo-code generation [23], code deobfuscation [13, 38] and”
- Deep learning type inference (2018, methodology): “obfuscated counter-part, which can then be reversed to learn to deobfuscate [33], although they did not approach this as a sequence tagging problem.”
- Modeling Vocabulary for Big Code Machine Learning (2019, background): “[70] describe an approach to recover original names from minified JavaScript programs based on statistical machine translation (SMT).”