MCPcopy Create free account
hub / github.com/Vector35/binaryninja-api / VirtualMemoryReader

Class VirtualMemoryReader

view/sharedcache/core/VirtualMemory.h:91–160  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

89};
90
91class VirtualMemoryReader
92{
93 std::shared_ptr<VirtualMemory> m_memory;
94 uint64_t m_cursor;
95 uint64_t m_addressSize;
96 BNEndianness m_endianness = LittleEndian;
97
98public:
99 explicit VirtualMemoryReader(std::shared_ptr<VirtualMemory> memory, uint64_t addressSize = 8);
100
101 void SetEndianness(BNEndianness endianness) { m_endianness = endianness; }
102
103 BNEndianness GetEndianness() const { return m_endianness; }
104
105 void Seek(const uint64_t address) { m_cursor = address; };
106
107 void SeekRelative(const size_t offset) { m_cursor += offset; };
108
109 size_t GetOffset() const { return m_cursor; }
110
111 std::string ReadCString(uint64_t address, size_t maxLength = -1);
112
113 uint64_t ReadULEB128(size_t cursorLimit);
114
115 int64_t ReadSLEB128(size_t cursorLimit);
116
117 uint64_t ReadPointer();
118
119 uint64_t ReadPointer(uint64_t address);
120
121 uint8_t ReadUInt8();
122
123 uint8_t ReadUInt8(uint64_t address);
124
125 int8_t ReadInt8();
126
127 int8_t ReadInt8(uint64_t address);
128
129 uint16_t ReadUInt16();
130
131 uint16_t ReadUInt16(uint64_t address);
132
133 int16_t ReadInt16();
134
135 int16_t ReadInt16(uint64_t address);
136
137 uint32_t ReadUInt32();
138
139 uint32_t ReadUInt32(uint64_t address);
140
141 int32_t ReadInt32();
142
143 int32_t ReadInt32(uint64_t address);
144
145 uint64_t ReadUInt64();
146
147 uint64_t ReadUInt64(uint64_t address);
148

Callers 1

GetReaderMethod · 0.85

Calls

no outgoing calls

Tested by

no test coverage detected