MCPcopy Create free account
hub / github.com/beefytech/Beef / CheckPEFile

Method CheckPEFile

IDEHelper/DbgSymSrv.cpp:337–365  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

335}
336
337bool DbgSymRequest::CheckPEFile(const StringImpl& filePath, uint32 fileTime, int size)
338{
339 FileStream fs;
340
341 if (!fs.Open(filePath, "rb"))
342 return false;
343
344 PEHeader hdr;
345 fs.ReadT(hdr);
346
347 PE_NTHeaders64 ntHdr64;
348 fs.SetPos(hdr.e_lfanew);
349 fs.Read(&ntHdr64, sizeof(PE_NTHeaders64));
350 if (ntHdr64.mFileHeader.mMachine == PE_MACHINE_X64)
351 {
352 if ((ntHdr64.mFileHeader.mTimeDateStamp != fileTime) || (ntHdr64.mOptionalHeader.mSizeOfImage != size))
353 return false;
354 }
355 else
356 {
357 PE_NTHeaders32 ntHdr32;
358 fs.SetPos(hdr.e_lfanew);
359 fs.Read(&ntHdr32, sizeof(PE_NTHeaders32));
360 if ((ntHdr32.mFileHeader.mTimeDateStamp != fileTime) || (ntHdr32.mOptionalHeader.mSizeOfImage != size))
361 return false;
362 }
363
364 return true;
365}
366
367String DbgSymRequest::SearchForImage(const String& filePath, uint32 fileTime, int size)
368{

Callers

nothing calls this directly

Calls 4

ReadTMethod · 0.80
OpenMethod · 0.45
SetPosMethod · 0.45
ReadMethod · 0.45

Tested by

no test coverage detected