High throughput disassembly system for executable code and applications
AssigneesDeepbits Technology Inc., The Regents of the University of California
InventorsXunchao Hu, Sheng Yu, Heng Yin
Life of this patent
Estimating the term…
Abstract
The present invention performs high-throughput disassembly for executable code comprising a plurality of instructions. An input of the executable code is received. Exhaustive disassembly is performed on the executable code to produce a set of exhaustively disassembled instructions. An instruction flow graph is constructed from the exhaustively disassembled instructions. Instruction embedding is performed on the exhaustively disassembled instructions to construct embeddings.
Claims20
A system for high-throughput disassembly for executable code comprising a plurality of instructions, comprising:
- circuitry configured to
- receive an input of the executable code;
- perform exhaustive disassembly on the executable code to generate all possible disassembly results to produce a set of exhaustively disassembled instructions;
- construct an instruction flow graph from the exhaustively disassembled instructions;
- perform instruction embedding on the exhaustively disassembled instructions to construct embeddings;
- and
- identify which of the exhaustively disassembled instructions are true instructions in accordance with the instruction flow graph and the instruction embedding, wherein the true instructions are instructions generated by a compiler.
A method for high-throughput disassembly for executable code comprising a plurality of instructions, comprising:
- receiving an input of the executable code;
- performing exhaustive disassembly on the executable code to generate all possible disassembly results to produce a set of exhaustively disassembled instructions;
- constructing an instruction flow graph from the exhaustively disassembled instructions;
- performing instruction embedding on the exhaustively disassembled instructions to construct embeddings;
- and
- identifying which of the exhaustively disassembled instructions are true instructions in accordance with the instruction flow graph and the instruction embedding, wherein the true instructions are instructions generated by a compiler.
A non-transitory, computer readable medium storing instructions that, when executed on a computer, control the computer to perform a method for high-throughput disassembly for executable code comprising a plurality of instructions, the method comprising:
- receiving an input of the executable code;
- performing exhaustive disassembly on the executable code to generate all possible disassembly results to produce a set of exhaustively disassembled instructions;
- constructing an instruction flow graph from the exhaustively disassembled instructions;
- performing instruction embedding on the exhaustively disassembled instructions to construct embeddings;
- and
- identifying which of the exhaustively disassembled instructions are true instructions in accordance with the instruction flow graph and the instruction embedding, wherein the true instructions are instructions generated by a compiler.
Dependencies are inferred from the claim text.