勿在浮沙筑高台  16:15:23
朋友  请教一个问题 

win7 64 webbrowser 使用send 还是 wsasend

我用了 你的抓包控件   抓不到数据  .  求指点一二. 谢谢大神
武稀松  16:18:21
IE11是WSASend,其他版本IE是Send
勿在浮沙筑高台  16:19:11
哦. 谢谢了.  我的问题是webbrowser  你的意思是webbrowser 和ie11 一样都是wsasend.  

大神. 你忙么? 帮我看看代码.我确定hook语法 正确. 但是没数据.帮看看  好不好
勿在浮沙筑高台  16:22:08
winsock2  这个单元里  本身就有 wassend  这个函数.  所以我感觉我函数参数不会错.

然后我把这个函数 复制 改名.  找葫芦画瓢.   依照你的demo  找葫芦画瓢.

结果没数据.     
武稀松  16:23:38
我一直在这样Hook Webbrowser和IE,FireFox等各种浏览器的数据.没发现有问题
勿在浮沙筑高台  16:24:01
这个函数的第二个参数 是一个 记录.   但是我查看百度 说第二个参数是 一个记录数组.

到底那个正确.  我感觉我相信winsock2单元里的代码  但是没反应.   你能不能给试试.

哦. 
那 win7  64 位  有没有简单的demo 给我一个. 我参考一下. 都已经折磨了半个月了
武稀松  16:24:36
记录和记录数组没区别.都是结构体的地址.
我的代码不可能给你
勿在浮沙筑高台  16:25:50
哦.  那就是两者不矛盾. ..  你确定你 win7  64 hook  wsasend  成功的. 是么?  要是的话. 我就放心了. 我在 看看 ,
武稀松  16:26:25
上面说了我一直在用
勿在浮沙筑高台  16:26:53
恩.  谢谢了.   代码真的不能给.是么?   跪求了.  
师傅.  
勿在浮沙筑高台  16:34:13
给个 exe  也可以.  hook  其内的  wsasend  

http://www.raysoftware.cn/?p=357  用的是 这个地址下的 hook  

最新的库.我没找到  下在按钮.      可以么?  我就感受一下  我现在感觉调用方式 都正确着.  就是蛋疼.     非常感谢. 好不好  
武稀松  16:43:35
你到SVN上拉最新的
勿在浮沙筑高台  16:44:51
哦  svn  是啥  ?    网址?多少?

WIN7的C:\Documents and Settings无法访问!  我用的是管理员账号. 是不是我权限不够的问题. 所以hook 不到.  是么?    
勿在浮沙筑高台  16:52:22
老大  问一下.  需要提高权限.  ring0 什么的么?   或者需要破解什么保护么? 还是直接就能hook到 wsasend. 求告知。 多谢
武稀松  16:52:50
都不需要
勿在浮沙筑高台  16:53:03
那太好了。  我在看看 
勿在浮沙筑高台  17:04:51

  oldwsasend: function(s: TSocket; lpBuffers: LPWSABUF; dwBufferCount: DWORD;
  var lpNumberOfBytesSent: DWORD; dwFlags: DWORD; lpOverlapped: LPWSAOVERLAPPED;
  lpCompletionRoutine: LPWSAOVERLAPPED_COMPLETION_ROUTINE): Integer; stdcall;

  function WSASend2(s: TSocket; lpBuffers: LPWSABUF; dwBufferCount: DWORD;
  var lpNumberOfBytesSent: DWORD; dwFlags: DWORD; lpOverlapped: LPWSAOVERLAPPED;
  lpCompletionRoutine: LPWSAOVERLAPPED_COMPLETION_ROUTINE): Integer; stdcall;
  var tt:tstringlist;
  begin

       {
          tt:=tstringlist.Create;
          tt.SaveToFile('c:\ggg.txt');
          tt.Free;               }
          form4.Caption:='1111' ;

     Result := oldwsasend(s, lpBuffers, dwBufferCount,
  lpNumberOfBytesSent, dwFlags, lpOverlapped,
  lpCompletionRoutine);
  end; 

=========================上面是 定义。 下面是调用  你看看我哪里错了。  依然是没反应啊
  @oldwsasend := HookProc('ws2_32.dll', 'wsasend', @wsasend2);
勿在浮沙筑高台  17:06:02
实在的没办法了。 给看看把。  菜鸟求助。

武稀松  17:06:57
WebBrowser你没设置版本的时候是IE7核心的
勿在浮沙筑高台  17:07:37
哦。 这样啊。 那我是不是该 hook  send 函数呢
怎么设置 版本啊 
勿在浮沙筑高台  17:15:36






var
 oldsend: function (s: TSocket; const Buf; len, flags: Integer): Integer; stdcall;
  function send2(s: TSocket; const Buf; len, flags: Integer): Integer; stdcall;
    var tt:tstringlist;
  begin
    tt:=tstringlist.Create;
    tt.SaveToFile('c:\zhaiming.txt');
    tt.Free;

   result:=oldsend(s, Buf,len,flags);
  end;
==================================================上面是 定义。 下面是调用  你看看我哪里错了。  依然是没反应啊
 @oldsend:=hookproc('wsock32.dll','send',@send2);

这次hook  send  也是每反映啊。  
帮看看  
勿在浮沙筑高台  17:16:46
哥。 我已经崩溃了。  你就给我个demo 我研究研究好么
武稀松  17:21:47
告诉你你Hook的DLL根本就不对.
ws2_32.dll
你再研究去吧.我时间也不是太多
勿在浮沙筑高台  17:22:02
   好把
武稀松  17:22:21
他们用的Socket2的函数.DLL是ws2_32.dll
勿在浮沙筑高台  17:24:57
我看看。 我是直接在 socket2 单元里找的 dll 应该不会错把
武稀松  17:25:45
你再看看Socket2单元里面的DLL名,是不是你写的
勿在浮沙筑高台  17:25:48


哦。  明天再请教你。   麻烦了。   谢谢老师
武稀松  17:26:22

你在看你写的
勿在浮沙筑高台  17:27:44
我刚才写的这个是hook  send 的。 你说webbrowser 是在ie7  所以我换了函数。

我查找send  确实在 wsock32.dll  


我第一次 hook的是 wsasend  第一次我用的 dll  确实是  ws2_32.dll
武稀松  17:28:25
ws2_32.DLL里面是Socket2的Send,你拦截的是Socket1的Send.还不知道吗!
勿在浮沙筑高台  17:28:56
哦。  知道了。 谢谢了。  原来如此。  多谢大神。 我明白了。
 我看看。  我是菜鸟。   太感谢了