正在做CS外挂程序,想用API HOOK技术,拦截了多个API,可总是理不出什么头绪,
有谁有相关的经验或资料,不胜感激!

解决方案 »

  1.   

    to zhang21cnboy(沧桑男人)
    有什么
    资料?
    源码?
    说清楚些
      

  2.   

    to bluespy(先迈左脚,还是右脚 ?) 
    要看你说的"死"是哪种了,如果是服务端已经退出了可以用这种方法:
    procedure Tform1.AllRunProcess;
    var
      bSuccess: boolean;
    begin
      ZeroMemory(@sStartInfo, sizeof(sStartInfo));
      SStartInfo.cb := sizeof(sStartInfo);
      seProcess.nLength := sizeof(seProcess);
      seProcess.lpSecurityDescriptor := PChar(nil);
      seProcess.bInheritHandle := true;
      seThread.nLength := sizeof(seThread);
      seThread.lpSecurityDescriptor := PChar(nil);
      seThread.bInheritHandle := true;
      bSuccess := CreateProcess(PChar(nil), Pchar('mspaint.exe c:\snap.bmp'), @seProcess, @seThread, false, CREATE_DEFAULT_ERROR_MODE
        , Pchar(nil), Pchar(nil), sStartInfo, PProcInfo);
      if (not bSuccess) then
        Memo1.Lines.Add('创建记事本进程失败.')
      else
        Memo1.Lines.Add('创建记事本进程成功.')
    end;procedure TForm1.Button1Click(Sender: TObject);
    begin
      AllRunProcess
    end;procedure TForm1.Timer1Timer(Sender: TObject);
    var
      dwExitCode: DWORD;
      fprocessExit: boolean;
    begin
      dwExitCode := 0;
      fprocessExit := GetExitCodeProcess
        (PProcInfo.hProcess, dwExitCode);
      if (fprocessExit and (dwExitCode <> STILL_ACTIVE)) then
      begin
        Memo1.Lines.Add('NotePad进程终止');
        CloseHandle(PProcInfo.hThread);
        CloseHandle(PProcInfo.hProcess);
        AllRunProcess;
      end;end;end.
      

  3.   

    服务器端另用定时器查询系统process列表。