当前位置:首页 » 软件开发
开发技术指南» 文章正文
    引言: 作者:kf_701 写作时间:2005/4 Email:kf_701@21cn.com 转载请保留原作者信息,谢谢。
 

 

 ·课堂上的linux阅读清单    »显示摘要«
    摘要:joe ruffolo和ron terry一直致力于推广开源和linux,为此他们一直与学校保持着密切的联系,为了使学校的学生能够深入了解开源,了解linux joe特意为学生们列出了一份阅读清单。笔者看了一下这些链接不是一些书,而是一些关于samba, openldap的手册以及开源项目,内容都比较使用,大家无妨选择有兴趣的内容浏览一下。清单如下:joe ruffolo和ron terr......
 ·当root口令被忘记的时候.....    »显示摘要«
    摘要:当root口令被忘记的时候,可以把root口令设为空。设置空的方法就是使用lilo/grub启动linux时作相关的操作来修改,如下:一.lilo1.在出现lilo:提示时键入 linux single画面显示 lilo : linux single2.回车可直接进入linux命令行3. #vi /etc/shadow将第一行,即以root 开头的一行中 ,root:后和下一个“:”前的内容删除。......


hacker成长的代码之路:扫描(2)
作者:kf_701 写作时间:2005/4 email:kf_701@21cn.com

转载请保留原作者信息,谢谢. 【程序编程相关:http://www.myfaq.com

【推荐阅读:安装DNS服务器

【扩展信息:怎样让fcitx在kde启动后自动启动?

要求的专业知识:

    一:    精通osi参考模型,精通网络五层:物理层,数据链路层,网络层,传输层,应用层.

        精通每一层的协议,数据报格式.精通网络拓扑结构,第一层,第二层,第三层的网

        络互联,数据的转发与路由等.

    二:    精通c语言程序设计,unix/linux程序设计,网络程序设计.熟悉unix/linux系

        统操作,熟悉著名服务的基本配置,特性及使用的端口号.熟悉经典网络命令的使用,

        如:netstat,ping,traceroute,netcat,arp等.

    三:    精通标准sql语言,熟悉流行的数据库使用,如:oracle,mysql等.掌握数据库与

        web语言的结合使用.

  有的时候可能要确定一个局域网内有多少台机器是开机的,那么就要依次扫描这个网段内的所有ip.通

常的端口扫描或漏洞扫描的前提是目标主机是开机的,否则所有的扫描都是白费时间.最简单的办法是先

ping一下目标主机.大部分的扫描软件都会在扫描开始前进行与ping类似的测试.

  我们要成为真正的黑客,所以我们不会满足于使用别人的程序,我们要理解这里面全部的网络原理,我

们要写自己的程序.

  其实这样的程序并不难,我们只要向目标主机发送一个icmp echo请求报文,如果目标主机回应了一

个icmp echoreply报文,则目标主机一定是开机的.那么我们就可以进行后面的扫描工作了.

  icmp是第三层(网络层)的协议,虽然它与ip协议都在网络层,但icmp数据报依然使用ip报头封装

其报文内容.icmp echo的类型值是8(icmp_echo),代码值是0.我们用程序来完成一个简单的ping.

读到这里,我假想你是完全知道icmp报文的格式的,如果你不知道,那么请你离开,去打点基础再来阅

读,否则纯属浪费时间.

  先建一个原始socket,再自已构造一个icmp报文,通过这个原始socket把icmp报文发送出去,然后

用这个原始socket接收目标主机的回应icmp,收到回应,那么进行后面的扫描吧.要说明的是系统内核

会把收到的所有icmp消息给每个icmp原始socket复制一份,也就是说我们程序里创建的icmp raw

socket会收到所有的icmp消息,但我们只想等待我们程序里指定的目标主机的icmp echoreply消息,

较好的办法是使用icmp echo报头的标识字段,在构造icmp请求报文的时候,把标识字段(icmp_id)设

为进程号(process id).然后检查收到的每个icmp消息的标识字段,与process id相同的则是我们

等待的报文.

  raw socket只有superuser可以创建,务必在superuser权限下运行.下面是一段简单的代码,不

过也是完整呈现了ping程序.

  send_icmp()构造icmp报头并使用raw socket发送.main循环接收icmp消息,交给proc_icmp

判断处理.代码是linux系统上测试通过.

  本程序只对一个ip地址进行,如果要对一段ip进行测试,简单修改程序即可.可将发送放在单独的进程

里(使用fork()),send_icmp里做成循环,每次重新初始化struct sockaddr_in.那么对接收到的数据

进行分析的proc_icmp()将多一道对ip报头ip->src字段的判断.具体的修改,留给读者自己完成.

     1  /*

     2     a simply ping program for unix

     3     copyright (c) 2005  by kf_701

     4

     5     this program is free software; you can redistribute it and/or modify

     6     it under the terms of the gnu general public license as published by

     7     the free software foundation; either version 2 of the license, or

     8     (at your option) any later version.

     9


...   下一页
    摘要:呵呵,昨天用rpm包完成了该环境,下午偶就用源文件编译了一边,体验一下安装的乐趣详细环境为redhat9+mysql4.1.11(binary)+apache1.3.33+php4.3.11下面为详细步骤...我的安装是以下面这篇文章为参考.但是安装中遇到了许多与该作者不同的情况.http://blog.csdn.net/jinetsunday/archive/2004/07/28/54214.h......
» 本期热门文章:

©2000-2007 All Rights Reserved. 最佳浏览:1024X768 MSIE