Example #1
0
        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)
            {
            }
        }