如何利用APIHook实现IE的hook 重定向向

&&国之画&&&&&&
版权所有 京ICP备号-2
迷上了代码!如何利用APIHook实现IE的重定向_百度知道
如何利用APIHook实现IE的重定向
我有更好的答案
这样的例子网上太多了IE根本用不着Hook,只需要编写一个BHO插件就可以了,响应IE打开URL的事件,随便找个BHO的文章就有. 使用Hook的思路本身就是错误的
其他类似问题
为您推荐:
重定向的相关知识
等待您来回答
下载知道APP
随时随地咨询
出门在外也不愁从三个问答浅谈为什么你的站点需要301重定向
->行高大小:
  301重定向是一张通常用来告诉网页浏览器需要带访客从一个特定的页面转到你的站点上的另一个页面的&电子地图&。当我们把301重定向使用得当的话,将会有助于你的站点在有机搜索中的排名,并且可以确保你的潜在客户或者访客在使用你的网站的时候,可以的到更加顺利和愉快的体验。我们也可以这么认为,301重定向就是一个帮忙引导访客和搜索引擎抓取正确页面的指挥员,是你的站点的幕后隐形管家。
  我什么时候需要使用301重定向?
  1:你为你的企业或者公司买了一个新的域名,你需要把你的网站切换到新的域名上去。
  2:你刚新建了一个新的网站,需要把旧的访客引导到新的站点上去。
  3:你已经修改了你的站点上的页面,需要把访客指引到新的页面上去。
  4:你删除了你的站点上的页面,需要把访客引导到他们感兴趣的页面,而不是将他们拒之门外。
  5:为了确保得到之前外链指向的已删除的特定页面的权重,进行重定向。
  为什么说301重定向页面对于SEO很重要?
  如果你知道搜索引擎优化的基础知识,那么你就会知道一个站点获得有良好质量的,相关性的外链的重要性了。这一些高质量的外链竟会促进搜索引擎对你的站点的信任及提高站点的排名。这一些高质量外链如果你不能处理好的话,就会很难得到,也很容易丢失。
  如果我们将高质量外链指向的页面删除,那么这一些高质量的外链就不能为我们的站点传递权重。你就会失去这些高质量外链带来的提升信任及排名的作用。你的站点在搜索引擎的排名将会开始下降,
  如果你可以合理的使用301重定向,将这个被删除的页面的URL转移到新的新建的URL,那么你就可以避免这一些高质量外链的权重流失。
  301重定向如何提高站点的用户体验度?
  如果你的站点页面有删除或者更改,而你又没有做好301重定向,那么下次如果有人试图点击这个页面的时候,这个用户将看到冷冰冰的404错误页面,这个对于站点的用户友好体验度是一个很大的打击。对于这点我们可以打个比方,加入有一天,你在超市找一个超市有在销售的物品,但是物品转移了,于是你问销售人员,他们的回答却是&对不起,我不能找到。&那么你的感想将会是什么。
  因此,在你删除或者决定重新修改一个页面的时候,你要确保能够正确的使用好301重定向页面,如果没有新的页面取代,你也要尽量转移到同等的用户期待的页面。本文由呼死你 原创,转载请保留出处。
收集整理 ,地址为:
大屏阅读,大屏评论.System.IO.FileNotFoundException: Die Datei oder Assembly "FileMon, Version=1.0.0.0, Culture=neutral, PublicKeyToken=ceced4b53e54b36f" oder eine Abhngigkeit davon wurde nicht gefunden. Das System kann die angegebene Datei nicht finden.
bei FileMonInject.Main..ctor(IContext InContext, String InChannelName)
--- Ende der internen Ausnahmestapelberwachung ---
bei EasyHook.HelperServiceInterface.WaitForInjection(Int32 InTargetPID)
bei EasyHook.RemoteHooking.InjectEx(Int32 InHostPID, Int32 InTargetPID, Int32 InWakeUpTID, Int32 InNativeOptions, String InLibraryPath_x86, String InLibraryPath_x64, Boolean InCanBypassWOW64, Boolean InCanCreateService, Object[] InPassThruArgs)
bei EasyHook.RemoteHooking.Inject(Int32 InTargetPID, String InLibraryPath_x86, String InLibraryPath_x64, Object[] InPassThruArgs)
bei FileMon.Program.Main(String[] args) in C:\Users\Dakoon\Documents\Visual Studio 2010\Projects\FileMon\FileMon\Program.cs:Zeile 50.
using System.Collections.G
using System.Runtime.R
using System.T
using System.IO;
using EasyH
using System.Windows.F
namespace FileMon
public class FileMonInterface : MarshalByRefObject
public void IsInstalled(Int32 InClientPID)
Console.WriteLine("FileMon has been installed in target {0}.\r\n", InClientPID);
public void OnCreateFile(Int32 InClientPID, String[] InFileNames)
for (int i = 0; i & InFileNames.L i++)
Console.WriteLine(InFileNames[i]);
public void ReportException(Exception InInfo)
Console.WriteLine("The target process has reported an error:\r\n" + InInfo.ToString());
public void Ping()
class Program
static String ChannelName = null;
static void Main(string[] args)
Config.Register(
"A FileMon like demo application.",
"FileMon.exe",
"FileMonInject.dll");
RemoteHooking.IpcCreateServer&FileMonInterface&(ref ChannelName, WellKnownObjectMode.SingleCall);
RemoteHooking.Inject(
Int32.Parse(args[0]),
"FileMonInject.dll",
"FileMonInject.dll",
ChannelName);
Console.ReadLine();
catch (Exception ExtInfo)
Console.WriteLine("There was an error while connecting to target:\r\n{0}", ExtInfo.ToString());
Console.ReadLine();
if (...GetNativeSystemInfo..)
THROW(...., L"Unable to detect wether target process is 64-bit or not.");
BOOL b_64BitP
#ifdef _WIN64
b_64BitPlatform = TRUE
IsWow64Process(GetCurrentProcess(), &b_64BitPlatform);
这是所有为什么呢?
BOOL IsProcess64Bit(DWORD PID)
if (!b_64BitPlatform)
return FALSE;
h_Process = OpenProcess(....PID);
BOOL b_32Bit = TRUE;
IsWow64Process(h_Process, &b_32Bit);
CloseHandle(..);
return !b_32B
为什么呢?
____________________________________{ BR}
localHook = LocalHook.Create(LocalHook.GetProcAddress("advapi32.dll","RegOpenKeyExW"), new RegObject(RegOpen_Hooked), this);
public class Main : EasyHook.IEntryPoint
FileMon.FileMonInterface I
LocalHook localH
Stack&String& Queue = new Stack&String&();
public Main(RemoteHooking.IContext InContext,String InChannelName)
Interface = RemoteHooking.IpcConnectClient&FileMon.FileMonInterface&(InChannelName);
Interface.Ping();
public void Run(RemoteHooking.IContext InContext,String InChannelName)
localHook = LocalHook.Create(LocalHook.GetProcAddress("Advapi32.dll", "RegOpenKeyExW"),
new DMyRegOpenKeyExW(MyRegOpenKeyExW),
localHook.ThreadACL.SetExclusiveACL(new int[] { });
catch (Exception ExtInfo)
Interface.ReportException(ExtInfo);
Interface.IsInstalled(RemoteHooking.GetCurrentProcessId());
RemoteHooking.WakeUpProcess();
while (true)
Thread.Sleep(500);
if (Queue.Count & 0)
String[] Package = null;
lock (Queue)
Package = Queue.ToArray();
Queue.Clear();
Interface.OnCreateFile(RemoteHooking.GetCurrentProcessId(), Package);
Interface.Ping();
[UnmanagedFunctionPointer(CallingConvention.StdCall, CharSet = CharSet.Unicode, SetLastError = true)]
delegate int DMyRegOpenKeyExW(UIntPtr hKey, string subKey, int ulOptions, int samDesired, out UIntPtr hkResult);
[DllImport("advapi32.dll", CharSet = CharSet.Auto, SetLastError = true, CallingConvention = CallingConvention.StdCall)]
static extern int RegOpenKeyExW(UIntPtr hKey,string subKey,int ulOptions,int samDesired,out UIntPtr hkResult);
int MyRegOpenKeyExW(UIntPtr hKey,string subKey,int ulOptions,int samDesired,out UIntPtr hkResult)
Main This = (Main)HookRuntimeInfo.C
lock (This.Queue)
This.Queue.Push("[" + RemoteHooking.GetCurrentProcessId() + ":" + RemoteHooking.GetCurrentThreadId() + "]: \"" + hKey + "\"");
return RegOpenKeyExW(hKey, subKey, ulOptions, samDesired, out hkResult);
非常感谢你!
关于作者:
中国我是一名编程爱好者,谢谢为我们提供一个学习和分享的平台。有什么问题。可以就本内容回复,我看到时。会尽量回复的。
&桌面&网页开发&移动开发&数据库&多媒体&编程语言&平台,框架和库&编程通用&图形/设计&开发周期&一般阅读&第三方产品&作者资源&其他
快速解答标签
价值作最多r3_Hook_NtDeviceIoControl Ring3挂钩实现网址过滤、重定向― 另类 - 数据包监视》 api 钩子与API截获 238万源代码下载-
&文件名称: r3_Hook_NtDeviceIoControl
& & & & &&]
&&所属分类:
&&开发工具: Delphi
&&文件大小: 5 KB
&&上传时间:
&&下载次数: 52
&&提 供 者:
&详细说明:Ring3挂钩实现网址过滤、重定向――《另类挂钩-RING3数据包监视》-Ring3 linked to achieve URL filtering, redirection- the &quot alternative hook-RING3 packet monitoring.&quot
文件列表(点击判断是否您需要的文件,如果是垃圾请在下面评价投诉):
&&NDIC_Hook_HTTP301.res&&uNtDeviceIoControl.pas&&NDIC_Hook_HTTP301.dpr
&近期下载过的用户:
&相关搜索:
&输入关键字,在本站238万海量源码库中尽情搜索:
&[] - 用VB编写的简单网站过滤的小工具,适合于WINXP.
&[] - 一个简单的进程钩子,钩子之用,很简单,不太完善
&[] - C++ ATL ACTIVEX控件
与IE实现BHO插件功能!
实现在IE页面插入JS代码!
&[] - Dll 注入器,等待M程绦K自幼⑷搿
&[] - Windows API 一日一,共73
&[] - 网络嗅探器是一款使用WinPcap开发包的嗅探器,经过数据包的智能分析过滤,快速找到你所需要的网络信息。软件智能化程度高,使用方便快捷。
&[] - 这是一个用dephi编写的用于监视tcp/udp端口的程序,能够实时监测各个端口的情况
&[] - 主要实现:
利用CREATEWINDOW建立与释放程序窗体。
WM消息队列循环。
向应用程序发送程序ICON。(否则生成的程序无图标类似DOS程序)
隐藏桌面程序。
在TRAY栏右键弹出退出,关于栏。
实现程序在DELPHI下无FORM的编写。
运用WINAPI一些技巧。}

我要回帖

更多关于 web api 重定向 的文章

更多推荐

版权声明:文章内容来源于网络,版权归原作者所有,如有侵权请点击这里与我们联系,我们将及时删除。

点击添加站长微信