public override void Relocate(Program program) { base.Relocate(program); var dynsect = loader.GetSectionInfoByName(".dynamic"); var dynentries = loader.GetDynEntries(dynsect.FileOffset).ToDictionary(k => k.d_tag); var symtab = dynentries[DynamicSectionRenderer.DT_SYMTAB]; var pltgot = dynentries[DynamicSectionRenderer.DT_PLTGOT].d_val; var mips_local_gotno = dynentries[DynamicSectionRenderer.Mips.DT_MIPS_LOCAL_GOTNO].d_val; var mips_gotsym = dynentries[DynamicSectionRenderer.Mips.DT_MIPS_GOTSYM].d_val; var dyngot = pltgot + (mips_local_gotno - mips_gotsym) * 4; //loader.CreateReader() for (int i = mips_gotsym; i < loader.Symbols.Count; ++i) { } }