Exemplo n.º 1
0
        public void Load(string path, long baseAddr)
        {
            BaseAddress = baseAddr;
            asm         = WindowsAssembly.FromFile(path);
            entryMethod = this.CreateMethodFromRVA(asm.NtHeaders.OptionalHeader.AddressOfEntrypoint);
            methods[entryMethod.Address] = entryMethod;
            entryMethod.Initialize();

            while (pendingAddresses.Count > 0)
            {
                var emu = pendingAddresses.GetEnumerator();
                emu.MoveNext();
                long addr   = emu.Current;
                var  method = this.CreateMethodFromAddress(addr);
                methods[addr] = method;
                method.Initialize();
                pendingAddresses.Remove(addr);
            }
        }