在次提问! FPE到底是怎么做的?
高手请详细说明,谢啦!

解决方案 »

  1.   

    涉及wIN32下跨区修改内存,很麻烦!
      

  2.   

    http://www.china-askpro.com/msg30/qa82.shtml
    上面的连接有一段讲如何搜索地址的代码
    http://www.torry.net/vcl/misc/games/memcheater.zip
    这个东西是在已知地址的情况下修改数据的方法。(这是个控件,你可以看看源码)
      

  3.   

    http://www.torry.net/vcl/misc/games/memcheater.zip
    大步开
      

  4.   

    var  WIN : integer;
      PID : integer;
      TID : integer;
      HND : integer;
      WRT : cardinal;
      BUF : pchar;const  Caption = 'MyWindow';
      Addr0 = $0000453e;//假设要修改的地址是这个
      Poke0 = $28; //要写入的值是这个
      Bytes = 1; //写一个字节,以上都可以定义成变量begin// 通过窗口标题找的窗口
         WIN := FindWindow(nil,Caption);// 取得进程ID
         TID := GetWindowThreadProcessId(WIN,@PID);// 创建访问进程的句饼
         HND := OpenProcess(PROCESS_ALL_ACCESS,False,PID);// 为要修改的直创建指针
         GetMem(BUF,1);// 确定要写入的值,并写入进程
         BUF^ := Chr(Poke0);
         WriteProcessMemory(HND,ptr(Addr0),BUF,Bytes,WRT);// 释放内存,关闭句饼
         FreeMem(BUF);
         closehandle(HND);