DnD: Decompiling Deep Neural Network Compiled Binary
summary
DnD claims a recoverable high level ONNX model from CPU compiled DNN binaries by locating operator functions, doing loop analysis and symbolic execution, generating operator AST summaries and matching against a reference DB. Implemented in Python on top of Angr, it handles operator fusion and loop rerolling, supports 59 operators, evaluates on 370 collected models recovering roughly 85% of models, and decompiles 15 binaries from two compilers on x86/x86_64 with 100% accuracy on 10,000 test inputs. A real extraction from an NXP i.MX RT1050 yields a working ResNet and enables stronger white box attacks.
AI-written summary · about
chapters (11)
- 0:00Introduction to edge AI
- 3:01The need for decompilation
- 5:35Limitations of existing tools
- 8:03Background on DNN deployment
- 12:35Decompilation methodology
- 16:02Semantic extraction
- 18:48Model reconstruction
- 21:08Handling compiler optimizations
- 24:48Composite operator handling
- 26:45Evaluation and results
- 30:01Real-world case study
related talks
24mBTD: Unleashing the Power of Decompilation for x86 Deep Neural Network Executables
44mReversing Large Deep Learning AI Models
14mNeural Reverse Engineering of Stripped Binaries using Augmented Control Flow Graphs
45mLeverage Power of Machine Learning with ONNX
05mONNX Runtime
37mDeep Learning Neural Network Acceleration at the Edge
54mLost and Found in Translation
11mQiMeng-Xpiler: Transcompiling Tensor Programs for Deep Learning Systems with a...
