SECLAug 14, 2019

Adabot: Fault-Tolerant Java Decompiler

arXiv:1908.06748v2
AI Analysis

This addresses the issue of noise and interference in reverse engineering for software engineers, offering a more robust decompilation method, though it is incremental as it applies existing machine translation techniques to a new domain.

The paper tackled the problem of traditional Java decompilers being non-fault-tolerant by proposing a statistical machine translation approach using attention-based NMT and Transformer models, achieving BLEU-4 scores of 94.50% and 92.30% and WERs of 2.65% and 3.48% on redundant and purified test sets, respectively.

Reverse Engineering(RE) has been a fundamental task in software engineering. However, most of the traditional Java reverse engineering tools are strictly rule defined, thus are not fault-tolerant, which pose serious problem when noise and interference were introduced into the system. In this paper, we view reverse engineering as a statistical machine translation task instead of rule-based task, and propose a fault-tolerant Java decompiler based on machine translation models. Our model is based on attention-based Neural Machine Translation (NMT) and Transformer architectures. First, we measure the translation quality on both the redundant and purified datasets. Next, we evaluate the fault-tolerance(anti-noise ability) of our framework on test sets with different unit error probability (UEP). In addition, we compare the suitability of different word segmentation algorithms for decompilation task. Experimental results demonstrate that our model is more robust and fault-tolerant compared to traditional Abstract Syntax Tree (AST) based decompilers. Specifically, in terms of BLEU-4 and Word Error Rate (WER), our performance has reached 94.50% and 2.65% on the redundant test set; 92.30% and 3.48% on the purified test set.

Foundations

The foundational work for this paper's niche, ranked by how specifically the neighbourhood builds on it — not by global fame.

Your Notes