Class RarVM
java.lang.Object
com.github.junrar.unpack.vm.BitInput
com.github.junrar.unpack.vm.RarVM
-
Field Summary
FieldsModifier and TypeFieldDescriptionprivate intprivate intprivate intprivate intprivate byte[]private final int[]private static final intprivate static final longstatic final intstatic final intstatic final intstatic final intstatic final int -
Constructor Summary
Constructors -
Method Summary
Modifier and TypeMethodDescriptionprivate voiddecodeArg(VMPreparedOperand op, boolean byteMode) voidexecute(VMPreparedProgram prg) private booleanExecuteCode(List<VMPreparedCommand> preparedCode, int cmdCount) private voidExecuteStandardFilter(VMStandardFilters filterType) private intfilterItanium_GetBits(int curPos, int bitPos, int bitCount) private voidfilterItanium_SetBits(int curPos, int bitField, int bitPos, int bitCount) byte[]getMem()private intgetOperand(VMPreparedOperand cmdOp) private intgetValue(boolean byteMode, byte[] mem, int offset) voidinit()private VMStandardFiltersIsStandardFilter(byte[] code, int codeSize) private booleanisVMMem(byte[] mem) private voidvoidprepare(byte[] code, int codeSize, VMPreparedProgram prg) static intprivate booleansetIP(int ip) voidsetLowEndianValue(byte[] mem, int offset, int value) voidsetLowEndianValue(Vector<Byte> mem, int offset, int value) voidsetMemory(int pos, byte[] data, int offset, int dataSize) private voidsetValue(boolean byteMode, byte[] mem, int offset, int value)
-
Field Details
-
VM_MEMSIZE
public static final int VM_MEMSIZE- See Also:
-
VM_MEMMASK
public static final int VM_MEMMASK- See Also:
-
VM_GLOBALMEMADDR
public static final int VM_GLOBALMEMADDR- See Also:
-
VM_GLOBALMEMSIZE
public static final int VM_GLOBALMEMSIZE- See Also:
-
VM_FIXEDGLOBALSIZE
public static final int VM_FIXEDGLOBALSIZE- See Also:
-
regCount
private static final int regCount- See Also:
-
UINT_MASK
private static final long UINT_MASK- See Also:
-
mem
private byte[] mem -
R
private final int[] R -
flags
private int flags -
maxOpCount
private int maxOpCount -
codeSize
private int codeSize -
IP
private int IP
-
-
Constructor Details
-
RarVM
public RarVM()
-
-
Method Details
-
init
public void init() -
isVMMem
private boolean isVMMem(byte[] mem) -
getValue
private int getValue(boolean byteMode, byte[] mem, int offset) -
setValue
private void setValue(boolean byteMode, byte[] mem, int offset, int value) -
setLowEndianValue
public void setLowEndianValue(byte[] mem, int offset, int value) -
setLowEndianValue
-
getOperand
-
execute
-
getMem
public byte[] getMem() -
setIP
private boolean setIP(int ip) -
ExecuteCode
-
prepare
-
decodeArg
-
optimize
-
ReadData
-
IsStandardFilter
-
ExecuteStandardFilter
-
filterItanium_SetBits
private void filterItanium_SetBits(int curPos, int bitField, int bitPos, int bitCount) -
filterItanium_GetBits
private int filterItanium_GetBits(int curPos, int bitPos, int bitCount) -
setMemory
public void setMemory(int pos, byte[] data, int offset, int dataSize)
-