MCPcopy Create free account
hub / github.com/dobin/SuperMega / get_random_data_payload_rva

Method get_random_data_payload_rva

phases/injector.py:63–78  ·  view source on GitHub ↗
(self)

Source from the content-addressed store, hash-verified

61
62 # Backdoor: .rdata random
63 def get_random_data_payload_rva(self) -> int:
64 complete_size = len(self.payload.payload_data)
65 largest_gap = self.rdata_manager.find_holes(complete_size)
66 if len(largest_gap) == 0:
67 raise Exception('No hole found in code section to fit payload!')
68 largest_gap_size = largest_gap[0][1] - largest_gap[0][0]
69 offset = largest_gap[0][0]
70
71 rdata_section = self.superpe.get_section_by_name(".rdata")
72 if rdata_section == None:
73 raise Exception("No .rdata section found in PE file")
74 self.rdata_manager.add_range(offset, offset+len(self.payload.payload_data))
75
76 payload_rva = rdata_section.virt_addr + offset
77 #self.payload_rva = payload_rva
78 return payload_rva
79
80
81 # Backdoor: .text random

Callers 1

inject_exeMethod · 0.95

Calls 3

find_holesMethod · 0.80
get_section_by_nameMethod · 0.80
add_rangeMethod · 0.80

Tested by

no test coverage detected