Thread: where can i learn what an API is?

  1. #1
    Geo Geo Geo-Fry
    Join Date
    Feb 2003
    Posts
    116

    where can i learn what an API is?

    before you go on, i would like you to know that im asking this in the interest of creating a game hack for the game starcraft: broodwar. if your against hacking games, then leave now.

    anyway, i always hear people talking APIs, and i dont even know what one is. on another board i subscribe to, ([url="http://www.gamethreat.com"]Gamethreat[/ulr]), they posted how to make a hack in general, by calling the WriteProcessMemory function, and said it had to do with APIs. i didnt understand, and people there arent particularly helpful, so i was wondering if someone would help me with this.

    here is what someone on gamethreat posted:

    Code:
    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 of process whose memory is written to  
        LPVOID  lpBaseAddress,   // address to start writing to 
        LPVOID  lpBuffer,   // address of buffer to write data to 
        DWORD  cbWrite,   // number of bytes to write 
        LPDWORD  lpNumberOfBytesWritten    // actual number of bytes written 
       );    
    Parameters 
    
    hProcess 
    
    Identifies an open handle of a process whose memory is to be written to. The handle must have PROCESS_VM_WRITE and PROCESS_VM_OPERATION access to the process. 
    
    lpBaseAddress 
    
    Points 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 
    
    Points to the buffer that supplies data to be written into the address space of the specified process. 
    
    cbWrite 
    
    Specifies the requested number of bytes to write into the specified process. 
    
    lpNumberOfBytesWritten 
    
    Points to the actual number of bytes transferred into the specified process. This parameter is optional. If lpNumberOfBytesWritten is NULL, the parameter is ignored. 
    
    Return Value 
    
    If the function succeeds, the return value is TRUE. 
    If the function fails, the return value is FALSE. 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.
    "You can lead a man to Congress, but you can't make him think."
    "The Grand Old Duke of York
    -He had ten thousand men.
    -His case comes up next week."
    "Roses are red, violets are blue, I'm schizophrenic, and so am I."
    "A computer once beat me at chess, but it was no match for me at kick boxing."
    "More and more of our imports are coming from overseas."
    --George W. Bush
    "If it weren't for electricity, we'd all be wacthing TV by candlelight."
    --George W. Bush

  2. #2
    Hardware Engineer
    Join Date
    Sep 2001
    Posts
    1,398

    Application Program Interface

    The Windows API is the few-thousand functions from windows.h.

    These are of course, non-standard C++ functions. But it is a "Windows standard", so you can write programs that are portable between various Windows compilers.

    You can check out Sunlight's tutorials, then when you feel ready, get "Programming Windows" by Charles Petzold.

    Although Windows programming is difficult, you don't have to know lots of C++ to get started. Petzold uses C in his examples... No ploymorphism, no objects, no STL. If you want to write good C++ Windows programs that actually "do something" as well as look good... you still need to learn C++ !!

    [EDIT]
    There are a zillion typedef's too (LPVOID , DWORD, etc). And, lots of DLLs...
    Last edited by DougDbug; 08-12-2003 at 01:21 PM.

  3. #3
    pronounced 'fib' FillYourBrain's Avatar
    Join Date
    Aug 2002
    Posts
    2,297
    As Doug stated, this is the way most beginners get started on the Win32 API
    Petzold = http://www.charlespetzold.com/pw5/index.html
    "You are stupid! You are stupid! Oh, and don't forget, you are STUPID!" - Dexter

  4. #4
    Pursuing knowledge confuted's Avatar
    Join Date
    Jun 2002
    Posts
    1,916
    A lot of people also use Schildt's "Windows Programming from the Ground Up"
    Away.

  5. #5
    Geo Geo Geo-Fry
    Join Date
    Feb 2003
    Posts
    116
    firstly, that sunlight tutorial has a thanks list, and one of the people on the list is adrianxw. is that the same adrianxw that is on this board?
    There are a zillion typedef's too (LPVOID , DWORD, etc). And, lots of DLLs...
    is that good or bad?
    and finally, thanks for the help
    "You can lead a man to Congress, but you can't make him think."
    "The Grand Old Duke of York
    -He had ten thousand men.
    -His case comes up next week."
    "Roses are red, violets are blue, I'm schizophrenic, and so am I."
    "A computer once beat me at chess, but it was no match for me at kick boxing."
    "More and more of our imports are coming from overseas."
    --George W. Bush
    "If it weren't for electricity, we'd all be wacthing TV by candlelight."
    --George W. Bush

Popular pages Recent additions subscribe to a feed

Similar Threads

  1. Programming Windows API in C++
    By JoshR in forum C++ Programming
    Replies: 5
    Last Post: 03-29-2005, 05:40 AM
  2. OpenSSL and Win32 SSL API :: SSL/TLS
    By kuphryn in forum Networking/Device Communication
    Replies: 0
    Last Post: 03-10-2004, 07:46 PM
  3. FILES in WinAPI
    By Garfield in forum Windows Programming
    Replies: 46
    Last Post: 10-02-2003, 06:51 PM
  4. API gurus: learning tips?
    By Shadow12345 in forum Game Programming
    Replies: 3
    Last Post: 06-10-2002, 05:32 PM
  5. Learn Win32 API or C++Builder?
    By Flucas in forum Windows Programming
    Replies: 1
    Last Post: 10-18-2001, 01:49 AM