关于delphi hook send后修改buf的有关问题

求助关于delphi hook send后修改buf的问题
Delphi(Pascal) code

function MySend(s: TSocket; var Buf; len, flags: Integer): Integer; stdcall;
var
str:array of char;
begin
setLength(str,len);
copymemory(str,@buf,len);
//然后string(str)就是最终的字符串了,想要修改之
end;



这个拦截没问题,就是修改buf内容时,长度和原来的buf长度不一样时,修改后socket返回错误了.

是不是还要用VirtualAllocEx来重新分配buf的长度,然后在len这里指定新的长度啊?希望有熟悉这方面的朋友给个思路,不知道你们是怎么修改的buf内容?

------解决方案--------------------
你不会重新调用send发新数据吗?
------解决方案--------------------
你不会重新调用send发新数据吗?