Hooking InternetOpenUrl

Hooking InternetOpenUrl

本文关键字:InternetOpenUrl Hooking      更新时间:2023-10-16

我正在编写一个应用程序,它应该将InternetOpenUrlInternetReadFile挂接到另一个进程中。

InternetOpenUrl的挂钩版本中,它将检查传递给它的lpszUrl是否与正则表达式匹配。如果匹配,则记录实际InternetOpenUrl返回的句柄。

然后,在InternetReadFile的挂钩版本中,如果hFile参数等于记录的句柄,它将从文件中读取,而不是调用实际的InternetReadFile

我发现Windows在调用InternetOpenUrl时会立即尝试连接到提供的服务器,如果无法建立连接,函数将返回NULL

但我希望这种机制即使没有互联网连接也能工作,所以当正则表达式匹配时,我似乎无法通过调用挂钩机制中的实际InternetOpenUrl来获得句柄。

那么我该如何让它发挥作用呢?

更新:

现在我调用InternetOpen来获取一个伪句柄。InternetOpenInternetOpenUrl返回的句柄似乎不相等。

但我不确定它是否有保障,寻找更好的选择。

所以您正试图将URL查询重定向到一个文件。。。您可以始终托管该文件,然后保证在任何一种情况下都有一个有效的句柄。然而,假设是本地文件,我认为如果您在URL中指定"file://">协议,它可能会以您想要的方式工作。