发信人: tcpip (俺的昵称改了), 信区: cnunix
标  题: [转载] finger的patch
发信站: 哈工大紫丁香 (Sun Sep 26 14:56:14 1999), 转信

发信人: cpu (奔腾的心), 信区: Solaris
发信站: 华南网木棉站 (Thu Jun 25 14:28:19 1998), 转信

【 以下文字转载自 Hacker 讨论区 】
【 原文由 cpu 所发表 】
接上篇,最彻底的,关了finger(注释掉/etc/inetd.conf中的finger那一行,然
后重新启动inetd进程),这样省事很多,也有很多系统替换了自己的finger
方法是写一个in.fingerd.c编译了替换掉原先的/usr/sbin/in.fingerd
这个程序写起来很容易,因为服务连接处理是由inetd完成的,之后inetd
将连接后的管套dup至文件号0和1然后exec in.fingerd, 所以in.fingerd
只处理读0和写1的过程,其它in.xxxd也都是这么处理的,下面就是一个
in.fingerd.c的简单例子,结果你可以finger一下我上木棉用的IP就行了

/* in.fingerd.c, by CPU */

#include <stdio.h>
#include <string.h>
#include <unistd.h>
#include <sys/types.h>
#include <sys/socket.h>
#include <netinet/in.h>
#include <arpa/inet.h>

main( )
{
        char    buf[1024];
        char    *ip;
        struct  sockaddr_in it;
        int     itlen;
        itlen = sizeof(struct sockaddr_in);
        getpeername(0, (struct sockaddr *)&it, &itlen);
        ip = inet_ntoa(it.sin_addr);
        gets(buf);
        sprintf(buf, "\ndear [%s]:\n", ip);
        sprintf(buf, "%s\tu really want to finger me? pei!\n\ti do hate u!\n\n",
                buf);
        write(1, buf, strlen(buf));
        exit(0);

--

        ******************************************************
                
                蓦然回首,老子已是高级战友 。。。  。。。

        ******************************************************

※ 修改:.trueip 于 Sep 26 15:00:01 修改本文.[FROM: dns.mtlab.hit.ed]
※ 来源:.华南网木棉站 bbs.gznet.edu.cn.[FROM: 202.101.248.6]
--
--
※ 转寄:.华南网木棉站 bbs.gznet.edu.cn.[FROM: dns.mtlab.hit.ed]

--
☆ 来源:.哈工大紫丁香 bbs.hit.edu.cn.[FROM: trueip.bbs@melon.gzn]
[百宝箱] [返回首页] [上级目录] [根目录] [返回顶部] [刷新] [返回]
Powered by KBS BBS 2.0 (http://dev.kcn.cn)
页面执行时间:3.369毫秒