public void Process(IHackContext context, PatternFinding finding, Stack <Pointer> operands, ScanResult result) { var top = operands.Pop(); var bottom = operands.Pop(); operands.Push(top); operands.Push(bottom); }
public void Process(IHackContext context, PatternFinding finding, Stack <Pointer> operands, ScanResult result) { var a = operands.Pop(); var b = operands.Pop(); var res = Calculate(a, b); operands.Push(res); }
public void Process(IHackContext context, PatternFinding finding, Stack <Pointer> operands, ScanResult result) { Pointer operand = Pointer.Zero; var Offset = (int)operands.Pop().Address32; switch (Type) { case OperandType.i8: operand = (int)finding.Data[Offset]; break; case OperandType.i16: operand = new Pointer(BitConverter.ToInt16(finding.Data, Offset)); break; case OperandType.i32: operand = new Pointer(BitConverter.ToInt32(finding.Data, Offset)); break; case OperandType.i64: operand = new Pointer(BitConverter.ToInt64(finding.Data, Offset)); break; case OperandType.u16: operand = new Pointer(BitConverter.ToUInt16(finding.Data, Offset)); break; case OperandType.u32: operand = new Pointer(BitConverter.ToUInt32(finding.Data, Offset)); break; case OperandType.u64: operand = new Pointer(BitConverter.ToUInt64(finding.Data, Offset)); break; } operands.Push(operand); }
public void Process(IHackContext context, PatternFinding finding, Stack <Pointer> operands, ScanResult result) { Pointer address = operands.Pop(); Pointer value = Pointer.Zero; switch (Type) { case OperandType.i8: value = (long)context.Memory.Read <byte>(address); break; case OperandType.i16: value = (long)context.Memory.Read <short>(address); break; case OperandType.i32: value = (long)context.Memory.Read <int>(address); break; case OperandType.i64: value = (long)context.Memory.Read <long>(address); break; case OperandType.u16: value = (long)context.Memory.Read <ushort>(address); break; case OperandType.u32: value = (long)context.Memory.Read <uint>(address); break; case OperandType.u64: value = (long)context.Memory.Read <ulong>(address); break; } operands.Push(value); }
public void Process(IHackContext context, PatternFinding finding, Stack <Pointer> operands, ScanResult result) { result.Values[Name] = operands.Pop(); }
public void Process(IHackContext context, PatternFinding finding, Stack <Pointer> operands, ScanResult result) { operands.Push(context.Process.Modules.FirstOrDefault(x => x.Name == ModuleName).BaseAddress); }
public void Process(IHackContext context, PatternFinding finding, Stack <Pointer> operands, ScanResult result) { operands.Push(Value); }