Exemple #1
0
        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);
        }
Exemple #2
0
        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);
 }
Exemple #7
0
 public void Process(IHackContext context, PatternFinding finding, Stack <Pointer> operands, ScanResult result)
 {
     operands.Push(Value);
 }