code: def resolve_rva(self, rva):
          
          containing_section = self.get_section_of_rva(rva)
  
          in_section_offset = containing_section.PointerToRawData -\
              containing_section.VirtualAddress
  
          return in_section_offset + rva
docs: RVAs are supposed to be used with the image of the file in memory.
              There's no direct algorithm to calculate the offset of an RVA in
              the file.
  
              What we do here is to find the section that contains the RVA and
              then we calculate the offset between the RVA of the section
              and the offset of the section in the file. With this offset, we can
              compute the position of the RVA in the file