Results 1 to 2 of 2

Thread: using the WriteProcessMemory API

  1. #1

    Thread Starter
    Addicted Member FOOBAR's Avatar
    Join Date
    Aug 2000
    Posts
    172

    using the WriteProcessMemory API

    can anyone give me an example on how to use the WriteProcessMemory API function?

    i dont really care what the example is on, your probly gonna have to use the getprocessmemory api too...how bout just showing me how to edit like calculator or somthign using it
    No Comment.

  2. #2
    Frenzied Member Vlatko's Avatar
    Join Date
    Aug 2000
    Location
    Skopje, Macedonia
    Posts
    1,409
    Here is some info
    Code:
    WriteProcessMemory
    The WriteProcessMemory function writes memory in a specified process. The entire area to be written to must be accessible, or the operation fails. 
    
    BOOL WriteProcessMemory(
      HANDLE hProcess,  // handle to process whose memory is written to
      LPVOID lpBaseAddress,
                        // address to start writing to
      LPVOID lpBuffer,  // pointer to buffer to write data to
      DWORD nSize,      // number of bytes to write
      LPDWORD lpNumberOfBytesWritten 
                        // actual number of bytes written
    );
     
    Parameters
    hProcess 
    Handle to the process whose memory is to be modified. The handle must have PROCESS_VM_WRITE and PROCESS_VM_OPERATION access to the process. 
    lpBaseAddress 
    Pointer to the base address in the specified process to be written to. Before any data transfer occurs, the system verifies that all data in the base address and memory of the specified size is accessible for write access. If this is the case, the function proceeds; otherwise, the function fails. 
    lpBuffer 
    Pointer to the buffer that supplies data to be written into the address space of the specified process. 
    nSize 
    Specifies the requested number of bytes to write into the specified process. 
    lpNumberOfBytesWritten 
    Pointer to the actual number of bytes transferred into the specified process. This parameter is optional. If lpNumberOfBytesWritten is NULL, the parameter is ignored. 
    Return Values
    If the function succeeds, the return value is nonzero.
    
    If the function fails, the return value is zero. To get extended error information, call GetLastError. The function will fail if the requested write operation crosses into an area of the process that is inaccessible. 
    
    Remarks
    WriteProcessMemory copies the data from the specified buffer in the current process to the address range of the specified process. Any process that has a handle with PROCESS_VM_WRITE and PROCESS_VM_OPERATION access to the process to be written to can call the function. The process whose address space is being written to is typically, but not necessarily, being debugged. 
    
    The entire area to be written to must be accessible. If it is not, the function fails as noted previously.
    I am become death, the destroyer of worlds.
    mail:[email protected]

    • Visual Basic 6.0 & .NET
    • Visual C++ 6.0 & .NET
    • ASP
    • LISP
    • PROLOG
    • C
    • Pascal

Posting Permissions

  • You may not post new threads
  • You may not post replies
  • You may not post attachments
  • You may not edit your posts
  •  



Click Here to Expand Forum to Full Width