发信人: 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毫秒