Ejemplo n.º 1
0
        protected void ExecuteOpcodes()
        {
            _cpuContext.Execute(_context, _entryPoint);

            if (_unicornAvailable)
            {
                _unicornEmu.RunForCount((_currAddress - _entryPoint - 4) / 4);
            }
        }
Ejemplo n.º 2
0
        protected void ExecuteOpcodes(bool runUnicorn = true)
        {
            _cpuContext.Execute(_context, CodeBaseAddress);

            if (_unicornAvailable && runUnicorn)
            {
                _unicornEmu.RunForCount((_currAddress - CodeBaseAddress - 4) / 4);
            }
        }
Ejemplo n.º 3
0
        protected void ExecuteOpcodes()
        {
            _translator.Execute(_context, _entryPoint);

            if (_unicornAvailable)
            {
                _unicornEmu.RunForCount((ulong)(_currAddress - _entryPoint - 4) / 4);
            }
        }
Ejemplo n.º 4
0
        protected void ExecuteOpcodes()
        {
            using (ManualResetEvent Wait = new ManualResetEvent(false))
            {
                Thread.ThreadState.Break += (sender, e) => Thread.StopExecution();
                Thread.WorkFinished      += (sender, e) => Wait.Set();

                Thread.Execute();
                Wait.WaitOne();
            }

            if (UnicornAvailable)
            {
                UnicornEmu.RunForCount((ulong)(Position - EntryPoint - 8) / 4);
            }
        }