Advertisement
Guest User

Untitled

a guest
Jun 30th, 2015
176
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 0.74 KB | None | 0 0
  1. BOOL is64bit=FALSE;
  2.  
  3. BOOL is64BitProcess()
  4. {
  5. HANDLE procImageFile;
  6. IMAGE_DOS_HEADER dosHdr;
  7. IMAGE_NT_HEADERS ntHdr;
  8. DWORD read;
  9. HMODULE mod;
  10. wchar_t fname[MAX_PATH] = { 0 };
  11.  
  12. mod = GetModuleHandle(NULL);
  13.  
  14. GetModuleFileNameW(mod, fname, MAX_PATH);
  15.  
  16. procImageFile = CreateFile((LPCWSTR)fname, GENERIC_READ, FILE_SHARE_READ, NULL, OPEN_EXISTING, 0, NULL);
  17.  
  18. if (procImageFile == INVALID_HANDLE_VALUE)
  19. return FALSE;
  20.  
  21. ReadFile(procImageFile, &dosHdr, sizeof(IMAGE_DOS_HEADER), &read, NULL);
  22.  
  23. SetFilePointer(procImageFile, dosHdr.e_lfanew, NULL, FILE_BEGIN);
  24.  
  25. ReadFile(procImageFile, &ntHdr, sizeof(IMAGE_NT_HEADERS), &read, NULL);
  26.  
  27. CloseHandle(procImageFile);
  28.  
  29. is64bit = ntHdr.FileHeader.Machine == IMAGE_FILE_MACHINE_AMD64;
  30.  
  31. return is64bit;
  32. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement