public ElfRel(long Offset, long Addend, ElfSym Symbol, ElfRelType Type) { this.Offset = Offset; this.Addend = Addend; this.Symbol = Symbol; this.Type = Type; }
private bool TryGetSubName(Executable Exe, long Position, out string Name) { Position -= Exe.ImageBase; int Left = 0; int Right = Exe.SymbolTable.Count - 1; while (Left <= Right) { int Size = Right - Left; int Middle = Left + (Size >> 1); ElfSym Symbol = Exe.SymbolTable[Middle]; long EndPosition = Symbol.Value + Symbol.Size; if ((ulong)Position >= (ulong)Symbol.Value && (ulong)Position < (ulong)EndPosition) { Name = Symbol.Name; return(true); } if ((ulong)Position < (ulong)Symbol.Value) { Right = Middle - 1; } else { Left = Middle + 1; } } Name = null; return(false); }