createprocess
readprocessmemory
writeprocessmemory
virtualallocex
virtualfreeex

解决方案 »

  1.   

    我有一个修改英雄无敌三的例程,要的话就写e-mail给我.
      

  2.   

    我用到的API有以下几个(成功修改的)
    FindWindow
    GetWindowThreadProcessId
    OpenProcess
    WriteProcessMemory
    ReadProcessMemory
    CloseHandle
      

  3.   

    对了,我的email: [email protected]
      

  4.   

    bool OpenhProcess(const LPCTSTR Caption)
    {
    CWnd* toFind;
    unsigned long p=0x00;
    toFind=CWnd::FindWindow(NULL,Caption);//找到窗口
    if(!toFind)
    {
    return false;
    }
    GetWindowThreadProcessId(toFind->m_hWnd ,&p);//得到窗口的ProcessID
    m_hProcess=OpenProcess(PROCESS_ALL_ACCESS,true,p);//打开Process
    if(!m_hProcess)
    {
    return false;
    }
    return true;
    }
    WriteProcessMemory(m_hProcess,Pointer,Buffer,Length,NULL)
    //写地址,pointer是一个指针,你有unsigned long的值的话可以用汇编把它变成指针,或者就看我的.
    Pointer = reinterpret_cast< void* > (address)
    Void *                        unsigned long/int
    至于这个地址,我想可以使用FPE2000来得到.先跟踪一下拉.
    最后,别忘了关闭句柄.
    bool ClosehProcess()
    {
    if(m_hProcess)
    {
    if(CloseHandle(m_hProcess))
    {
    m_hProcess=NULL;
    return true;
    }
    }
    return false;
    }