单个进程的 /etc/hosts

单个进程的 /etc/hosts

是否可以直接为可执行文件设置域名映射?就像我们编辑 /etc/hosts/ 然后运行可执行文件一样。

例子:

$ ping google.com
PING google.com (74.125.232.48) 56(84) bytes of data.
$ magic-command -m google.com=127.0.0.1 ping google.com
PING google.com (127.0.0.1) 56(84) bytes of data.

答案1

通过创造性地使用 LD_PRELOAD 和 RTLD_NEXT,可以拦截对 libc 的大多数调用。谷歌搜索这些字符串,那里有很多信息。拦截对 的调用open,用您自己的文件替换/etc/hosts。它应该可以工作。

相关内容