水木清华BBS集锦:怎样去掉Solaris系统登录时的逆向解析
发布时间:2006-10-14 8:47:46   收集提供:gaoqian
发信人: cirrus (望眼欲穿), 信区: Unix       
标  题: Re: 我该怎样去掉Solaris系统登录时的逆向解析
发信站: BBS 水木清华站 (Tue Oct 26 11:33:54 1999)



我在LinuxFreeBSD下做过,改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里

 
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50