Is it possible to set domain names mapping directly for an executable? As if we edit /etc/hosts/ and then run the executable.

Example:

$ 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.
link|improve this question
1  
Why? / What are you trying to accomplish? – Nix Jun 27 '11 at 17:24
Perhaps this should have been migrated to unix.SE instead of ServerFault? – Caleb Jun 28 '11 at 8:18
feedback

migrated from stackoverflow.com Jun 27 '11 at 19:30

This question came from our site for professional and enthusiast programmers.

1 Answer

It is pissible to intercept most calls to libc with a creative usage of LD_PRELOAD and RTLD_NEXT. Google these strings, there's a lot of info out there. Intercept calls to open, substitute your own file for /etc/hosts. It should work.

link|improve this answer
Intercepting calls to open() might not work for this case. See plash.beasts.org/wiki/PlashFAQs. You might need to intercept gethostbyname() or its friends instead. – netvope Feb 16 at 6:13
feedback

Your Answer

 
or
required, but never shown

Not the answer you're looking for? Browse other questions tagged or ask your own question.