Sha256: f865abfbddd561e70f49522b4061046da5789800f16a86aefc343972c6096fc5

Contents?: true

Size: 607 Bytes

Versions: 2

Compression:

Stored size: 607 Bytes

Contents

require 'indis-core/data_entity'

module Indis
  module ARM
    module Analyzer
      
      class LDRLitAnalyzer < Analyzer
        
        def initialize(target)
          super target, :instruction_mapped
        end
        
        def instruction_mapped(instr)
          return unless instr.class.name == :LDR && instr.class.encoding == :A1_lit
          
          datab = Indis::DataEntity.new(instr.vmaddr+instr.imm+8, 4, @target.vmmap)
          @target.vmmap.map!(datab)
          instr.tags[:value] = datab
          datab.tags[:loaded_by] = instr
        end
      end
      
    end
  end
end

Version data entries

2 entries across 2 versions & 1 rubygems

Version Path
indis-arm-0.3.1 lib/indis-arm/analyzer/ldr_lit_analyzer.rb
indis-arm-0.3.0 lib/indis-arm/analyzer/ldr_lit_analyzer.rb