Package ghidra.app.util
Class RepeatInstructionByteTracker
- java.lang.Object
-
- ghidra.app.util.RepeatInstructionByteTracker
-
public class RepeatInstructionByteTracker extends java.lang.Object
RepeatInstructionByteTracker
provides pseudo-disassemblers the ability to track repeated bytes during disassembly of a block of instructions.
-
-
Constructor Summary
Constructors Constructor Description RepeatInstructionByteTracker(int repeatPatternLimit, AddressSetView repeatPatternLimitIgnoredRegion)
Constructor.
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description boolean
exceedsRepeatBytePattern(PseudoInstruction inst)
Check the next instruction within a block of instructions.void
reset()
Reset internal counter.void
setRepeatPatternLimit(int maxInstructions)
Set the maximum number of instructions in a single run which contain the same byte values.void
setRepeatPatternLimitIgnored(AddressSetView set)
Set the region over which the repeat pattern limit will be ignored.
-
-
-
Constructor Detail
-
RepeatInstructionByteTracker
public RepeatInstructionByteTracker(int repeatPatternLimit, AddressSetView repeatPatternLimitIgnoredRegion)
Constructor.- Parameters:
repeatPatternLimit
- maximum number of instructions containing the same repeated byte values. A value less than or equal to 0 will disable counting.repeatPatternLimitIgnoredRegion
- optional set of addresses where check is not performed or null for check to be performed everywhere.
-
-
Method Detail
-
reset
public void reset()
Reset internal counter. This should be performed before disassembling a new block of instructions.
-
exceedsRepeatBytePattern
public boolean exceedsRepeatBytePattern(PseudoInstruction inst)
Check the next instruction within a block of instructions.- Parameters:
inst
- next instruction- Returns:
- true if repeat limit has been exceeded, else false. If the repeat limit has been set <= 0 false will be returned.
-
setRepeatPatternLimit
public void setRepeatPatternLimit(int maxInstructions)
Set the maximum number of instructions in a single run which contain the same byte values.- Parameters:
maxInstructions
- limit on the number of consecutive instructions with the same byte values. A non-positive value (<= 0) will disable theexceedsRepeatBytePattern(PseudoInstruction)
checking.
-
setRepeatPatternLimitIgnored
public void setRepeatPatternLimitIgnored(AddressSetView set)
Set the region over which the repeat pattern limit will be ignored.- Parameters:
set
- region over which the repeat pattern limit will be ignored
-
-