比如拦截到js语句:  alert('hi');, 并可以随意返回结果,如可变成 document.write('hi');

解决方案 »

  1.   

    http://blog.csdn.net/zhoujianhei/archive/2008/01/16/2046320.aspx看到这篇,不过看不懂.不知delphi如何入手!不知是不是这方面走!?
      

  2.   

    他那篇博客讲的就是一个COM钩
    就是找到你要钩的函数在Vtbl中的位置,然后就是把你自己实现的函数以写内存的方式写进去,达到钩的效果
    通常会判断下那块内存是否具有可写属性, 没有的话,修改,然后再写
      

  3.   

    高手终于出现了!
    那是VC看得云里雾里的. 我应该在 webbrower 的哪个事件里面开始 hook 呢? 就是不知道代码填在哪.
      

  4.   

    http://bbs.eyuyan.com/read.php?tid=161573
    这个易语言的更难懂了
      

  5.   

    有点明白了 madcodehook 几行代码就应该差不多了.试试先
      

  6.   

    实现IDocHostShowUI接口可以获得alert的消息,另外在网页中执行javascript也需要有webbrowser的支持,你可以搜搜unit Unit2;interfaceuses
      Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
      Dialogs, OleCtrls, SHDocVw,ActiveX;type
      IDocHostShowUI = interface(IUnknown)
        ['{c4d244b0-d43e-11cf-893b-00aa00bdce1a}']
        function ShowMessage(hwnd: THandle; lpstrText: POLESTR; lpstrCaption: POLESTR;dwType: longint; lpstrHelpfile: POLESTR; dwHelpContext: longint;var plResult: LRESULT): HRESULT; stdcall;
        function ShowHelp(hwnd: THandle; pszHelpfile: POLESTR; uCommand: integer;dwData: longint; ptMouse: TPoint; var pDispatchObjectHit: IDispatch): HRESULT; stdcall;
      end;  TWebBrowser = class(SHDocVw.TWebBrowser,IDocHostShowUI)
      protected
        function ShowMessage(hwnd: THandle; lpstrText: POLESTR; lpstrCaption: POLESTR;dwType: longint; lpstrHelpfile: POLESTR; dwHelpContext: longint;var plResult: LRESULT): HRESULT; stdcall;
        function ShowHelp(hwnd: THandle; pszHelpfile: POLESTR; uCommand: integer;dwData: longint; ptMouse: TPoint; var pDispatchObjectHit: IDispatch): HRESULT; stdcall;
      end;  TForm2 = class(TForm)
        WebBrowser1: TWebBrowser;
        procedure FormCreate(Sender: TObject);
      private
        { Private declarations }
      public
        { Public declarations }
      end;var
      Form2: TForm2;implementation{$R *.dfm}{ TWebBrowser }function TWebBrowser.ShowHelp(hwnd: THandle; pszHelpfile: POLESTR; uCommand,
      dwData: Integer; ptMouse: TPoint; var pDispatchObjectHit: IDispatch): HRESULT;
    begin
      Result := S_FALSE;
    end;function TWebBrowser.ShowMessage(hwnd: THandle; lpstrText,
      lpstrCaption: POLESTR; dwType: Integer; lpstrHelpfile: POLESTR;
      dwHelpContext: Integer; var plResult: LRESULT): HRESULT;
    begin
      plResult := MessageBoxW(hwnd,PWChar(lpstrText),'不得闲测试',65);
      Result := S_OK;
    end;procedure TForm2.FormCreate(Sender: TObject);
    begin
      self.WebBrowser1.Navigate(Application.ExeName + '\..\test.htm');
    end;end.