binaryninja::render_layer

Trait RenderLayer

source
pub trait RenderLayer: Sized {
    // Provided methods
    fn apply_to_flow_graph(&self, graph: &mut FlowGraph) { ... }
    fn apply_to_linear_object(
        &self,
        object: &mut LinearViewObject,
        _prev_object: Option<&mut LinearViewObject>,
        _next_object: Option<&mut LinearViewObject>,
        lines: Vec<LinearDisassemblyLine>,
    ) -> Vec<LinearDisassemblyLine> { ... }
    fn apply_to_disassembly_block(
        &self,
        _block: &BasicBlock<NativeBlock>,
        lines: Vec<DisassemblyTextLine>,
    ) -> Vec<DisassemblyTextLine> { ... }
    fn apply_to_llil_block(
        &self,
        _block: &BasicBlock<NativeBlock>,
        lines: Vec<DisassemblyTextLine>,
    ) -> Vec<DisassemblyTextLine> { ... }
    fn apply_to_mlil_block(
        &self,
        _block: &BasicBlock<NativeBlock>,
        lines: Vec<DisassemblyTextLine>,
    ) -> Vec<DisassemblyTextLine> { ... }
    fn apply_to_hlil_block(
        &self,
        _block: &BasicBlock<NativeBlock>,
        lines: Vec<DisassemblyTextLine>,
    ) -> Vec<DisassemblyTextLine> { ... }
    fn apply_to_hlil_body(
        &self,
        _function: &Function,
        lines: Vec<LinearDisassemblyLine>,
    ) -> Vec<LinearDisassemblyLine> { ... }
    fn apply_to_misc_lines(
        &self,
        _object: &mut LinearViewObject,
        _prev_object: Option<&LinearViewObject>,
        _next_object: Option<&LinearViewObject>,
        lines: Vec<LinearDisassemblyLine>,
    ) -> Vec<LinearDisassemblyLine> { ... }
    fn apply_to_block(
        &self,
        block: &BasicBlock<NativeBlock>,
        lines: Vec<DisassemblyTextLine>,
    ) -> Vec<DisassemblyTextLine> { ... }
}

Provided Methods§

source

fn apply_to_flow_graph(&self, graph: &mut FlowGraph)

Apply this Render Layer to a Flow Graph.

source

fn apply_to_linear_object( &self, object: &mut LinearViewObject, _prev_object: Option<&mut LinearViewObject>, _next_object: Option<&mut LinearViewObject>, lines: Vec<LinearDisassemblyLine>, ) -> Vec<LinearDisassemblyLine>

Apply this Render Layer to the lines produced by a LinearViewObject for rendering in Linear View.

source

fn apply_to_disassembly_block( &self, _block: &BasicBlock<NativeBlock>, lines: Vec<DisassemblyTextLine>, ) -> Vec<DisassemblyTextLine>

Apply this Render Layer to a single Basic Block of Disassembly lines.

Modify the lines to change the presentation of the block.

source

fn apply_to_llil_block( &self, _block: &BasicBlock<NativeBlock>, lines: Vec<DisassemblyTextLine>, ) -> Vec<DisassemblyTextLine>

Apply this Render Layer to a single Basic Block of Low Level IL lines.

Modify the lines to change the presentation of the block.

source

fn apply_to_mlil_block( &self, _block: &BasicBlock<NativeBlock>, lines: Vec<DisassemblyTextLine>, ) -> Vec<DisassemblyTextLine>

Apply this Render Layer to a single Basic Block of Medium Level IL lines.

Modify the lines to change the presentation of the block.

source

fn apply_to_hlil_block( &self, _block: &BasicBlock<NativeBlock>, lines: Vec<DisassemblyTextLine>, ) -> Vec<DisassemblyTextLine>

Apply this Render Layer to a single Basic Block of High Level IL lines.

Modify the lines to change the presentation of the block.

This function will NOT apply to High Level IL bodies as displayed in Linear View! Those are handled by RenderLayer::apply_to_hlil_body instead as they do not have a BasicBlock associated with them.

source

fn apply_to_hlil_body( &self, _function: &Function, lines: Vec<LinearDisassemblyLine>, ) -> Vec<LinearDisassemblyLine>

Apply this Render Layer to the entire body of a High Level IL function.

Modify the lines to change the presentation of the block.

This function only applies to Linear View, and not to Graph View! If you want to handle Graph View too, you will need to use RenderLayer::apply_to_hlil_block and handle the lines one block at a time.

source

fn apply_to_misc_lines( &self, _object: &mut LinearViewObject, _prev_object: Option<&LinearViewObject>, _next_object: Option<&LinearViewObject>, lines: Vec<LinearDisassemblyLine>, ) -> Vec<LinearDisassemblyLine>

Apply to lines generated by Linear View that are not part of a function.

Modify the lines to change the presentation of the block.

source

fn apply_to_block( &self, block: &BasicBlock<NativeBlock>, lines: Vec<DisassemblyTextLine>, ) -> Vec<DisassemblyTextLine>

Apply this Render Layer to all IL blocks and disassembly blocks.

If not implemented this will handle calling the view specific apply functions:

Modify the lines to change the presentation of the block.

Object Safety§

This trait is not object safe.

Implementors§