Changeset 4176 for trunk/src/kernel32


Ignore:
Timestamp:
Sep 3, 2000, 10:22:32 PM (25 years ago)
Author:
phaller
Message:

Access check in ReadProcessMemory / WriteProcessMemory

File:
1 edited

Legend:

Unmodified
Added
Removed
  • trunk/src/kernel32/stubs.cpp

    r4174 r4176  
    16971697           cbRead,
    16981698           lpNumberOfBytesRead));
     1699
     1700  // do some (faked) access check
     1701  if (hProcess != GetCurrentProcess())
     1702  {
     1703    SetLastError(ERROR_ACCESS_DENIED);
     1704    return FALSE;
     1705  }
     1706
     1707 
    16991708  // FIXME: check this, if we ever run win32 binaries in different addressspaces
    17001709  //    ... and add a sizecheck
    17011710  memcpy(lpBuffer,lpBaseAddress,cbRead);
    1702   if (lpNumberOfBytesRead) *lpNumberOfBytesRead = cbRead;
     1711  if (lpNumberOfBytesRead)
     1712    *lpNumberOfBytesRead = cbRead;
     1713 
    17031714  return TRUE;
    17041715}
     
    17221733 *****************************************************************************/
    17231734
    1724 DWORD WIN32API WriteProcessMemory(HANDLE  hProcess,
    1725                                      LPCVOID lpBaseAddress,
    1726                                      LPVOID  lpBuffer,
    1727                                      DWORD   cbWrite,
    1728                                      LPDWORD lpNumberOfBytesWritten)
     1735BOOL WIN32API WriteProcessMemory(HANDLE  hProcess,
     1736                                 LPCVOID lpBaseAddress,
     1737                                 LPVOID  lpBuffer,
     1738                                 DWORD   cbWrite,
     1739                                 LPDWORD lpNumberOfBytesWritten)
    17291740{
    17301741  dprintf(("Kernel32: WriteProcessMemory(%08xh,%08xh,%08xh,%08xh,%08xh) not implemented.\n",
     
    17341745           cbWrite,
    17351746           lpNumberOfBytesWritten));
    1736 
     1747 
     1748  // do some (faked) access check
     1749  if (hProcess != GetCurrentProcess())
     1750  {
     1751    SetLastError(ERROR_ACCESS_DENIED);
     1752    return FALSE;
     1753  }
     1754 
    17371755  // FIXME: check this, if we ever run win32 binaries in different addressspaces
    17381756  //    ... and add a sizecheck
    17391757  memcpy((void*)lpBaseAddress,lpBuffer,cbWrite);
    1740   if (lpNumberOfBytesWritten) *lpNumberOfBytesWritten = cbWrite;
     1758  if (lpNumberOfBytesWritten)
     1759    *lpNumberOfBytesWritten = cbWrite;
     1760 
    17411761  return TRUE;
    17421762}
Note: See TracChangeset for help on using the changeset viewer.