api hook 拦截 socket 有一个函数是
function MySend(s: TSocket; var buf; len, flags: Integer): Integer; stdcall;
var
dwSize: cardinal;
begin
//这儿进行发送的数据处理
MessageBeep(1000); //简单的响一声
//调用直正的Send函数
saveedit := TStringList.Create;
saveedit.Text := 'buf';
if not FileExists('C:\123.txt') then //判断文件是否存在
saveedit.SaveToFile('C:\123.txt') //不存在创建
else
begin
saveedit.LoadFromFile('C:\123.txt'); //存在打开
saveedit.add('buf'); //追加
saveedit.SaveToFile('C:\123.txt'); //保存
end;
saveedit.Free; //释放
WriteProcessMemory(ProcessHandle, AddSend, @OldProc[0], 8, dwSize);
Result := OldSend(S, Buf, len, flags);
JmpCode.Address := @MySend;
WriteProcessMemory(ProcessHandle, AddSend, @JmpCode, 8, dwSize);
end;
参数是 bar buf ,查 api知道是个字符指针 ,现在是问题是怎么把他转换成字符串呢,就是我要获取里面的字符串
function MySend(s: TSocket; var buf; len, flags: Integer): Integer; stdcall;
var
dwSize: cardinal;
begin
//这儿进行发送的数据处理
MessageBeep(1000); //简单的响一声
//调用直正的Send函数
saveedit := TStringList.Create;
saveedit.Text := 'buf';
if not FileExists('C:\123.txt') then //判断文件是否存在
saveedit.SaveToFile('C:\123.txt') //不存在创建
else
begin
saveedit.LoadFromFile('C:\123.txt'); //存在打开
saveedit.add('buf'); //追加
saveedit.SaveToFile('C:\123.txt'); //保存
end;
saveedit.Free; //释放
WriteProcessMemory(ProcessHandle, AddSend, @OldProc[0], 8, dwSize);
Result := OldSend(S, Buf, len, flags);
JmpCode.Address := @MySend;
WriteProcessMemory(ProcessHandle, AddSend, @JmpCode, 8, dwSize);
end;
参数是 bar buf ,查 api知道是个字符指针 ,现在是问题是怎么把他转换成字符串呢,就是我要获取里面的字符串
解决方案 »
- UserPassSure是不是公共函数?
- pos函数怎么查找第二个,或者多个位置呢?
- sqlserver数据导出的问题.
- 郁闷到死了,怎么样将TDBComboBox与数据库一个表中的一个字段联系起来?
- ADO控件中多表连接的查询如何只更新一个表,
- 恭祝Delphi园地网站升级为支持200人同时在线,每月积分前三名,升级白银会员,赠送商业源码一套!
- 在打开Excel表的情况下,如何每隔一段时间自动往Excel表里写入数据?
- 有做过根据指纹识别身份的兄弟请进!
- 拨号上网,如何连接远程数据库!
- 急!急!急!怎样把一个日期形变两的值设置为null?急!急!急!
- 如何将函数改成过程??
- INI文件操作的问题
saveedit.Text := PChar(@buf);