MCPcopy Create free account
hub / github.com/NtQuery/Scylla / readPeHeaderFromProcess

Method readPeHeaderFromProcess

Scylla/PeParser.cpp:198–232  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

196}
197
198bool PeParser::readPeHeaderFromProcess(bool readSectionHeaders)
199{
200 bool retValue = false;
201 DWORD correctSize = 0;
202
203 DWORD readSize = getInitialHeaderReadSize(readSectionHeaders);
204
205 headerMemory = new BYTE[readSize];
206
207 if (ProcessAccessHelp::readMemoryPartlyFromProcess(moduleBaseAddress, readSize, headerMemory))
208 {
209 retValue = true;
210
211 getDosAndNtHeader(headerMemory, (LONG)readSize);
212
213 if (isValidPeFile())
214 {
215 correctSize = calcCorrectPeHeaderSize(readSectionHeaders);
216
217 if (readSize < correctSize)
218 {
219 readSize = correctSize;
220 delete [] headerMemory;
221 headerMemory = new BYTE[readSize];
222
223 if (ProcessAccessHelp::readMemoryPartlyFromProcess(moduleBaseAddress, readSize, headerMemory))
224 {
225 getDosAndNtHeader(headerMemory, (LONG)readSize);
226 }
227 }
228 }
229 }
230
231 return retValue;
232}
233
234bool PeParser::readPeHeaderFromFile(bool readSectionHeaders)
235{

Callers

nothing calls this directly

Calls

no outgoing calls

Tested by

no test coverage detected