正在做CS外挂程序,想用API HOOK技术,拦截了多个API,可总是理不出什么头绪,
有谁有相关的经验或资料,不胜感激!
有谁有相关的经验或资料,不胜感激!
解决方案 »
- 今日辞职散分
- 好书啊
- 寻数字签名工具
- 如何判断两个GUID相等?
- TABLE1.DATASOURCE,TABLE1.DATANAME是不是只能连接一个表,而且程序理只读,不可写?
- 兩個時間怎麼求差? 時間str1:=7:50,str2:=7:30,其差為0.3333小時,誰做過????
- XE4 File not found DBSumLst.dcu
- 我真他妈的冤枉:
- 同样的方法为什么在FormCreate中可以执行但在OnClick中就不能正常执行?
- 哪里有教你关于安装DELPHI的控件的详细资料,小弟初学不会装,控件倒下了一大堆!各位大侠帮帮忙!
- 象Microsoft Access那样的窗口如何实现?
- 如何改变dbgrid显示的列名?
有什么
资料?
源码?
说清楚些
要看你说的"死"是哪种了,如果是服务端已经退出了可以用这种方法:
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.