首页
社区
课程
招聘
[旧帖] [求助]IE8 跳转到别的网站 想用HOOK来实现 但是找不到HOOK点 0.00雪花
发表于: 2014-8-3 20:05 1805

[旧帖] [求助]IE8 跳转到别的网站 想用HOOK来实现 但是找不到HOOK点 0.00雪花

2014-8-3 20:05
1805
我想让IE8在访问XX网站时跳到XX网站 , 嗯 类似Windows的Hosts文件的功能但是要实现多种条件的跳转,比如有的需要完全匹配参数才可以跳转。
  所以HOSTS的特性是不能用的了,我想采用HOOK IE8的XX函数来实现,但是我没有找到可以HOOK的位置,send、recv、以及InternewOpenUrl等等我全试过了,都不行。

[课程]Linux pwn 探索篇!

收藏
免费 0
支持
分享
最新回复 (5)
雪    币: 18
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
2
你可以不用HOOK实现

你可以获取Internet Explorer_Server 对象

然后通过这个得到 IWebbrowser2

然后通过 IWebbrowser2 得到 LocationURL

最后判断LocationURL如果是haX123.com  你就 Navigate 跳转到你想跳转到的网址。

- = 完全可以不HOOK。呵呵
2014-8-3 21:36
0
雪    币: 18
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
3
就算退一万步,不懂怎么搞HOOK也不懂怎么得到IWebbrowser2 接口

我们同样可以实现,并且安全软件不会拦截我们,凡是能不用hook实现的东西都不要用hook,那是不好的习惯,并且死板硬套有模板可言,不要为了所谓的可能hook有技术含量而去追求一定要用hook实现,那样反而没有技术含量。编程个人觉得最可贵的就是思路,一个猥琐的思路比你拥有一个所谓的HOOK模板要强的多,模板是人都能学会,但一个猥琐的思路不是每个人都有的。

function GetIEEdit():HWND;
var
IEWnd,WorkerW,ReBarWindow32,ABRoot,IEEdit:HWND;
begin
  IEWnd:=0;
  WorkerW:=0;
  ReBarWindow32:=0;
  ABRoot:=0;
  IEEdit:=0;
  IEWnd:=FindWindow('IEFrame',nil);
  if IEWnd=0 then
  begin
   Exit;
  end;
  WorkerW:=FindWindowEx(IEWnd,0,'WorkerW',nil);
  if WorkerW=0 then
  begin
   Exit;
  end;
  ReBarWindow32:=FindWindowEx(WorkerW,0,'ReBarWindow32',nil);
   if ReBarWindow32=0 then
  begin
   Exit;
  end;
  ABRoot:=FindWindowEx(ReBarWindow32,0,'Address Band Root',nil);
  if ABRoot=0 then
  begin
   Exit;
  end;
  IEEdit:=FindWindowEx(ABRoot,0,'Edit',nil);
  if IEEdit<>0 then
  begin
    Result:=IEEdit;
  end;
end;

procedure TForm1.Button1Click(Sender: TObject);
var
  Edit:HWND;
  Urltxt: array[0..254] of Char;
begin
  Edit:=GetIEEdit();
  SendMessage(Edit,WM_GETTEXT,254,Integer(@Urltxt));
  if pos('hao123',Urltxt)>0 then
   begin
     Urltxt:='www.baidu.com';
     SendMessage(Edit,WM_SETTEXT,254,Integer(@Urltxt));
     PostMessage(Edit,WM_KEYDOWN,VK_RETURN,0);
   end;
end;
2014-8-3 22:49
0
雪    币: 249
活跃值: (186)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
4
楼上够猥琐的
2014-8-4 00:45
0
雪    币: 6890
活跃值: (8944)
能力值: ( LV17,RANK:797 )
在线值:
发帖
回帖
粉丝
5
需求是浏览器使用过程中不留进程的。。
2014-8-5 09:38
0
雪    币: 18
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
6
可以通过一个思路也能实现

A.EXE  挂钩鼠标钩子,让CharIE.dll  进入 explorer.exe进程中 , 而CharIE.dll  就是 用上面的方法一旦发现IE打开某些网站就实现跳转。但是如果我们关掉 A.EXE , 系统会自动把CharIE.dll  从 explorer.exe进程中释放掉。导致不能无进程。

而我们需要做的就是
A.EXE  挂钩鼠标钩子的同时,运行B.EXE , 而B.EXE  挂钩系统释放钩子时顺带把dll也释放掉的函数,过滤处理发现如果要释放的DLL是CharIE.dll  我们就返回False 。 那么我们可以A.EXE  执行完挂钩鼠标钩子和B.EXE后自身结束。然后系统这时候要去释放掉explorer.exe中的CharIE.dll 模块,由于B.EXE挂钩了相关函数导致释放失败。然后B.EXE自己在发现A.EXE消失后的2秒后自我结束自己.

最后我们得到的结果就是A.EXE和B.EXE这两个进程都没有了,但是explorer.exe中还有CharIE.dll 在工作,这样就可以实现我们不知道IE浏览网址到底用什么函数,我们一样可以实现无进程控制IE跳转地址。并且没有进程存在。

纯属个人思路........是可行的。
当然你说,纯属无聊,直接注入一个工作dll不就得了,确实,通过把控制IE的DLL注入到explorer.exe进程中也行啊,不过有时候我们喜欢走思路,不喜欢走死板硬套的死路。
2014-8-5 22:35
0
游客
登录 | 注册 方可回帖
返回
//