是否可以使用 LSP/SPI 拦截 dns 查询?

2023-11-29

我编写了自己的 LSP,运行良好。但是,我无法捕获 dns 查询。例如,没有像 WSPGetHostByName 或 WSPGetAddrInfo 这样的函数。

我的 lsp 也支持 UDP 协议,但它不工作。如果我从控制台(cmd.exe)运行 nslookup,它似乎可以工作,但我无法捕获 gethostbyname。有谁知道这是怎么做到的吗?我不认为编写NSP(Name Service Provider)是一个解决方案。但我可能错了。

Thanks


我们开发了一个可以“拦截”DNS 查询的LSP。唯一的方法是连接所有 DNS 功能,请记住您需要解决一些挑战:

  1. 您需要使用一个良好的挂钩库来支持 32 位和 64 位代码。
  2. 库许可证必须适合您的应用程序,有一些免费库,但只能在免费项目中自由使用。
  3. 当您挂钩函数时,您需要确保不要修改某些不基于 IP 的值,并将查询推迟到实际函数。

拦截 UDP 将不起作用,因为查询是从 MS DNS 客户端发出的,因此除非您编写低级驱动程序,例如:TDI、NDIS 或 WFP,否则您必须挂钩这些函数(或编写 NSP)。 NSLookup 适合您,因为它自己创建 DNS 查询。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

是否可以使用 LSP/SPI 拦截 dns 查询? 的相关文章

  • Mac OSX Lion DNS 查找顺序 [关闭]

    Closed 这个问题是无关 help closed questions 目前不接受答案 升级到 Mac OSX Lion 后 我发现 etc hosts 不再首先查找名称解析 这会导致一些副作用 例如 etc hosts 中的条目解析速度
  • 为开发环境分配域名localhost

    我正在构建一个网站 并且不想将网站从指向重新配置为http 127 0 0 1 to http www example com 此外 我使用的证书当然是用正确的域名制作的www example com但我的测试环境会调用127 0 0 1这
  • 不同端口上的 Route 53 记录集

    我是一名 ruby 开发者 刚刚开始学习一些 Node js 我正在运行一个实例AWS主持我的rails带有乘客 nginx 监听的应用程序port 80 现在我想举办一个node js同一实例 t1 micro 上的应用程序并将其监听端口
  • winsock 在哪里存储套接字的 IP 地址?

    假设我有一个简单的 winsock 服务器 它有一个侦听套接字 然后当接受连接时 它将套接字存储在套接字数组中 以允许多个连接 如何获取特定连接的 IP 地址 它是否存储在套接字句柄中 只要套接字保持连接 您就可以获得自己的套接字地址和对等
  • 端口 80 被我的 ISP 封锁,那么我的浏览器如何仍然工作?

    我知道当我请求 example com 时 我的浏览器实际上默认为 example com 80 但是 我的 ISP 阻止 80 端口侦听 那么如果端口 80 被阻止 我如何接收请求的响应 它不应该工作 不是吗 当您发出 HTTP 请求 实
  • 子域名指向同一IIS中的不同网站

    我有一个 IIS 服务器 运行一个默认网站 一个在 LandingPage 路径中运行的 React 应用程序以及一个由 api 中的 React 应用程序使用的 API 所以基本上我有 localhost 80 gt 默认 MVC 网站
  • file_get_contents(): php_network_getaddresses: getaddrinfo 失败

    我正在尝试使用 cron 作业将一些值从一台服务器更新到另一台服务器 我使用 file get contents 奇怪的是 这偶尔会失败 一分钟还可以 一分钟就不行了 我收到这两个错误 PHP 警告 file get contents ph
  • 创建本地自定义主机名而不是 localhost?

    目前 我的 Flask 应用程序在本地运行 http localhost 5000 some page http localhost 5000 some page 如何为我的应用程序创建本地自定义位置 例如 http myappname s
  • 将 Google 域链接到 Amazon ec2 服务器

    我正在使用 Amazon EC2 实例来为 node js 应用程序提供服务 我最近通过以下方式购买了域名谷歌域名 https domains google com我想使用该域名来访问我的 node js 应用程序 Google Domai
  • DNS预取和页面优化[重复]

    这个问题在这里已经有答案了 今天我在一个网页的 HTML 源代码中看到了这个片段
  • 如何平衡Web服务器带宽使用?

    我有一个 drupal 商务网站 用户一直在其中上传大量图像 每个商业订单有 n 个图像 我想平衡网络流量以节省带宽 每个服务器的带宽是有限的 我无法使用传统的负载平衡解决方案 因为平衡器服务器的带宽也有限 我的数据库将位于单独的服务器上
  • Namecheap 域名不会在没有“www”的情况下重定向

    我正在寻找将我的域连接到 heroku 应用程序 到目前为止 我读过的教程说我们希望 Namecheap 拥有以下域名记录example com CNAME Record www www example com herokudns com
  • 如何过滤wireshark以仅查看从我的计算机发送/接收的dns查询?

    我是wireshark新手 正在尝试编写简单的查询 要查看仅从我的计算机发送或由我的计算机接收的 DNS 查询 我尝试了以下操作 dns and ip addr 159 25 78 7 其中 159 25 78 7 是我的 IP 地址 看起
  • 如何将 BYTE 数组转换为 char 数组以使用套接字 C++ 发送

    我有一些问题 我编写客户端服务器应用程序 其中使用 win 套接字发送和接收信息 在我的项目中需要发送BYTE数组到客户端 并在客户端上将此 char 数组转换为BYTE 我该如何创建它 请帮助我 因为send 函数只能发送char 谢谢
  • 可以分配给一个 Heroku 应用程序的最大域名数量?

    我正在与一位客户讨论一个项目 该客户希望他的用户可以通过自己的域名访问该应用程序 如果他们选择的话 可以分配给一个 Heroku 应用程序的自定义域数量是否有限制 The Heroku 文档 https devcenter heroku c
  • 将多个子域映射到同一个 S3 存储桶

    有没有某种方法可以将多个 数千个 子域映射到一个 s3 存储桶 如果是这样 是否也可以将其映射到每个子域的存储桶中的特定路径 我希望 test1 example com 映射到 mybucket test1 test2 example co
  • NGinx 域名重定向

    假设我有一个名为 xyz co 的网站 我还有其他具有相同前缀的域名 例如 xyz com xyz it xyz co it 现在 nginx 与端口 80 的 nginx conf 中的 server name xyz co 配合得很好
  • 如何为digitalocean设置子域?

    我需要通过在 URL 中输入 sendy ambee app 来访问我的 Digitalocean 服务器 如果我输入 IP 地址 157 230 9 219 它就可以工作 但只要我输入 sendy ambee app 它就不起作用 Whe
  • Docker DNS 设置

    我尝试使用自定义网络和 dos 设置创建 docker 容器 docker网络创建 driver bridge opt com docker network bridge enable ip masquerade true opt com
  • Docker 中的 NGINX 缓存 IP 地址并提供错误的 Content-Type

    Summary 我想让NGINX 不是NGINX Plus 通过使用变量从DNS名称重新解析IP地址proxy pass 如建议的这篇 Nginx 官方文章 在变量中设置域名 部分 https www nginx com blog dns

随机推荐

  • 如何在 Python 中将一个内存 SQLite 数据库复制到另一个内存 SQLite 数据库?

    我正在为 Django 编写一个测试套件 它以树状方式运行测试 例如 测试用例 A 可能有 2 个结果 测试用例 B 可能有 1 个结果 测试用例 C 可能有 3 个结果 树看起来像这样 X A B C X B X X C X X 对于上面
  • 要求在 Prestashop 模块上的一个文件中自动加载的方法?

    我正在尝试将一组库与 Composer 一起用于 Prestashop 模块 我目前的方法是包括vendor autoload php每个文件上的文件 mymodule php controllers front foo php contr
  • 为什么我们需要使用 boost::asio::io_service::work ?

    有一个使用 boost asio 的示例 为什么这个例子使用 boost asio io service work 为什么是srv run 没有调用线程来执行任务 int main boost asio io service srv boo
  • 尝试使用 C# 中的 ODbc 从 MSysObjects 读取数据,但出现无权限错误

    如标题所述 我试图从 Access 2010 数据库中的 MSysObjects 读取数据 但出现异常 告诉我不允许从该表中读取数据 我可以读出其他非 MSys 表 SQL Query I am using SELECT FROM MSys
  • 如果视图具有特定类(backbone.js),则点击时触发函数

    我有一个div由backbone js视图生成 当用户点击这个div 一类active被添加到div和函数addToSet被执行 Problem 我希望在视图的时候触发另一个函数div有课active 但是 我的尝试如下所示总是导致addT
  • 返回从 A1 到最后使用的真正单元格的范围

    我想选择电子表格中的所有行和列 宏需要是动态的 因为每次调用宏时列数和行数往往会发生变化 它还需要能够考虑空白行和列 该子程序完成部分过程 Sub FindLastCell Cells Find What After A1 SearchDi
  • 在 C# 中从 XML 填充下拉列表

    我有以下 xml 格式 并且我正在使用 NET 2 0
  • Neo4j:在树状图中显示所有连接的节点及其父节点

    我的 neo4j 数据库中有以下布局 a b c d e f g h i j 我想做的是查询所有子节点 例如如果起始节点是b 那么孩子们是e f h 所有节点都具有相同的标签 名称 和相同的关系类型 我可以通过以下方式完成此任务 MATCH
  • Core Data 多线程存储关系

    我的问题很奇怪 我正在寻求帮助 我想向您解释我的系统是如何工作的 我对此有两个问题 我正在制作有两个表的应用程序 我正在使用核心数据 表格是类别 and Products 在核心数据中我建立了一对多的关系Category可以有多个Produ
  • Java 重写是如何工作的

    我有一个愚蠢的困惑 当我们重写父类方法时 这个派生重写方法是否仍然保留父类方法的代码 或者它是我们可以定义的新方法 阅读本文以明确概念 http docs oracle com javase tutorial java IandI over
  • 使用 Bouncy Castle 在 Java 中创建自定义 X509 v3 扩展

    我已成功使用 Bouncy Castle 中的 X509v3CertificateBuilder Java 类创建具有标准 V3 扩展的 X509 证书 我现在正在尝试创建具有自定义扩展的证书 我可以使用 addExtension 方法创建
  • C 中 x64 的 128 位算术

    在 x86 上实现 bignum 时 显然数字大小最有效的选择是 32 位 但是 您需要进行最多两倍数字大小的算术运算 即 32 32 33 32 32 64 64 32 32 幸运的是 x86 不仅提供了这一点 而且还可以通过可移植的 C
  • df.fillna(0) 命令不会将 NaN 值替换为 0

    我试图将下面代码中生成的 NaN 值替换为 0 我不明白下面的内容不起作用 它仍然保留 NaN 值 df pubs pd read sql select Conference Year count as totalPubs from pub
  • 如何在 Rails 6 中跳过现有项目的活动记录

    我有一个现有的 Rails 项目 它是在 API 模式下创建的 不使用数据库 在尝试部署到 Heroku 时 我收到许多与 ActiveRecord 相关的错误 gt Detecting rake tasks Could not detec
  • 强制改变方向

    我有一个基于选项卡的应用程序 其中一个选项卡在纵向和横向模式下都可用 所有其他选项卡仅在纵向模式下可用 我正在检查是否允许在 shouldAutorotateToInterfaceOrientation 中旋转的按钮 但是当我处于横向模式时
  • C:两个void指针的区别是什么类型?

    如果我减去两个空指针 我就会得到指针位置之间的相对距离 至少在我的测试系统上 我应该使用什么类型来存储结果 以便与 64 位系统兼容 size t 是正确的类型还是很长 背景 我们需要检查给定的 void 指针是否可以安全地用作双指针 我们
  • Java在空行后停止读取

    我正在做学校练习 但我不知道如何做一件事 据我所读 扫描仪不是最好的方法 但由于老师只使用扫描仪 所以必须使用扫描仪来完成 这就是问题 用户将文本输入到数组中 该数组最多可包含 10 行 并且用户输入以空行结束 我已经这样做了 String
  • Java中的序列化版本uid

    序列化id如何存储在对象的实例中 我们在Java中声明的Serialization id是静态字段 而静态字段是不会被序列化的 那么应该有某种方法来存储静态最终字段 java是怎么做到的呢 The 序列号版本UID不存储在 序列化 对象的实
  • 使用 ggplot2 在分割小提琴图上叠加散点

    我跟着this在 2x2 设计中生成分割小提琴图的好答案 现在想象一下这些数据来自不同受试者的重复测量 另外 我想在散点图中绘制各个数据 我知道该图最终可能会太忙 我想先看看它 我已经快到了 但是有一个小错误 可能很容易修复 我提供了一个完
  • 是否可以使用 LSP/SPI 拦截 dns 查询?

    我编写了自己的 LSP 运行良好 但是 我无法捕获 dns 查询 例如 没有像 WSPGetHostByName 或 WSPGetAddrInfo 这样的函数 我的 lsp 也支持 UDP 协议 但它不工作 如果我从控制台 cmd exe