Пример #1
0
        public unsafe static Instruction PeekDecode(this Decoder RefDecoder)
        {
            var NewMem     = new MemoryCodeReader((void *)RefDecoder.IP);
            var NewDecoder = Decoder.Create(RefDecoder.Bitness, NewMem);

            NewDecoder.IP = RefDecoder.IP;
            return(NewDecoder.Decode());
        }
Пример #2
0
        public unsafe static InstructionList AssembleToList(this Assembler Assembler, ulong RIP)
        {
            var CWBuffer = new MemoryCodeWriter();

            Assembler.Assemble(CWBuffer, RIP);
            var Buffer = CWBuffer.ToArray();

            fixed(void *pBuffer = &Buffer[0])
            {
                using (var Reader = new MemoryCodeReader(pBuffer, (uint)Buffer.Length))
                {
                    var AsmDecoder = Decoder.Create(Assembler.Bitness, Reader);
                    return(AsmDecoder.DecodeAmount((uint)Assembler.Instructions.Count));
                }
            }
        }