我在Linux和FreeBSD下做过,改inetd、telnetd、login
之类的程序,把里面用到gethostbyaddr()去掉就可以了。
Solaris没有源代码,估计是很难搞定的。
或许可以自己写一个dll,用LD_PRELOAD屏蔽掉gethostbyaddr()
的功能?
【 在 Elale (虎子) 的大作中提到: 】
: 关于Solaris系统登录的问题
: 我现在用的是Solaris2.5.1操作系统,每次登录的时候都需要
: 逆向解析我的登录地址。但是因为有时候我是拨号上来的,所以
: 地址一般都不知道是什么,所以就显得特别的慢。我不能通过向
: /etc/hosts添加一条记录来修正这个问题,因为我根本不知道地址
: 是什么?
: 我该怎样去掉Solaris系统登录时的逆向解析?
: 多谢!
--
发信人: hellguard (小四), 信区: Unix
标 题: Re: 我该怎样去掉Solaris系统登录时的逆向解析
发信站: BBS 水木清华站 (Tue Oct 26 17:28:55 1999)
【 在 cirrus (望眼欲穿) 的大作中提到: 】
: 或许可以自己写一个dll,用LD_PRELOAD屏蔽掉gethostbyaddr()
: 的功能?
这招比较黑,可是我觉得也是理论上的吧。
gethostbyaddr之外的那些库函数你打算怎么
提供,一般都在同一个so中的呀。有没有办法
用什么bin编辑器把这个函数的return语句提前
到进入点上,就是无论如何都返回失败,不要
做无谓等待,不过咱对so很不熟悉,不敢动刀,
也是理论上说说
--
发信人: cirrus (望眼欲穿), 信区: Unix
标 题: Re: 我该怎样去掉Solaris系统登录时的逆向解析
发信站: BBS 水木清华站 (Tue Oct 26 20:44:51 1999)
【 在 hellguard (小四) 的大作中提到: 】
: 这招比较黑,可是我觉得也是理论上的吧。
: gethostbyaddr之外的那些库函数你打算怎么
: 提供,一般都在同一个so中的呀。有没有办法
这是WindowsDLL的想法吧。
Unix下用LD_PRELOAD可以只替换感兴趣的函数,
其余的还是调用原来的。
我试过用LD_PRELOAD加载自己写的一个几行的dll,
然后程序里的puts()不管什么参数统统输出helloworld,嘿嘿。
我试试看改一下gethostbyaddr()吧。不过我对solaris下
做dll一点经验都没有,嘿嘿。
: 用什么bin编辑器把这个函数的return语句提前
: 到进入点上,就是无论如何都返回失败,不要
: 做无谓等待,不过咱对so很不熟悉,不敢动刀,
: 也是理论上说说
--
发信人: cirrus (望眼欲穿), 信区: Unix
标 题: 去掉solaris登录时的反向域名解析
发信站: BBS 水木清华站 (Tue Oct 26 22:23:38 1999)
/* rdns.c */
#include <netdb.h>
struct hostent *gethostbyaddr(const char * a, int s, int t)
{
return NULL;
}
用gcc -o rdns.so -Wl,-G rdns.c
得到rdns.so,放到/usr/lib/下。kill掉inetd,然后
LD_PRELOAD=/usr/lib/rdns.so /usr/sbin/inetd -s
这一句可以考虑放到/etc/init.d/inetsvc里