>

鬼一样的人。
  • 创建:2007-06-16
  • 文章:56
  • 评论:166
  • 访问:7294
  •  
  • 订阅跟踪

2008-3-30 22:27 | crc校验 选项

关键字:crc校验 选项
磁盘文件自校验
    程序采用自检验来对于程序进行自我保护。其大致原理就是将程序整个文件的某些信息,如文件大小,创建时间或者CRC校验值等用某种计算法
    计算出一个值,并将这个值保存在某个地方,然后在程序启动时用同样的计算方法计算出新的值,并把新的值同事先保存的原始文件的值进行
    比较,这个过程就是自检验。
    CRC就是块数据的计算值,全称是"Cyclic Redundancy Check",中文名是"循环冗余码",CRC校验就是"循环冗余校
验"。
    CRC的本质进行xor运算,最终得到的余数就是CRC值。
main()
{
        for(i = 0; i < 256; i++)
        {
                CRC = i;
                for(j = 0;j < 8;j++)
                {
                        if(CRC s& 1)
                                CRC = (CRC >> 1) ^ 0xEDB88320;
                        else
                                CRC >>=1;
                }
                CRC32tbl[i] = CRC;
        }
}

    生成表之后,就可以进行运算了。
    算法如下:
    ⑴ 将寄存器向右边移动一个字节
    ⑵ 将刚移出的那个字节与我们的字符串中的新字节进行xor运算,得出一个指向值表table[0...255]的索引
    ⑶ 将索引所指的表值与寄存器做xor运算
    ⑷ 如果数据没有全部处理完,则跳到⑴
    算法的C语言描述如下:
temp = (oldCRC ^ abyte) & 0x000000FF;
CRC = ((oldCRC >> 8) & 0x00FFFFFF) ^ CRC32tbl[temp];
return CRC;

代码:

unit Crc32;

interface

uses
  Windows,SysUtils,Classes;

const  //Crc32±í
  Table:Array[0..255] of DWORD=
  ( $00000000,  $77073096, $EE0E612C, $990951BA,
    $076DC419, $706AF48F, $E963A535, $9E6495A3,
    $0EDB8832, $79DCB8A4, $E0D5E91E, $97D2D988,
    $09B64C2B, $7EB17CBD, $E7B82D07, $90BF1D91,
    $1DB71064, $6AB020F2, $F3B97148, $84BE41DE,
    $1ADAD47D, $6DDDE4EB, $F4D4B551, $83D385C7,
    $136C9856, $646BA8C0, $FD62F97A, $8A65C9EC,
    $14015C4F, $63066CD9, $FA0F3D63, $8D080DF5,
    $3B6E20C8, $4C69105E, $D56041E4, $A2677172,
    $3C03E4D1, $4B04D447, $D20D85FD, $A50AB56B,
    $35B5A8FA, $42B2986C, $DBBBC9D6, $ACBCF940,
    $32D86CE3, $45DF5C75, $DCD60DCF, $ABD13D59,
    $26D930AC, $51DE003A, $C8D75180, $BFD06116,
    $21B4F4B5, $56B3C423, $CFBA9599, $B8BDA50F,
    $2802B89E, $5F058808, $C60CD9B2, $B10BE924,
    $2F6F7C87, $58684C11, $C1611DAB, $B6662D3D,
    $76DC4190, $01DB7106, $98D220BC, $EFD5102A,
    $71B18589, $06B6B51F, $9FBFE4A5, $E8B8D433,
    $7807C9A2, $0F00F934, $9609A88E, $E10E9818,
    $7F6A0DBB, $086D3D2D, $91646C97, $E6635C01,
    $6B6B51F4, $1C6C6162, $856530D8, $F262004E,
    $6C0695ED, $1B01A57B, $8208F4C1, $F50FC457,
    $65B0D9C6, $12B7E950, $8BBEB8EA, $FCB9887C,
    $62DD1DDF, $15DA2D49, $8CD37CF3, $FBD44C65,
    $4DB26158, $3AB551CE, $A3BC0074, $D4BB30E2,
    $4ADFA541, $3DD895D7, $A4D1C46D, $D3D6F4FB,
    $4369E96A, $346ED9FC, $AD678846, $DA60B8D0,
    $44042D73, $33031DE5, $AA0A4C5F, $DD0D7CC9,
    $5005713C, $270241AA, $BE0B1010, $C90C2086,
    $5768B525, $206F85B3, $B966D409, $CE61E49F,
    $5EDEF90E, $29D9C998, $B0D09822, $C7D7A8B4,
    $59B33D17, $2EB40D81, $B7BD5C3B, $C0BA6CAD,
    $EDB88320, $9ABFB3B6, $03B6E20C, $74B1D29A,
    $EAD54739, $9DD277AF, $04DB2615, $73DC1683,
    $E3630B12, $94643B84, $0D6D6A3E, $7A6A5AA8,
    $E40ECF0B, $9309FF9D, $0A00AE27, $7D079EB1,
    $F00F9344, $8708A3D2, $1E01F268, $6906C2FE,
    $F762575D, $806567CB, $196C3671, $6E6B06E7,
    $FED41B76, $89D32BE0, $10DA7A5A, $67DD4ACC,
    $F9B9DF6F, $8EBEEFF9, $17B7BE43, $60B08ED5,
    $D6D6A3E8, $A1D1937E, $38D8C2C4, $4FDFF252,
    $D1BB67F1, $A6BC5767, $3FB506DD, $48B2364B,
    $D80D2BDA, $AF0A1B4C, $36034AF6, $41047A60,
    $DF60EFC3, $A867DF55, $316E8EEF, $4669BE79,
    $CB61B38C, $BC66831A, $256FD2A0, $5268E236,
    $CC0C7795, $BB0B4703, $220216B9, $5505262F,
    $C5BA3BBE, $B2BD0B28, $2BB45A92, $5CB36A04,
    $C2D7FFA7, $B5D0CF31, $2CD99E8B, $5BDEAE1D,
    $9B64C2B0, $EC63F226, $756AA39C, $026D930A,
    $9C0906A9, $EB0E363F, $72076785, $05005713,
    $95BF4A82, $E2B87A14, $7BB12BAE, $0CB61B38,
    $92D28E9B, $E5D5BE0D, $7CDCEFB7, $0BDBDF21,
    $86D3D2D4, $F1D4E242, $68DDB3F8, $1FDA836E,
    $81BE16CD, $F6B9265B, $6FB077E1, $18B74777,
    $88085AE6, $FF0F6A70, $66063BCA, $11010B5C,
    $8F659EFF, $F862AE69, $616BFFD3, $166CCF45,
    $A00AE278, $D70DD2EE, $4E048354, $3903B3C2,
    $A7672661, $D06016F7, $4969474D, $3E6E77DB,
    $AED16A4A, $D9D65ADC, $40DF0B66, $37D83BF0,
    $A9BCAE53, $DEBB9EC5, $47B2CF7F, $30B5FFE9,
    $BDBDF21C, $CABAC28A, $53B39330, $24B4A3A6,
    $BAD03605, $CDD70693, $54DE5729, $23D967BF,
    $B3667A2E, $C4614AB8, $5D681B02, $2A6F2B94,
    $B40BBE37, $C30C8EA1, $5A05DF1B, $2D02EF8D);

const //Crc16±í
  Crc16Table: array[0..$FF] of Word =
  ( $0000, $C0C1, $C181, $0140, $C301, $03C0, $0280, $C241,
    $C601, $06C0, $0780, $C741, $0500, $C5C1, $C481, $0440,
    $CC01, $0CC0, $0D80, $CD41, $0F00, $CFC1, $CE81, $0E40,
    $0A00, $CAC1, $CB81, $0B40, $C901, $09C0, $0880, $C841,
    $D801, $18C0, $1980, $D941, $1B00, $DBC1, $DA81, $1A40,
    $1E00, $DEC1, $DF81, $1F40, $DD01, $1DC0, $1C80, $DC41,
    $1400, $D4C1, $D581, $1540, $D701, $17C0, $1680, $D641,
    $D201, $12C0, $1380, $D341, $1100, $D1C1, $D081, $1040,
    $F001, $30C0, $3180, $F141, $3300, $F3C1, $F281, $3240,
    $3600, $F6C1, $F781, $3740, $F501, $35C0, $3480, $F441,
    $3C00, $FCC1, $FD81, $3D40, $FF01, $3FC0, $3E80, $FE41,
    $FA01, $3AC0, $3B80, $FB41, $3900, $F9C1, $F881, $3840,
    $2800, $E8C1, $E981, $2940, $EB01, $2BC0, $2A80, $EA41,
    $EE01, $2EC0, $2F80, $EF41, $2D00, $EDC1, $EC81, $2C40,
    $E401, $24C0, $2580, $E541, $2700, $E7C1, $E681, $2640,
    $2200, $E2C1, $E381, $2340, $E101, $21C0, $2080, $E041,
    $A001, $60C0, $6180, $A141, $6300, $A3C1, $A281, $6240,
    $6600, $A6C1, $A781, $6740, $A501, $65C0, $6480, $A441,
    $6C00, $ACC1, $AD81, $6D40, $AF01, $6FC0, $6E80, $AE41,
    $AA01, $6AC0, $6B80, $AB41, $6900, $A9C1, $A881, $6840,
    $7800, $B8C1, $B981, $7940, $BB01, $7BC0, $7A80, $BA41,
    $BE01, $7EC0, $7F80, $BF41, $7D00, $BDC1, $BC81, $7C40,
    $B401, $74C0, $7580, $B541, $7700, $B7C1, $B681, $7640,
    $7200, $B2C1, $B381, $7340, $B101, $71C0, $7080, $B041,
    $5000, $90C1, $9181, $5140, $9301, $53C0, $5280, $9241,
    $9601, $56C0, $5780, $9741, $5500, $95C1, $9481, $5440,
    $9C01, $5CC0, $5D80, $9D41, $5F00, $9FC1, $9E81, $5E40,
    $5A00, $9AC1, $9B81, $5B40, $9901, $59C0, $5880, $9841,
    $8801, $48C0, $4980, $8941, $4B00, $8BC1, $8A81, $4A40,
    $4E00, $8EC1, $8F81, $4F40, $8D01, $4DC0, $4C80, $8C41,
    $4400, $84C1, $8581, $4540, $8701, $47C0, $4680, $8641,
    $8201, $42C0, $4380, $8341, $4100, $81C1, $8081, $4040);

   procedure GetCRC32File(FileName:string;var CRC32:DWORD);
   function GetCrc32Str(s: string; Seed: LongInt):string;

implementation

procedure GetCRC32File(FileName:string;var CRC32:DWORD);
var
  F:file;
  BytesRead:DWORD;
  Buffer:array[1..65521] of Byte;
  i:Word;
begin
  FileMode :=0;
  CRC32 :=$ffffffff;
  {$I-}
  AssignFile(F,FileName);
  Reset(F,1);
  if IoResult = 0 then
    begin
      repeat
      BlockRead(F,Buffer,Sizeof(Buffer),BytesRead);
      for i := 1 to BytesRead do
        CRC32 := (CRC32 shr 8) xor Table[Buffer[i] xor (CRC32 and
$000000ff)];
      until BytesRead = 0;
    end;
  CloseFile(F);
  {$I+}
  CRC32 := not CRC32;
end;

function GetCrc32Str(s: string; Seed: LongInt):string;
var
  Count: Integer;
  CrcVal: LongInt;
begin
  CrcVal := Seed;
  for Count := 1 to Length(s) do
    CrcVal := Table[Byte(CrcVal xor DWORD(Ord(s[Count])))] xor
((CrcVal shr 8) and $00FFFFFF);
  Result := IntToHex(not(CrcVal), 8);
end;

end.


编辑 | 阅读全文(108) | 回复(0),viniedodo 发表于 2008-3-30 22:27

2008-3-30 22:26 | 数据加密技术

关键字:数据加密技术

我们经常需要一种措施来保护我们的数据,防止被一些怀有不良用心的人所看到或者破坏。在信息时代,信息可以帮助团体或个人,使他们受益,同样,信息也可
以用来对他们构成威胁,造成破坏。在竞争激烈的大公司中,工业间谍经常会获取对方的情报。因此,在客观上就需要一种强有力的安全措施来保护机密数据不被
窃取或篡改。数据加密与解密从宏观上讲是非常简单的,很容易理解。加密与解密的一些方法是非常直接的,很容易掌握,可以很方便的对机密数据进行加密和解
密。

一:数据加密方法
在传统上,我们有几种方法来加密数据流。所有这些方法都可以用软件很容易的实现,但是当我们只知道密文的时候,是不容易破译这些加密算法的(当同时有原
文和密文时,破译加密算法虽然也不是很容易,但已经是可能的了)。最好的加密算法对系统性能几乎没有影响,并且还可以带来其他内在的优点。例如,大家都
知道的PKZIP,它既压缩数据又加密数据。又如,DBMS的一些软件包总是包含一些加密方法以使复制文件这一功能对一些敏感数据是无效的,或者需要用
户的密码。所有这些加密算法都要有高效的加密和解密能力。

幸运的是,在所有的加密算法中最简单的一种就是"置换表"算法,这种算法也能很好达到加密的需要。每一个数据段(总是一个字节)对应着"置换表"中的一
个偏移量,偏移量所对应的值就输出成为加密后的文件。加密程序和解密程序都需要一个这样的"置换表"。事实上,80x86 CPU系列就有一个指
令'XLAT'在硬件级来完成这样的工作。这种加密算法比较简单,加密解密速度都很快,但是一旦这个"置换表"被对方获得,那这个加密方案就完全被识破
了。更进一步讲,这种加密算法对于黑客破译来讲是相当直接的,只要找到一个"置换表"就可以了。这种方法在计算机出现之前就已经被广泛的使用。

对这种"置换表"方式的一个改进就是使用2个或者更多的"置换表",这些表都是基于数据流中字节的位置的,或者基于数据流本身。这时,破译变的更加困
难,因为黑客必须正确的做几次变换。通过使用更多的"置换表",并且按伪随机的方式使用每个表,这种改进的加密方法已经变的很难破译。比如,我们可以对
所有的偶数位置的数据使用A表,对所有的奇数位置使用B表,即使黑客获得了明文和密文,他想破译这个加密方案也是非常困难的,除非黑客确切的知道用了两
张表。

与使用"置换表"相类似,"变换数据位置"也在计算机加密中使用。但是,这需要更多的执行时间。从输入中读入明文放到一个buffer中,再在
buffer中对他们重排序,然后按这个顺序再输出。解密程序按相反的顺序还原数据。这种方法总是和一些别的加密算法混合使用,这就使得破译变的特别的
困难,几乎有些不可能了。例如,有这样一个词,变换起字母的顺序,slient 可以变为listen,但所有的字母都没有变化,没有增加也没有减少,
但是字母之间的顺序已经变化了。

但是,还有一种更好的加密算法,只有计算机可以做,就是字/字节循环移位和XOR操作。如果我们把一个字或字节在一个数据流内做循环移位,使用多个或变
化的方向(左移或右移),就可以迅速的产生一个加密的数据流。这种方法是很好的,破译它就更加困难!而且,更进一步的是,如果再使用XOR操作,按位做
异或操作,就就使破译密码更加困难了。如果再使用伪随机的方法,这涉及到要产生一系列的数字,我们可以使用Fibbonaci数列。对数列所产生的数做
模运算(例如模3),得到一个结果,然后循环移位这个结果的次数,将使破译次密码变的几乎不可能!但是,使用Fibbonaci数列这种伪随机的方式所
产生的密码对我们的解密程序来讲是非常容易的。

在一些情况下,我们想能够知道数据是否已经被篡改了或被破坏了,这时就需要产生一些校验码,并且把这些校验码插入到数据流中。这样做对数据的防伪与程序
本身都是有好处的。但是感染计算机程序的病毒才不会在意这些数据或程序是否加过密,是否有数字签名。所以,加密程序在每次load到内存要开始执行时,
都要检查一下本身是否被病毒感染,对与需要加、解密的文件都要做这种检查!很自然,这样一种方法体制应该保密的,因为病毒程序的编写者将会利用这些来破
坏别人的程序或数据。因此,在一些反病毒或杀病毒软件中一定要使用加密技术。
循环冗余校验是一种典型的校验数据的方法。对于每一个数据块,它使用位循环移位和XOR操作来产生一个16位或32位的校验和 ,这使得丢失一位或两个
位的错误一定会导致校验和出错。这种方式很久以来就应用于文件的传输,例如 XMODEM-CRC。 这是方法已经成为标准,而且有详细的文档。但是,
基于标准CRC算法的一种修改算法对于发现加密数据块中的错误和文件是否被病毒感染是很有效的。

二.基于公钥的加密算法

一个好的加密算法的重要特点之一是具有这种能力:可以指定一个密码或密钥,并用它来加密明文,不同的密码或密钥产生不同的密文。这又分为两种方式:对称
密钥算法和非对称密钥算法。所谓对称密钥算法就是加密解密都使用相同的密钥,非对称密钥算法就是加密解密使用不同的密钥。非常著名的PGP公钥加密以及
RSA加密方法都是非对称加密算法。加密密钥,即公钥,与解密密钥,即私钥,是非常的不同的。从数学理论上讲,几乎没有真正不可逆的算法存在。例如,对
于一个输入'a'执行一个操作得到结果'b',那么我们可以基于'b',做一个相对应的操作,导出输入'a'。在一些情况下,对于每一种操作,我们可以
得到一个确定的值,或者该操作没有定义(比如,除数为0)。对于一个没有定义的操作来讲,基于加密算法,可以成功地防止把一个公钥变换成为私钥。因此,
要想破译非对称加密算法,找到那个唯一的密钥,唯一的方法只能是反复的试验,而这需要大量的处理时间。

RSA加密算法使用了两个非常大的素数来产生公钥和私钥。即使从一个公钥中通过因数分解可以得到私钥,但这个运算所包含的计算量是非常巨大的,以至于在
现实上是不可行的。加密算法本身也是很慢的,这使得使用RSA算法加密大量的数据变的有些不可行。这就使得一些现实中加密算法都基于RSA加密算
法。PGP算法(以及大多数基于RSA算法的加密方法)使用公钥来加密一个对称加密算法的密钥,然后再利用一个快速的对称加密算法来加密数据。这个对称
算法的密钥是随机产生的,是保密的,因此,得到这个密钥的唯一方法就是使用私钥来解密。

我们举一个例子:假定现在要加密一些数据使用密钥'12345'。利用RSA公钥,使用RSA算法加密这个密钥'12345',并把它放在要加密的数据
的前面(可能后面跟着一个分割符或文件长度,以区分数据和密钥),然后,使用对称加密算法加密正文,使用的密钥就是'12345'。当对方收到时,解密
程序找到加密过的密钥,并利用RSA私钥解密出来,然后再确定出数据的开始位置,利用密钥'12345'来解密数据。这样就使得一个可靠的经过高效加密
的数据安全地传输和解密。

一些简单的基于RSA算法的加密算法可在下面的站点找到:
ftp://ftp.funet.fi/pub/crypt/cryptography/asymmetric/rsa

三.一个崭新的多步加密算法

现在又出现了一种新的加密算法,据说是几乎不可能被破译的。这个算法在1998年6月1日才正式公布的。下面详细的介绍这个算法:
使用一系列的数字(比如说128位密钥),来产生一个可重复的但高度随机化的伪随机的数字的序列。一次使用256个表项,使用随机数序列来产生密码转
表,如下所示:
把256个随机数放在一个距阵中,然后对他们进行排序,使用这样一种方式(我们要记住最初的位置)使用最初的位置来产生一个表,随意排序的表,表中的数
字在0到255之间。如果不是很明白如何来做,就可以不管它。但是,下面也提供了一些原码(在下面)是我们明白是如何来做的。现在,产生了一个具体的
256字节的表。让这个随机数产生器接着来产生这个表中的其余的数,以至于每个表是不同的。下一步,使用"shotgun technique"技术来
产生解码表。基本上说,如果 a映射到b,那么b一定可以映射到a,所以b[a[n]] = n.(n是一个在0到255之间的数)。在一个循环中赋
值,使用一个256字节的解码表它对应于我们刚才在上一步产生的256字节的加密表。

使用这个方法,已经可以产生这样的一个表,表的顺序是随机,所以产生这256个字节的随机数使用的是二次伪随机,使用了两个额外的16位的密码.现在,
已经有了两张转换表,基本的加密解密是如下这样工作的。前一个字节密文是这个256字节的表的索引。或者,为了提高加密效果,可以使用多余8位的值,甚
至使用校验和或者CRC算法来产生索引字节。假定这个表是256*256的数组,将会是下面的样子:

crypto1 = a[crypto0][value]

变量'crypto1'是加密后的数据,'crypto0'是前一个加密数据(或着是前面几个加密数据的一个函数值)。很自然的,第一个数据需要一
个"种子",这个"种子" 是我们必须记住的。如果使用256*256的表,这样做将会增加密文的长度。或者,可以使用你产生出随机数序列所用的密码,
也可能是它的CRC校验和。顺便提及的是曾作过这样一个测试: 使用16个字节来产生表的索引,以128位的密钥作为这16个字节的初始的"种子"。然
后,在产生出这些随机数的表之后,就可以用来加密数据,速度达到每秒钟100k个字节。一定要保证在加密与解密时都使用加密的值作为表的索引,而且这两
次一定要匹配。

加密时所产生的伪随机序列是很随意的,可以设计成想要的任何序列。没有关于这个随机序列的详细的信息,解密密文是不现实的。例如:一些ASCII码的序
列,如"eeeeeeee"可能被转化成一些随机的没有任何意义的乱码,每一个字节都依赖于其前一个字节的密文,而不是实际的值。对于任一个单个的字符
的这种变换来说,隐藏了加密数据的有效的真正的长度。

如果确实不理解如何来产生一个随机数序列,就考虑FIBBONACCI数列,使用2个双字(64位)的数作为产生随机数的种子,再加上第三个双字来做
XOR操作。 这个算法产生了一系列的随机数。算法如下:

unsigned long dw1, dw2, dw3, dwMask;
int i1;
unsigned long aRandom[256];

dw1 = {seed #1};
dw2 = {seed #2};
dwMask = {seed #3};
// this gives you 3 32-bit "seeds", or 96 bits total
for(i1=0; i1 < 256; i1++)
{
dw3 = (dw1 + dw2) ^ dwMask;
aRandom[i1] = dw3;
dw1 = dw2;
dw2 = dw3;

 

}

如果想产生一系列的随机数字,比如说,在0和列表中所有的随机数之间的一些数,就可以使用下面的方法:

int __cdecl MySortProc(void *p1, void *p2)
{
unsigned long **pp1 = (unsigned long **)p1;
unsigned long **pp2 = (unsigned long **)p2;
if(**pp1 < **pp2)
return(-1);
else if(**pp1 > *pp2)
return(1);
return(0);

 

}

...
int i1;
unsigned long *apRandom[256];
unsigned long aRandom[256]; // same array as before, in this case
int aResult[256]; // results go here

for(i1=0; i1 < 256; i1++)
{
apRandom[i1] = aRandom + i1;

 

}

// now sort it
qsort(apRandom, 256, sizeof(*apRandom), MySortProc);

// final step - offsets for pointers are placed into output array
for(i1=0; i1 < 256; i1++)
{
aResult[i1] = (int)(apRandom[i1] - aRandom);

}

...

变量'aResult'中的值应该是一个排过序的唯一的一系列的整数的数组,整数的值的范围均在0到255之间。这样一个数组是非常有用的,例如:对一
个字节对字节的转换表,就可以很容易并且非常可靠的来产生一个短的密钥(经常作为一些随机数的种子)。这样一个表还有其他的用处,比如说:来产生一个随
机的字符,计算机游戏中一个物体的随机的位置等等。上面的例子就其本身而言并没有构成一个加密算法,只是加密算法一个组成部分。

作为一个测试,开发了一个应用程序来测试上面所描述的加密算法。程序本身都经过了几次的优化和修改,来提高随机数的真正的随机性和防止会产生一些短的可
重复的用于加密的随机数。用这个程序来加密一个文件,破解这个文件可能会需要非常巨大的时间以至于在现实上是不可能的。

四.结论:
由于在现实生活中,我们要确保一些敏感的数据只能被有相应权限的人看到,要确保信息在传输的过程中不会被篡改,截取,这就需要很多的安全系统大量的应用
于政府、大公司以及个人系统。数据加密是肯定可以被破解的,但我们所想要的是一个特定时期的安全,也就是说,密文的破解应该是足够的困难,在现实上是不
可能的,尤其是短时间内。

参考文献:

1 . PGP! http://www.pgpi.com/
Cyber Knights(new link) http://members.tripod.com/cyberkt/
(old link: http://netnet.net/~merlin/knights/)
2 . Crypto Chamber http://www.jyu.fi/~paasivir/crypt/

3 . SSH Cryptograph A-Z (includes info on SSL and https)
http://www.ssh.fi/tech/crypto/

4 . funet' cryptology FTP (yet another Finland resource)
ftp://ftp.funet.fi/pub/crypt/
A GREAT Enigma article, how the code was broken by Polish scientists
http://members.aol.com/nbrass/1enigma.htm

5 . FTP site in UK ftp://sable.ox.ac.uk/pub/crypto/

6 . Australian FTP site ftp://ftp.psy.uq.oz.au/pub/

7 . Replay Associates FTP Archive ftp://utopia.hacktic.nl/pub/replay/pub/crypto/

8 . RSA Data Security (why not include them too!) http://www.rsa.com/
Netscape's whitepaper on SSL
http://developer1.netscape.com/docs/manuals/security/sslin/contents.htm

编辑 | 阅读全文(40) | 回复(1),viniedodo 发表于 2008-3-30 22:26

2008-3-30 22:25 | 如何实现DES算法

如何实现DES算法
原文:Matthew Fischer
翻译:小榕软件实验室
DES( Data Encryption Standard)算法,于1977年得到美国政府的正式许可,是一种用56位密钥来加密64位数据的方
法。DES算法以被应用于许多需要安全加密的场合。(如:UNIX的密码算法就是以DES算法为基础的)。下面是关于如何实现DES算法的语言性描述,
如果您要其源代码,可以到Http//Assassin.yeah.net下载,后者您有任何问题也可以写信给我
(Assas...@ynmail.com)。
1-1、变换密钥
取得64位的密钥,每个第8位作为奇偶校验位。
1-2、变换密钥。
1-2-1、舍弃64位密钥中的奇偶校验位,根据下表(PC-1)进行密钥变换得到56位的密钥,在变换中,奇偶校验位以被舍弃。
Permuted Choice 1 (PC-1)
57 49 41 33 25 17 9
1 58 50 42 34 26 18
10 2 59 51 43 35 27
19 11 3 60 52 44 36
63 55 47 39 31 23 15
7 62 54 46 38 30 22
14 6 61 53 45 37 29
21 13 5 28 20 12 4
1-2-2、将变换后的密钥分为两个部分,开始的28位称为C[0],最后的28位称为D[0]。
1-2-3、生成16个子密钥,初始I=1。
1-2-3-1、同时将C[I]、D[I]左移1位或2位,根据I值决定左移的位数。见下表
I: 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16
左移位数: 1 1 2 2 2 2 2 2 1 2 2 2 2 2 2 1
1-2-3-2、将C[I]D[I]作为一个整体按下表(PC-2)变换,得到48位的K[I]

Permuted Choice 2 (PC-2)
14 17 11 24 1 5
3 28 15 6 21 10
23 19 12 4 26 8
16 7 27 20 13 2
41 52 31 37 47 55
30 40 51 45 33 48
44 49 39 56 34 53
46 42 50 36 29 32
1-2-3-3、从1-2-3-1处循环执行,直到K[16]被计算完成。

2、处理64位的数据
2-1、取得64位的数据,如果数据长度不足64位,应该将其扩展为64位(例如补零)
2-2、将64位数据按下表变换(IP)
Initial Permutation (IP)
58 50 42 34 26 18 10 2
60 52 44 36 28 20 12 4
62 54 46 38 30 22 14 6
64 56 48 40 32 24 16 8
57 49 41 33 25 17 9 1
59 51 43 35 27 19 11 3
61 53 45 37 29 21 13 5
63 55 47 39 31 23 15 7
2-3、将变换后的数据分为两部分,开始的32位称为L[0],最后的32位称为R[0]。
2-4、用16个子密钥加密数据,初始I=1。
2-4-1、将32位的R[I-1]按下表(E)扩展为48位的E[I-1]
Expansion (E)
32 1 2 3 4 5
4 5 6 7 8 9
8 9 10 11 12 13
12 13 14 15 16 17
16 17 18 19 20 21
20 21 22 23 24 25
24 25 26 27 28 29
28 29 30 31 32 1
2-4-2、异或E[I-1]和K[I],即E[I-1] XOR K[I]
2-4-3、将异或后的结果分为8个6位长的部分,第1位到第6位称为B[1],第7位到第12位称为B[2],依此类推,第43位到第48位称为
B[8]。
2-4-4、按S表变换所有的B[J],初始J=1。所有在S表的值都被当作4位长度处理。
2-4-4-1、将B[J]的第1位和第6位组合为一个2位长度的变量M,M作为在S[J]中的行号。
2-4-4-2、将B[J]的第2位到第5位组合,作为一个4位长度的变量N,N作为在S[J]中的列号。
2-4-4-3、用S[J][M][N]来取代B[J]。
Substitution Box 1 (S[1])
14 4 13 1 2 15 11 8 3 10 6 12 5 9 0 7
0 15 7 4 14 2 13 1 10 6 12 11 9 5 3 8
4 1 14 8 13 6 2 11 15 12 9 7 3 10 5 0
15 12 8 2 4 9 1 7 5 11 3 14 10 0 6 13
S[2]
15 1 8 14 6 11 3 4 9 7 2 13 12 0 5 10
3 13 4 7 15 2 8 14 12 0 1 10 6 9 11 5
0 14 7 11 10 4 13 1 5 8 12 6 9 3 2 15
13 8 10 1 3 15 4 2 11 6 7 12 0 5 14 9
S[3]
10 0 9 14 6 3 15 5 1 13 12 7 11 4 2 8
13 7 0 9 3 4 6 10 2 8 5 14 12 11 15 1
13 6 4 9 8 15 3 0 11 1 2 12 5 10 14 7
1 10 13 0 6 9 8 7 4 15 14 3 11 5 2 12
S[4]
7 13 14 3 0 6 9 10 1 2 8 5 11 12 4 15
13 8 11 5 6 15 0 3 4 7 2 12 1 10 14 9
10 6 9 0 12 11 7 13 15 1 3 14 5 2 8 4
3 15 0 6 10 1 13 8 9 4 5 11 12 7 2 14
S[5]
2 12 4 1 7 10 11 6 8 5 3 15 13 0 14 9
14 11 2 12 4 7 13 1 5 0 15 10 3 9 8 6
4 2 1 11 10 13 7 8 15 9 12 5 6 3 0 14
11 8 12 7 1 14 2 13 6 15 0 9 10 4 5 3
S[6]
12 1 10 15 9 2 6 8 0 13 3 4 14 7 5 11
10 15 4 2 7 12 9 5 6 1 13 14 0 11 3 8
9 14 15 5 2 8 12 3 7 0 4 10 1 13 11 6
4 3 2 12 9 5 15 10 11 14 1 7 6 0 8 13
S[7]
4 11 2 14 15 0 8 13 3 12 9 7 5 10 6 1
13 0 11 7 4 9 1 10 14 3 5 12 2 15 8 6
1 4 11 13 12 3 7 14 10 15 6 8 0 5 9 2
6 11 13 8 1 4 10 7 9 5 0 15 14 2 3 12
S[8]
13 2 8 4 6 15 11 1 10 9 3 14 5 0 12 7
1 15 13 8 10 3 7 4 12 5 6 11 0 14 9 2
7 11 4 1 9 12 14 2 0 6 10 13 15 3 5 8
2 1 14 7 4 10 8 13 15 12 9 0 3 5 6 11
2-4-4-4、从2-4-4-1处循环执行,直到B[8]被替代完成。
2-4-4-5、将B[1]到B[8]组合,按下表(P)变换,得到P。
Permutation P
16 7 20 21
29 12 28 17
1 15 23 26
5 18 31 10
2 8 24 14
32 27 3 9
19 13 30 6
22 11 4 25
2-4-6、异或P和L[I-1]结果放在R[I],即R[I]=P XOR L[I-1]。
2-4-7、L[I]=R[I-1]
2-4-8、从2-4-1处开始循环执行,直到K[16]被变换完成。
2-4-5、组合变换后的R[16]L[16](注意:R作为开始的32位),按下表(IP-1)变换得到最后的结果。
Final Permutation (IP**-1)
40 8 48 16 56 24 64 32
39 7 47 15 55 23 63 31
38 6 46 14 54 22 62 30
37 5 45 13 53 21 61 29
36 4 44 12 52 20 60 28
35 3 43 11 51 19 59 27
34 2 42 10 50 18 58 26
33 1 41 9 49 17 57 25
以上就是DES算法的描述。

编辑 | 阅读全文(33) | 回复(0),viniedodo 发表于 2008-3-30 22:25

2008-3-30 22:25 | 一些网站

关键字:一些网站
allhack.com
本网站提供了图书馆及下载专区。该图书馆为初学者提供了黑客知识和计算机技术基础知识。下载区包括了扫描工具,FLOOD工具,解密工具,拒绝服务攻击
等。

alw.nih.gov
在安全目录下有大量的安全工具

anticode.com
入侵攻击,拒绝服务攻击,密钥记录器,邮件炸弹,最流行的IRC客户程序脚本,扫描器,嗅探器,口令解密器,木马等程序。此网站更新及时,而且维护也很

auscert.org.au
澳大利亚电脑紧急反应小组,包括大量入侵攻击及其工作原理的信息。

astalavista.com
一个很棒的黑客工具和入侵攻击的搜索网站

bugtraq.com
提供安全及入侵攻击有用信息的数据库

cerias.cs.purder.edu
本网站包含非常多的网络安全方面的信息和工具。

cert.org
Carngie Mellon大学的计算机紧急反应小组的网站。

ciac.llnl.gov
提供病毒信息,及时的电子公告牌,邮件列表,安全源信息,工具和操作系统的站点。

cultdeadcow.com
一个黑客组织的主页

ftp.cert.dfn.de
软件下载的FTP站点里面工具多多哦,好象是很老了可惜但是值得学习

deny.de
网页包含了大量的攻击方法,文本,脚本和程序,包含大量信息源并为初学者提供了入门知识

elitehackers.com
为博学的黑客提供的信息公告牌,是上了等级的黑客去的地方。可找到最新的入侵攻击及对解决办法

enslaver.com
FTP列表列出了其所有的入侵攻击及脚本

firosoft.com/security/philez
入侵攻击,工具,文本文件在目录下一一列出,并根据不同的操作系统进行分类。

first.org
意外事件反应小组的组织

ftp.nec.com
在/pub/securit目录下面包含一个巨大的工具库

ftp.porcupine.org
大量安全工具,没有标签和分类。

ftp.win.tue.nl
在/pub/securit目录下包含巨大的安全工具库

geek-speak.net
一个在计算机安全上致力于whitepaper的站点。

hack.co.za
大量根据操作系统或攻击类型分类的攻击。应该有很多人知道把

hackernews.com
关于黑客组织的每日报道。

hackersclub.com
提供大量的信息资源和文本文件,并保持时时更新

infosyssec.net
大量的新闻来源,从病毒,入侵攻击到安全防范。

infowar.co.uk
该网站主要包括文章,建议和工具

insecure.org
新闻,入侵攻击(win,linux,solaris等系统),安全工具和whiepaper,更新好快

l0pht.com
包含大量关于网络安全和攻击的有用的工具

net.tamu.edu
安全工具在http://net.tamu.edu,network/public.html

packetstorm.securify.com
新闻和入侵攻击的站点,随时更新攻击的数据库。为每一条攻击提供注解。可查询攻击数据库。俺入侵的话,第一个就去查它。真的很好哦````

rootshell.com
提供定制的在不同系统中的攻击。此网站研究的现实大量不同的入侵攻击,还提供可以搜索的数据库及文档

sans.org
SANS研究院的主页,包含大量的研究讨论和认证安全的信息。安全专家有时间应该去看看~

securiteam.com
关于安全问题新闻文章的网站,列出了攻击,工具和各种各样的软件

securityfocus.com
BugTraq主页,提供有用的攻击信息

ussrbak.com
自我探索攻击的站点,自学者的好地方

whitehats.com
包含了一个巨大的黑客工具库

wiretrip.net/rfp
Rainforest Puppy的主页,主要是针对CGI脆弱行的信息和攻击NT的信息

www-arc.com
可供下载的系统和网络扫描妻,入侵公告牌

哎介绍这么多的国外黑客资源现在来一点安全资料,下面是邮件列表安全方面的,下面是更新及时的邮件列表
http://www.ntsecurity.net通过在线签约网页假如NT列表

Alert向mailto:request-al...@iss.net发送邮件,并在邮件的正文中写入Subscribe alert

Bug Traq向mailto:LIST...@NETSPACE.ORG发送邮件,并在邮件的正文中写入subscribe buy traq

Cert mailto:cert-advisory-requ...@cert.org并在邮件的正文中写入subscribe

FreeBSD Hackers Digest mailto:Majord...@FreeBSD.ORG并在邮件的中文中写入
subscribe

Happy Hacker Digest mailto:hac...@techbroker.com并在邮件的中文中写入subscribe

Linux security mailto:linux-security-requ...@redhat.com并在邮件的中文中写入
subscribe

Linux Admin mailto:Majordomo@vger,rutgers.edu并在邮件的中文中写入subscribe
linux- admin
NTBuy Traq maito:LISTS...@LISTSERV.NTBUYTRAQ.COM并在邮件的中文中写入BSCRIBE

编辑 | 阅读全文(33) | 回复(0),viniedodo 发表于 2008-3-30 22:25

2008-3-30 22:24 | 安全网站

关键字:安全网站
国内安全 http://www.janker.org/ 孤独剑客
国内安全 http://www.sunx.org sunx的个人主页
国内安全 http://www.ns-one.com rootshell的个人主页
国内安全 http://www.snake.gnuchina.org snake的个人主页
国内安全 http://www.vertarmy.org 绿色兵团
国内安全 http://www.cnns.net 安络科技
国内安全 http://www.topwalk.com 天行网安公司主页
国内安全 http://www.nsfocus.com 中联绿盟公司主页
国内安全 http://www.lisoleg.net 利索脚
国内安全 http://www.chinafirst.org.cn 中国信息安全论坛
国内安全 http://sinbad.zhoubin.com/ sinbad网络安全
国内安全 www.safen.org 中国安全在线
国内安全 www.xfocus.net 安全焦点
国内安全 www.chinaitlab.com 中国IT认证实验室
国内安全 www.patching.net 南京补天网
国内安全 www.cnnf.org 中国网络安全阵线
国内安全 http://www.microsoft.com/technet/security/default.asp Microsoft
TechNet Security
国内安全 www.chinafirst.org.cn 中国信息安全论坛
国内安全 www.aqwl.com 中国安全网络中心
国内安全 www.505net.net 505net急救网
国内安全 www.bluedon.com 蓝盾安全在线
国内安全 www.pandaguard.com 熊猫卫士
国内安全 www.netguard.com.cn 网络卫士
国内安全 http://www.netpower.com.cn/ 京中科网威信息技术有限公司
国内安全 http://www.rising.com.cn/ 北京瑞星科技股份有限公司
国内安全 http://www.is-one.net/ 安氏
国内安全 www.chinahacker.net 龙派网络安全公司
国内安全 www.flying2002.com一位学生的网站 适合广大菜鸟
国外安全 http://www.neohapsis.com/ 内容极为丰富
国外安全 http://www.deadly.org/ 大量关于OpenBSD的资料文档教程
国外安全 http://www.guninski.com/ 安全专家Guninski的主页,有大量由系统漏洞
国外安全 http://www.sysinternals.com 有很好的windows下的工具及源代码
国外安全 http://www.securityflaw.com/bible/ 入侵检测等文档整理较好的站点
国外安全 http://www.secinf.net/ 网络安全方面的大量文档
国外安全 http://www.incident-response.org 入侵反应,数据恢复工具等
国外安全 http://www.securityfocus.com/ 安全资料整合最好的站
国外安全 http://www.project.honeynet.org/ 由安全界一帮牛人组织的一个project
国外安全 http://www.packetstormsecurity.com 资料全面的安全站
国外安全 http://www.securityportal.com/ 还可以看看的安全站
国外安全 http://www.ussrback.com/ 比较活跃的安全站
国外安全 http://www.attrition.org/ 内容全面的安全站
国外安全 http://www.wiretrip.net/rfp/2/index.asp rfp的安全主页,提供权威的安全信息
国外安全 http://www.antionline.com/ 有些特色栏目的安全站
国外安全 http://www.eeye.com/ eeye公司的主页,提供权威性的安全建议和工具
国外安全 http://www.insecure.org/ Fyodor的主页,nmap的老家,还有exploit
国外安全 http://www.atstake.com/ @stack公司的主页,提供权威的安全建议
国外安全 http://www.bugnet.com/ 提供漏洞修补
国内黑客 http://club.hackbbs.com spps hacker site
国内黑客 www.sandflee.net 灰色轨迹
国内黑客 www.netxeyes.com 小榕软件
国内黑客 www.leothreads.com 网络技术论坛
国内黑客 www.starkun.com 黑白网络
国内黑客 www.cnhonker.net 中国红客联盟
国内黑客 www.sometips.com Adam
国内黑客 www.netslum.com NetSlum
国内黑客 www.epeta.net 一位学生的网站
国内黑客 www.sangel.net 安全天使
国内黑客 www.nyfzns.net 诺亚方舟网络安全小组
国内黑客 www.thysea.com 黑色海岸线
国内黑客 www.3w3.org 网络最高安全指南
国内黑客 www.fanqiang.com 永远的UNIX
国内黑客 www.hacker.com.cn 黑客防线
国内黑客 www.china4lert.org 红色警戒
国内黑客 www.whitecell.org Whitecell Security Systems 民间电脑技术原创组织,追求技术的精纯
国内黑客 www.ttian.net 天天安全网(黑客工具)
国内黑客 www.cnhacker.com 中国黑客联盟
国内黑客 www.54hack.com 中国青年黑客联盟 一群可爱的年轻人的民间电脑技术组织
国内黑客 www.hackerabc.com 红色联盟 ;;;;;;;;
国内黑客 www.21cnhoc.com 可华黑客联盟
国内黑客 www.hackart.org 黑客技术
国内黑客 www.safen.org 劲风网络技术小组
国内黑客 www.isforce.org  网络力量
国内黑客 http://www.realhack.org/ 中国新青年阵线
国内黑客 http://landun.org 蓝盾联盟
国内黑客 www.chinawill.com 中国鹰派 刺刀上带着思想
国内黑客 www.chinasafe.net 中国安全在线
国内黑客 www.dancefires.com 网络安全小组
国内黑客 www.cnredmay.net 五月安全网
国内黑客 www.20nt.net 20NT网络安全组
国内黑客 www.pediy.com 看雪学苑
国内黑客 www.oldhand.org oldhand org
国内黑客 http://www.chinahacker.com 中 国 黑 客 联 盟
国内黑客 http://www.crackbest.net 白菜乐园
国内黑客 http://www.driverdevelop.com/lu0/ 陆麟的主页

国外黑客 http://lsd-pl.net/ LsD的站,最新最有效的exploit
国外黑客 http://www.s0ftpj.org 提供一些水平很高的小工具
国外黑客 http://phrack.org/ Phrack的主页,经典的黑客技术电子杂志
国外黑客 http://www.w00w00.org/ w00w00组织的主页
国外黑客 http://mixter.void.ru/ Mixter的个人主页,不少有用的工具
国外黑客 http://www.thehackerschoice.com/ THC黑客组织的页面,很好的安全文档和工具
国外黑客 www.win2000mag.net Windows & .NET Magazine Network 绝对专业的站点,文章都是一流

国外黑客 http://www.2600.com/ 2600 Magazine
国外黑客 www.experts-exchange.com 全球有名的社区
国外黑客 www.is-it-true.org 类似于FAQ的站点,资源丰富
国外黑客 www.mixter.warrior2k.com mixter security
国外黑客 www.liun.hektik.org Long Island our Underground Networks
国外黑客 www.ussrback.com ussr is back
国外黑客 www.securiteam.com 非常好的安全文章漏洞利用工具下载站点
国外黑客 www.lsd-pl.net The Last Stage of Delirium Research Group
国外黑客 www. neworder.box.sk Box Network team
国外黑客 www.sysinternals.com sysinternals
国外黑客 www.webattack.com WebAttack Inc
国外黑客 www.blackhat.com Black Hat, Inc
国外黑客 http://p.ulh.as pulhas
国内电脑技术站点 www.linuxforum.net 中国Linux论坛 学术气氛浓重的Linux论坛
国内电脑技术站点 http://www.linuxeden.com/ Linux伊甸园 自由软件 自由文档 自由网站
国内电脑技术站点 www.linuxaid.com.cn 北京朗新网络科技有限公司主办
国内电脑技术站点 www.vbgood.com VB爱好者乐园
国内电脑技术站点 http://vchelp.net 与Visual C++开发相关的专业网站
国内电脑技术站点 www.ccw.com.cn 计算机世界网
国内电脑技术站点 www.ccidnet.com 赛迪网
国内电脑技术站点 http://soft.winzheng.com 赢政天下-下载中心
国内电脑技术站点 http://www.lslnet.com/linux/ 蓝森林
国内电脑技术站点 http://www.itleague.org/ IT社团
国内电脑技术站点 http://www.soft163.com 163软件园
国内电脑技术站点 http://www.driverdevelop.com 驱动开发网
国内电脑技术站点 http://www.csdn.net/ 中国最大的开发者网络
国外常用网站站点 http://www.google.com 最好的页面搜索引擎
国外常用网站站点 http://www.netcraft.com 很好的域名搜索引擎
国外常用网站站点 http://www.checkdomain.com 域名信息检索器
国外常用网站站点 http://astalavista.box.sk 最好的注册码、注册机、序列号搜索引擎
Nsfocus http://www.nsfocus.com
Securityfocus http://www.securityfocus.com
Cnhonker http://www.cnhonker.com
Packetstorm http://packetstormsecurity.net
Chinansl http://www.chinansl.com
Phreak http://www.phreak.org
Xfocus http://www.xfocus.org
Ntsecurity http://www.ntsecurity.nu
Netxeyes http://www.netxeyes.com
Bugnet http://www.bugnet.com
Cnns http://www.cnns.net
Neworder http://www.neworder.box.sk
ChinaFirst http://www.chinafirst.org.cn
Securiteam http://www.securiteam.org
ChinaWill http://www.chinawill.com
Neohapsis http//archives.neohapsis.com/archives
Refdom http://www.opengram.com
Atstake http://www.atstake.com
Sunx http://www.sunx.org
LUC http://www.lbfok.com
Lsd http://lsd-pl.net
Rootshell http://www.nsforce.org
cqure http://www.cqure.net
E4gle http://www.e4gle.org
Vibrasi http://www.vibrasi.net
Bigluo http://asm.yeah.net
Teso http://www.team-teso.net
Infosec http://www.infosec.org.cn
THC http://www.thehackerschoice.com
Heibai http://heibai.net
W00w00 http://www.w00w00.org
Ttian http://www.ttian.net
Flywing http://www.flying2002.com
Iss http://www.iss.net
Whitecell http://www.whitecell.org
Sometips http://www.sometips.com
Skynet http://sky.net.cn
Chinaproxy http://www.chinaproxy.net
20CN http://www.20cn.net
Bluedon http://www.bluedon.com
Net7b http://www.net7b.com
Haowawa http://www.haowawa.com
Janker http://www.janker.org
Packerland http://www.peckerland.com
Proxy365 http://proxy365.1399.org
Fanqiang http://www.fanqiang.com
Csdn http://www.csdn.net
Sangel http://www.sangel.net
Patching http://www.patching.net
Cnredmay http://www.cnredmay.com
Safechina http://www.safechina.net
Sandflee http://www.sandflee.net
9836 http://www.9836.com
Net130 http://www.net130.com
Vchelp http://www.vchelp.net
Duba http://www.duba.net
Coolfire http://fetag.dhs.org
Ellenzp http://www.ellenzp.com


编辑 | 阅读全文(47) | 回复(0),viniedodo 发表于 2008-3-30 22:24

2008-3-30 22:23 | Hacker文化简史

关键字:Hacker文化简史
序曲: real programmer

故事一开始,我要介绍的是所谓的real programmer。

他们从不自称是real programmer、hacker或任何特殊的称号;`real programmer' 这个名词是在1980年代才出
现,但早自1945年起,电脑科学便不断地吸引世界上头脑最顶尖、想像力最丰富的人投入其中。从eckert &mauchly发明eniac後,便不
断有狂热的programmer投入其中,他们以撰写软件与玩弄各种程式设计技巧为乐,逐渐形成具有自我意识的一套科技文化。当时这批real
programmers主要来自工程界与物理界,他们戴著厚厚的眼镜, 穿聚酯纤维t恤与纯白袜子,用机器语言、汇编语言、fortran及很多古老
的 语言写程式。他们是hacker时代的先驱者,默默贡献,却鲜为人知。

从二次大战结束後到1970早期,是打卡计算机与所谓"大铁块"的mainframes 流行的年代,由real programmer主宰电脑文
化。hacker传奇故事如有名的 mel (收录在jargon file中)、murphy's law的各种版本、mock-
german`blinkenlight' 文章都是流传久远的老掉牙笑话了。

※译者:
jargon file亦是本文原作者所编写的,里面收录了很多hacker用语、缩写意 义、传奇故事等等。jargon file有出版成一本书:
the new hacker's dictionary,mit press出版。也有online版本: http://www.ccil.org/jargon

※译者:
莫非定律是:当有两条路让你抉择,若其中一条会导致失败,你一定会选到它。 它有很多衍生说法:比如一个程式在demo前测试几千几万次都正确无误,但
demo 那一天偏偏就会出bug。

一些real programmer仍在世且十分活跃 (本文写在1996年)。超级电脑cray 的设计者seymour cray,据说亲手设计
cray全部的硬体与其操作系统,作业 系统是他用机器码硬干出来的,没有出过任何bug或error。real programmer 真是超
强!

举个比较不那么夸张的例子:stan kelly-bootle,the devil's dp dictionary 一书的作者(mcgraw-
hill,1981年初版,isbn 0-07-034022-6)与hacker 传奇专家,当年在一台manchester mark i开发程
式。他现在是电脑杂志的专栏 作家,写一些科学幽默小品,文笔生动有趣投今日hackers所好,所以很受欢迎。 其他人像david e.
lundstorm,写了许多关於real programmer的小故事, 收录在a few good men from univac这本
书,1987年出版,isbn-0- 262-62075-8。

※译:看到这里,大家应该能了解,所谓real programmer指的就是用组合语 言或甚至机器码,把程式用打卡机punch出一片片纸卡片,由
主机读卡机输入电 脑的那种石器时代programmer。

real programmer的时代步入尾声,取而代之的是逐渐盛行的interactive computing,大学成立电算相关科系及电脑网
络。它们催生了另一个持续的工程传统,并最终演化为今天的开放代码黑客文化。
早期的黑客
hacker时代的滥觞始於1961
年mit出现第一台电脑dec pdp-1。mit的tech model railroad club(简称tmrc)的power and
signals group买了这台机器後,把它当成最时髦的科技玩具,各种程式工具与电脑术语开始出现,整个环境与文化一直发展下去至今日。 这在
steven levy的书`hackers' 前段有详细的记载(anchor/doubleday 公司,1984年出版,isbn
0-385-19195-2)。

※译:interactive computing并非指windows、gui、wysiwyg等介面, 当时有terminal、有shell可以
下指令就算是interactive computing了。 最先使用hacker这个字应该是mit。1980年代早期学术界人工智慧的权威:
mit 的artificial intelligence laboratory,其核心人物皆来自tmrc。从1969年 起,正好是
arpanet建置的第一年,这群人在电脑科学界便不断有重大突破与 贡献。

arpanet是第一个横跨美国的高速网络。由美国国防部所出资兴建,一个实验性 质的数位通讯网络,逐渐成长成联系各大学、国防部承包商及研究机构的
大网络。 各地研究人员能以史无前例的速度与弹性交流资讯,超高效率的合作模式导致科技 的突飞猛进。

arpanet另一项好处是,资讯高速公路使得全世界的hackers能聚在一起,不再像以前孤立在各地形成一股股的短命文化,网络把他们汇流成一股强
大力量。 开始有人感受到hacker文化的存在,动手整理术语放上网络,在网上发表讽刺文学与讨论hacker所应有的道德规范。(jargon
file的第一版出现在1973年,就是一个好例子),hacker文化在有接上arpanet的各大学间快速发展,特别是(但不全是)在信息相关科
系。

一开始,整个hacker文化的发展以mit的ai lab为中心,但stanford university 的artificial
intelligence laboratory(简称sail)与稍後的carnegie-mellon university(简称cmu)正快速
崛起中。三个都是大型的资讯科学研究中心及人工智慧的权威,聚集著世界各地的精英,不论在技术上或精神层次上,对hacker文
化都有极高的贡献。

为能了解後来的故事,我们得先看看电脑本身的变化;随著科技的进步,主角mit ai lab也从红极一时到最後淡出舞台。

从mit那台pdp-1开始,hacker们主要程式开发平台都是digital equipment corporation 的pdp迷你电脑序
列。dec率先发展出商业用途为主的interactive computing及time-sharing操作系统,当时许多的大学都是买dec的机
器, 因为它兼具弹性与速度,还很便宜(相对於较快的大型电脑mainframe)。 便宜的分时系统是hacker文化能快速成长因素之一,在pdp
流行的时代, arpanet上是dec机器的天下,其中最重要的便属pdp-10,pdp-10受到 hacker们的青睐达十五年;
tops-10(dec的操作系统)与macro-10(它的组译器),许多怀旧的术语及hacker传奇中仍常出现这两个字。

mit像大家一样用pdp-10,但他们不屑用dec的操作系统。他们偏要自己写一个:传说中赫赫有名的its。

its全名是`incompatible timesharing system',取这个怪名果然符合mit的搞怪作风 -- 就是要与众不同,他们
很臭屁但够本事自己去写一套操作系统。its始终不稳,设计古怪,bug也不少,但仍有许多独到的创见,似乎还是分时系统 中开机时间最久的纪录保持
者。

its本身是用汇编语言写的,其他部分由lisp写成。lisp在当时是一个威力强大与极具弹性的程式语言;事实上,二十五年後的今天,它的设计仍优於
目前大多数的程式语言。lisp让its的hacker得以尽情发挥想像力与搞怪能力。lisp是mit ai lab成功的最大功臣,现在它仍是
hacker们的最爱之一。

很多its的产物到现在仍活著;emacs大概是最有名的一个,而its的稗官野史仍为今日的hacker们所津津乐道,就如同你在jargon
file中所读到的一般。 在mit红得发紫之际,sail与cmu也没闲著。sail的中坚份子後来成为pc 界或图形使用者介面研发的要角。cmu
的hacker则开发出第一个实用的大型专 家系统与工业用机器人。

另一个hacker重镇是xerox parc公司的palo alto research center。从 1970初期到1980中期这十几年
间,parc不断出现惊人的突破与发明,不论质或量,软件或硬体方面。如现今的视窗滑鼠介面,雷射印表机与区域网络;其d系列的机器,催生了能与迷你电
脑一较长短的强力个人电脑。不幸这群先知先觉者并不受到公司高层的赏识;parc是家专门提供好点子帮别人赚钱的公司成为众所皆知的大笑话。即使如
此,parc这群人对hacker文化仍有不可抹灭的贡献。 1970年代与pdp-10文化迅速成长茁壮。mailing list的出现使世界各地
的人得以组成许多sig(special-interest group),不只在电脑方面,也有社会与娱乐方面的。darpa对这些非`正当性'活动
睁一只眼闭一只眼,因为靠这些活动会吸引更多的聪明小夥子们投入电脑领域呢。

有名的非电脑技术相关的arpanet mailing list首推科幻小说迷的,时至今日arpanet变成internet,愈来愈多的读者参与
讨论。mailing list逐渐成为一种公众讨论的媒介,导致许多商业化上网服务如compuserve、genie与prodigy 的成
立。
unix 的兴起

此时在新泽西州的郊外,另一股神秘力量积极入侵hacker社会,终於席卷整个pdp-10的传统。它诞生在1969年,也就是arpanet成立的那
一年,有个在at&t bell labs的年轻小夥子ken thompson发明了unix。

thomspon曾经参与multics的开发,multics是源自its的操作系统,用来实做当时一些较新的os理论,如把操作系统较复杂的内部结
构隐藏起来,提供一个介面,使的programmer能不用深入了解操作系统与硬体设备,也能快速开发程式。

译:那时的programmer写个程式必须彻底了解操作系统内部,或硬体设备。比方说写有io的程式,对於硬碟的转速,磁轨与磁头数量等等都要搞的一
清二楚才行。

在发现继续开发multics是做白工时,bell labs很快的退出了(後来有一家公司honeywell出售multics,赔的很
惨)。ken thompson很喜欢multics上的作业环境,於是他在实验室里一台报废的dec pdp-7上胡乱写了一个操作系统, 该系统在
设计上有从multics抄来的也有他自己的构想。他将这个操作系统命名unix,用来反讽multics。

译:其实是ken thompson写了一个游戏`star travel' 没地方跑,就去找一台的报废机器pdp-7来玩。他同事brian
kernighan嘲笑ken thompson说:「你写的系统好逊哦,乾脆叫unics算了。」(unics发音与太监的英文eunuches一
样),後来才改为unix。

他的同事dennis ritchie,发明了一个新的程式语言c,於是他与thompson用c把原来用汇编语言写的unix重写一遍。c的设计原则
就是好用,自由与弹性, c与unix很快地在bell labs得到欢迎。1971年thompson与ritchie争取到一个办公室自动化系统的
专案,unix开始在bell labs中流行。不过thompson与ritchie的雄心壮志还不止於此。

那时的传统是,一个操作系统必须完全用汇编语言写成,始能让机器发挥最高的效能。thompson与ritchie,是头几位领悟硬体与编译器的技术,
已经进步到作业系统可以完全用高阶语言如c来写,仍保有不错的效能。五年後,unix已经成功地移植到数种机器上。

译:ken thompson与dennis ritchie是唯一两位获得turing award(电脑界的诺贝尔奖)的工程师(其他都是学
者)。

这当时是一件不可思议的事!它意味著,如果unix可以在各种平台上跑的话,unix 软件就能移植到各种机器上。再也用不著为特定的机器写软件了,能
在unix上跑最重要,重新发明轮子已经成为过去式了。

除了跨平台的优点外,unix与c还有许多显著的优势。unix与c的设计哲学是keep it simple,
stupid'。programmer可以轻易掌握整个c的逻辑结构(不像其他之前或以後的程式语言)而不用一天到晚翻手册写程式。而unix提供许多
有用的小工具程式,经过适当的组合(写成shell script或perl script),可以发
挥强大的威力。

※注:the c programming language是所有程式语言书最薄的一本,只有两百多页哦。作者是brian kernighan与
dennis ritchie,所以这本c语言的圣经又称`k&r'。

※注:`keep it simple, stupid' 简称kiss,今日unix已不follow这个原则,几乎所有unix都是要灌一堆有的没
的utilities,唯一例外是minix。

c与unix的应用范围之广,出乎原设计者之意料,很多领域的研究要用到电脑时,他们是最佳拍档。尽管缺乏一个正式支援的机构,它们仍在at&t内部中
疯狂的散播。到了1980年,已蔓延到大学与研究机构,还有数以千计的hacker想把unix装在家里的机器上。

当时跑unix的主力机器是pdp-11、vax系列的机器。不过由於unix的高移植性,它几乎可安装在所有的电脑机型上。一旦新型机器上的unix
安装好,把软件的c原始码抓来重新编译就一切ok了,谁还要用汇编语言来开发软件? 有一套专为unix设计的网络 --- uucp:一种低速、不稳
但很成本低廉的网络。 两台unix机器用条电话线连起来,就可以使用互传电子邮件。uucp是内建在unix系统中的,不用另外安装。於是unix站
台连成了专属的一套网络,形成其hacker文化。在1980第一个usenet站台成立之後,组成了一个特大号的分散式布告栏系统,吸引而来的人数很
快地超过了arpanet。

少数unix站台有连上arpanet。pdp-10与unix的hacker文化开始交流, 不过一开始不怎么愉快就是了。pdp-10的
hacker们觉得unix的拥护者都是些什么也不懂的新手,比起他们那复杂华丽,令人爱不释手的lisp与its,c与
unix简直原始的令人好笑。『一群穿兽皮拿石斧的野蛮人』他们咕哝著。

在这当时,又有另一股新潮流风行起来。第一部pc出现在1975年;苹果电脑在1977年成立,以飞快的速度成长。微电脑的潜力,立刻吸引了另一批年轻
的 hackers。他们最爱的程式语言是basic,由於它过於简陋,pdp-10的死忠派与unix迷们根本不屑用它,更看不起使用它的人。

译:这群hacker中有一位大家一定认识,他的名字叫bill gates,最初就是他在8080上发展basic compiler的。
古老时代的终结

1980年同时有三个hacker文化在发展,尽管彼此偶有接触与交流,但还是各玩 各的。arpanet/pdp-10文化,玩的是
lisp、macro、tops-10与its。unix与c的拥护者用电话线把他们的pdp-11与vax机器串起来玩。还有另一群散乱无秩序的微电
脑迷,致力於将电脑科技平民化。

三者中its文化(也就是以mit ai lab为中心的hacker文化)可说在此时达到全盛时期,但乌云逐渐笼罩这个实验室。its赖以维生的
pdp-10逐渐过时,开始有人离开实验室去外面开公司,将人工智慧的科技商业化。mit ai lab的高手挡不住新公司的高薪挖角而纷纷出
走,sail与cmu也遭遇到同样的问题。

译:这个情况在gnu宣言中有详细的描述,请参阅:(特别感谢由aka的chuhaibo翻成中文)
http://www.aka.citf.net/magazine/gnu/manifesto.html

致命一击终於来临,1983年dec宣布:为了要集中在pdp-11与vax生产线, 将停止生产pdp-10;its没搞头了,因为它无法移植到其他
机器上,或说根本没人办的到。而berkeley univeristy修改过的unix在新型的vax跑得很顺,是 its理想的取代品。有远见的人
都看得出,在快速成长的微电脑科技下,unix一
统江湖是迟早的事。

差不多在此时steven levy完成``hackers'' 这本书,主要的资料来源是richard m. stallman(rms)的故事,
他是mit ai lab领袖人物,坚决反对实验室的研 究成果商业化。

stallman接著创办了free software foundation,全力投入写出高品质的自由软件。levy以哀悼的笔调描述他是
`the last true hacker',还好事实证明levy完全错了。

译:richard m. stallman的相关事迹请参考: http://www.aka.citf.net/magazine/gnu/cover.htm
stallman的宏大计划可说是80年代早期hacker文化的缩影 -- 在1982年他 开始建构一个与unix相容但全新的操作系统,以c来写
并完全免费。整个its 的精神与传统,经由rms的努力,被整合在一个新的,unix与vax机器上的 hacker文化。 微电脑与区域网络的科
技,开始对hacker文化产生影响。motorola 68000 cpu 加ethernet是个有力的组合,也有几家公司相继成立生产第一代的工
作站。 1982年,一群berkeley出来的unix hacker成立了sun microsystems,他们的算盘打的是:把unix架在以
68000为cpu的机器,物美价廉又符合多数
应用程式的要求。他们的高瞻远嘱为整个工业界树立了新的里程碑。虽然对个人而言,工作站仍太昂贵,不过在公司与学校眼中,工作站真是比迷你电脑便宜太多
了。在这些机构里,工作站(几乎是一人一台)很快地取代了老旧庞大的vax等timesharing机器。 译:sun一开始生产的工作站cpu是用
motorola 68000系列,到1989才
推出自行研发的以sparc系列为cpu的sparcstation。
私有unix时代
1984年at&t解散了,unix正式成为一个商品。当时的hacker文化分成两大类,一类集中在internet与usenet上(主要是跑
unix的迷你电脑或工作站连上网络),以及另一类pc迷,他们绝大多数没有连上internet。
※译:台湾在1992年左右连上internet前,玩家们主要以电话拨接bbs交换资讯,但是有区域性的限制,发展性也大不如usenet。 sun
与其他厂商制造的工作站为hacker们开启了另一个美丽新世界。工作站诉求的是高效能的绘图与网络,1980年代hacker们致力为工作站撰写软
件,不断挑战及突破以求将这些功能发挥到百分之一百零一。berkeley发展出一套内建支援arpanet protocols的unix,让
unix能轻松连上网络,internet也成长
的更加迅速。

除了berkeley让unix网络功能大幅提升外,尝试为工作站开发一套图形界面也不少。最有名的要算mit开发的x window了。x
window成功的关键在完全公开原始码,展现出hacker一贯作风,并散播到internet上。x成功的干掉其他商业化的图形界面的例子,对数年
後unix的发展有著深远的启发与影响。 少数its死忠派仍在顽抗著,到1990年最後一台its也永远关机长眠了;那些死忠派在穷途末路下只有悻悻
地投向unix的怀抱。
unix们此时也分裂为berkeley unix与at&t两大阵营,也许你看过一些当时的海报,上面画著一台钛翼战机全速飞离一个爆炸中、上面印著
at&t的商标的死星。berkeley unix的拥护者自喻为冷酷无情的公司帝国的反抗军。就销售量来说,at&t unix始终赶不上bsd/
sun,但它赢了标准制订的战争。到1990年,at&t与bsd版本已难明显区分,因为彼此都有采用对方的新发明。 随著90年代的来到,工作站的地
位逐渐受到新型廉价的高档pc的威胁,他们主要是用intel 80386系列cpu。第一次hacker能买一台威力等同於十年前的迷你电脑的机器,
上面跑著一个完整的unix,且能轻易的连上网络。 沈浸在ms-dos世界的井底蛙对这些巨变仍一无所知,从早期只有少数人对微电脑有兴趣,到此时玩
dos与mac的人数已超过所谓的"网络民族"的文化,但他们始终没成什么气候或搞出什么飞机,虽然聊有佳作光芒乍现,却没有稳定发展出统一的文化传
统,术语字典,传奇故事与神话般的历史。它们没有真正的网络,只能聚在小型的bbs站或一些失败的网络如fidonet。 提供上网服务的公司如
compuserve或genie生意日益兴隆,事实显示non-unix的操作系统因为并没有内附如compiler等程式发展工具,很少有
source 在网络上流传,也因此无法形成合作开发软件的风气。 hacker文化的主力,是散布在internet各地,几乎可说是玩unix的文
化。他们玩电脑才不在乎什么售後服务之类,他们要的是更好的工具、更多的上网时间、
还有一台便宜32-bit pc。
机器有了,可以上网了,但软件去哪找?商业的unix贵的要命,一套要好几千大洋($)。90年代早期,开始有公司将at&t 与bsd unix移植
到pc上出售。 成功与否不论,价格并没有降下来,更要紧的是没有附原始码,你根本不能也不准 修改它,以符合自己的需要或拿去分享给别人。传统的商业
软件并没有给hacker
们真正想要的。
即使是free software foundation(fsf)也没有写出hacker想要的操作系统,
rms承诺的gnu操作系统 -- hurd说了好久了,到1996年都没看到影子(虽
然1990年开始,fsf的软件已经可以在所有的unix平台执行)。
早期的免费unix
在这空窗期中,1992年一位芬兰helsinki university的学生 -- linus torvalds 开始在一台386pc上发展一
个自由软件的unix kernel,使用fsf的程式开发工具。
他很快的写好简单的版本,丢到网络上分享给大家,吸引了非常多的hacker来帮 忙一起发展linux -- 一个功能完整的unix,完全免费且附
上全部的原始码。 linux最大的特色,不是功能上的先进而是全新的软件开发模式。直到linux的 成功前,人人都认为像操作系统这么复杂的软件,
非得要靠一个开发团队密切合作, 互相协调与分工才有可能写的出来。商业软件公司与80年代的free software foundation所采用
都是这种发展模式。
linux则迥异於前者。一开始它就是一大群hacker在网络上一起涂涂抹抹出来 的。没有严格品质控制与高层决策发展方针,靠的是每周发表新版供大
家下载测试, 测试者再把bug与patch贴到网络上改进下一版。一种全新的物竞天择、去芜存菁的快速发展模式。令大夥傻眼的是,东修西改出来的
linux,跑的顺极了。
1993年底,linux发展趋於成熟稳定,能与商业的unix一分高下,渐渐有商业应用软件移植到linux上。不过小型unix厂商也因为
linux的出现而关门大吉 - 因为再没有人要买他们的东西。幸存者都是靠提供bsd为基础的unix的完整原 始码,有hacker加入发展才能继
续生存。
hacker文化,一次次被人预测即将毁灭,却在商业软件充斥的世界中,披荆斩棘,
筚路蓝缕,开创出另一番自己的天地。
网络大爆炸时代
linux能快速成长的来自令一个事实:internet大受欢迎,90年代早期isp如雨後春笋般的冒出来,world-wide web的出现,使
得internet成长的速度, 快到有令人窒息的感觉。
bsd专案在1994正式宣布结束,hacker们用的主要是免费的unix(linux与一些4.4bsd的衍生版本)。而linux cd-rom
销路非常好(好到像卖煎饼般)。 近几年来hacker们主要活跃在linux与internet发展上。world wide web
让internet成为世界最大的传输媒体,很多80年代与90年代早期的hacker们现在都在经营isp。
internet的盛行,hacker文化受到重视并发挥其政治影响力。94、95年美国政府打算把一些较安全、难解的编码学加以监控,不容许外流与使
用。这个称为clipper proposal的专案引起了hacker们的群起反对与强烈抗议而半途夭折。 96年hacker又发起了另一项抗议运
动对付那取名不当的"communications
decency act",誓言维护internet上的言论自由。

电脑与internet在21世纪将是大家不可或缺的生活用品,现代孩子在使用 internet科技迟早会接触到hacker文化。它的故事传奇与哲
学,将吸引更多人投入。未来对hacker们是充满光明的。


编辑 | 阅读全文(36) | 回复(0),viniedodo 发表于 2008-3-30 22:23

2008-3-30 22:22 | 黑客道三字经

关键字:黑客道三字经

黑客道,要学好。为什么?很重要。
哲数技,是整体。三兼顾,乃法宝。
老与庄,立圭臬,垂青史,永光耀。
黑客道,承衣钵,铸辉煌,吹号角。

追求真,学哲理。习数学,抓泛导。
崇尚善,为亿万。实无穷,成泛极。
运泛极,体现美。此财富,极自豪。
造泛通,至极致,方入禅,自由了。

黑客道,三乘三。十余载,精选挑。
表处理、做系统、加汇编,水平高。
每一种,三阶段,细分解,困难少。
三语言,有侧重,各不同,听唠叨。

之一,scheme

表处理,很古老。排次序,用列表。
互联网,未过时,新集散,很热闹。
内行人,看门道。细分析,分组包。
包跟包,序关系。无非是,老一套。

万维网,是窗口,其实质,传符号。
十单元,口诀表。万物初,皆原子。
原子多,两大类:曰数字、曰符号。
数与术,任运作,排好队,成列表。

究本源,零或一,建尺度,无更小。
静辖域、块结构。尾递归,妙嵌套。
先前继、再后续、间测零、不动点。
细分清,非递推。递归法,具四要。

算算子,成高阶,威力大。扩全局,
限局部,准引用,常结合,要用好。
云行天,雨施地。时间流,可延迟。
吞或吐,过端口,打开后,要关掉。

辨语义,比创意,连续者,最独到。
善驾驭,出神奇,可命名、可传递、
可返回、可联合。跳千里;能回溯;
两任务、相协作;多进程、可互导。

多回值、动态风、卫生宏,比妖娆,
数一流。一滴水,千条虫。眼不见,
心不烦。杂环境,打成包。若认真,
再解包。元循环,一堆栈,七寄存。

零比零,成浑沌。非确定,世常态。
多层析,模糊集、粗糙集,阴阳爻。
扩主体,成广义。求大善,有遗憾。
有所得,必有失。抓尺度,兴波涛。

波涛丛,可排队。寻规律,求正交。
正交系,引拓扑,入泛函,对称显。
变换法,有拉氏、傅立叶、加卷积......
商化积,宏可敌。藏局部,对象俏。

之二,c

筑系统,重内核。细节多,要周到。
先复述,后重现。此伉俪,感情牢。
个性强,不完美,陷阱多,却流行。
造基砖,用指针,列三纲,归五常。

三纲者,为赋值、为检索、为交换。
五常者,辟空间、起名称、装地址、
列类型、定初值。五缺一,有问题。
诸病毒,有正奇。其根源,在这里。

遵纲常,皆实质。要入门,须明了。
初上路,没感觉。不着急,多练习!
先熟练,熟生巧。修炼时,抗干扰。
入洞天,境奇妙。快深频,三步跳。

优先级,结合级,不明时,加括号。
先乘除、后加减。用等号,值比较?
为赋值?单双敲,须仔细,不混淆。
断逻辑,与或非,莫忘记,非最早。

书程序,预编译,宏代换,头文件,
两选择、四循环。句法糖,都不难。
大括弧,合多句,站一起,配分号。
数组快,带类型,可多维,姻指针。

库函数,是帮手。多给予,少苛求。
不迷信,勿盲从。能用否?凭自主。
著作权,双刃剑,仅防身,毋伤人。
凡专利,皆毒药,人人打,过街鼠。

众结构,好归纳。有向量,有链表。
有堆栈,有队列。有集合,有哈希。
多棵树,可成图。一大堆,带权限、
再列队。此十种,很基础,组合爆。

做移植,廿四库。进与出,互逆向。
全遍历、加过滤。若实现,即明了!
论算法,读内核。六模块,细节杂,
抓接口,能简化。须持久,戒急躁。

之三,汇编(assembly coding)

二进制,即阴阳。老祖宗,早用了!
通神明、类万物。卦象多,寓哭笑。
各硬件,死机器。盘活它,有诀窍。
当黑客,练汇编。过了关,技巧刁。

三八六,是主流。实模式,先上手。
指令集,要分类。不怕它,慢调校。
寄存器,芯片里,看不见,莫着急。
寻址法,可直接,可间接,弯弯绕。

各大段,有起始。要配合,偏移量。
代码段,不宜改。数据段,变化乱,
有静态、有动态。动态段,有堆栈、
有附加。寻址时,要记住,段类型。

堆栈里,名堂多。四大类:参数表、
返回址、表达式、局部值。名与实,
本是空,空生无,无生有。阴与阳,
阳含阴、阴含阳,可互转,程序跑。

作乐趣,生中断。中断源,有硬软。
软中断,可自编。切换时,就跳转。
视条件,判标志,勤开关,旌旗妍。
护现场,备后唤。总导演:时钟源。

浮点数、字符串、多媒体、皆疑难。
除法慢,能右移,则右移,省时间。
有理数,有精度,保任务,巧截取。
汇编器,一翻译。伪指令,好太监。

诸八仙,异神通,过大海,互调用。
烂石子,铺街美。有章法,郑板桥。
他山石,可攻玉,扬他长,避己短。
二接口,准模拟,混合法,大势潮。

善御之,仿级数,有收敛,有发散。
谙一种,即扩展。巧组合,半变万。
成大器,谋大业。制胜术,贵在速,
敏应需。要记住:时易逝,金不换。

总结

识局整、判形影、辨异同、排泛序、
显运转、度生克。十八字,是学魂。
融数学、方法论、系统论、逻辑学、
本体论、价值观,六统一,悟归宿。

成才法,靠七故。若不足,运筹好。
七故中,静心态、祛杂念,最难调。
创伟业,仰人文。敬师友,谦受益。
广开源,需扬弃。做学问,忌浮飘。

软件业,要自立。靠什么?唯创新。
谁创新?数人才。要人才,哪里来?
成才路,不一格。独木桥、阳关道,
千万条。孰最多?中国人,领风骚。

(完)

编辑 | 阅读全文(23) | 回复(0),viniedodo 发表于 2008-3-30 22:22
黑客有自己的道德准则:所有的信息都应当是免费的;打破电脑集权;计算机使生活更美好等
普通的电脑程序员要成为黑客也不难,但要成为一名黑客高手,除了智慧,还要有足够的耐心和毅力
网络安全最薄弱的环节并不是系统漏洞,而是人的漏洞
电脑黑客是一群处于地下状态的电脑狂人,尽管技术高超,但他们却不能抛头露面,他们的网站一律以黑色为背景,平添几分神秘色彩。想到黑客,人们脑中就闪
现出两个字:罪犯。
不过最近,这些神秘人物聚集在美国匹兹堡,参加最古老的黑客大会---所谓最古老,也不过是1985年后才出现的新鲜事。本届大会组织者最重要的任务之
一是让公众相信,不是所有的黑客都是罪犯。就连出席大会、目光深邃的FBI探员汤姆·加拉索也同意:黑客并不总是利用计算机犯罪或捣乱,一些黑客破解电
脑代码只是为了发现更方便使用某个程序的"捷径"。
技艺精湛
一名昔日黑客告诉记者,依靠黑客工具,普通的电脑程序员要成为黑客也不难,但要成为一名黑客高手,除了智慧,还要有足够的耐心和毅力。
现成的黑客工具可以通过扫描上网者的IP地址寻找到目标计算机,并列出漏洞清单。但如果你水平不够,即便看到这个清单也无法加以利用。
黑客们为了不暴露自己的IP地址,通常使用两种方法,一种是利用代理服务器,将自己的IP地址伪装起来,这种代理服务器很多都可以在网上免费得到。另一
种是"跳板"技术,也就是说,寻找一台正在上网的电脑,假借这台电脑的地址隐藏自己,这台电脑通常被黑客们称为"肉机"。许多"肉机"主人在被安全部门
找到时,还往往莫名其妙,一脸无辜。
找到一台可以"嫁祸"的个人电脑要费很长时间,因为个人用户不会在网上逗留很久,每台电脑的实际情况也都不一样。而微软这样的公司也会一直推出补丁程序
来修补他们的漏洞,所以黑客需要不断发现新漏洞。"总而言之,要掌握真正的黑客技术,是很难很难,很繁琐的"。
历史上最著名的黑客莫过于凯文·米特尼克。15岁时,米特尼克就成功入侵"北美空中防务指挥系统",成为经典案例。16岁时的一天,他在看FBI的电脑
网络,发现FBI正在调查一名黑客,便饶有兴趣地看起来,看着看着,突然大吃一惊:被调查者竟然是他自己!
在很短的时间里他频频进入各大公司,修改用户资料,害得这些公司哭笑不得,连连向客户道歉。媒体称他无所不能,还被《时代》选为封面人物。但他最终还是
被FBI绳之以法,据说,是他的作案风格,而不是他的技术,让他露出了马脚。米特尼克不但被判5年监禁,一切上网工具包括计算机、手机都不准触摸---
因为他只需敲击5个键就可入侵一家网站。
黑客道德准则
如果你问黑客为何要入侵计算机系统,他们中的绝大多数会回答:好玩。
绝大多数的黑客只是一些电脑技术的狂热爱好者,他们入侵各种网站,只是以此为乐。一名黑客告诉记者:"第一次成功入侵后,很兴奋,看到了别人公司的客户
资料、财务报表,真是有点心惊胆战,但5分钟后我就发现,这些资料对我而言,也没有任何用处。"因为如果要利用黑客技术犯罪,就必须冒坐牢的风险,一般
人是不会那么做的。
黑客们有自己的道德准则(theHackerEthic)。史蒂夫·利维在其著名的《黑客电脑史》一书中对于"黑客道德准则"作出了详细的解释,包括:
所有的信息都应当是免费的;打破电脑集权;计算机使生活更美好等。这些东西被黑客们看作是"江湖规矩",反正你只要想成为一个黑客,这些就一定要遵
守。
黑客大会的组织者图姆波尔说:"那些任意涂改网页或者摧毁像eBay和亚马逊网站系统的人不应被称做黑客,我把他们叫做破坏分子。"中国的黑客组织黑客
联盟也宣称:作为黑客,其职责就是寻找漏洞、维护网络安全。
前不久,一所美国大学宣布将于今年秋季开设教授如何编写病毒软件的课程,消息一公布,就招致极大争议。大学方面的理由是,要成为反病毒专家,就应该知道
如何制造病毒。但反对者认为,你不需要写病毒才能理解它,世界上已经有6万种电脑病毒需要消灭,这种做法不能被社会道德所接受。
在绝大多数黑客看来,研究黑客技术的目的只能是一个,那就是以提高电脑技术水平为目的,以不搞破坏为底线。
人是最大漏洞
对黑客持宽容态度的人认为,一个网站被黑,恰恰说明它有安全漏洞。事实上,很早就有人知道这些易受攻击的弱点了,但是普通人根本就没有电脑安全方面的意
识。
已经金盆洗手的凯文·米特尼克日前在接受采访时说,网络安全最薄弱的环节并不是系统漏洞,而是人的漏洞。他就曾假扮摩托罗拉公司员工,并成功说服该公司
的工程师将最新的电话系统软件发送给他。他说,虽然黑客以前发动攻击只是为了好玩,但现在很多攻击的目的却远不止此,它们的目标更多地锁定在了机密的商
业和个人信息,以获得非法利益。
面对这些潜在的巨大威胁,政府和许多企业都投入了大量的财力和物力用于安全防范,预计今年一年投入的资金将高达135亿美元,比2000年翻了一番。但
安全专家认为,仅仅购置安全软件是远远不够的,政府和企业必须充分注意到人的因素,因为最薄弱的环节很可能是大意的人,而不是软件的漏洞。米特尼克攻陷
了许多极为繁复的网络,靠的不光是高超的技术,更多的是利用人的弱点。他的名言是:"愚蠢是没有补药的!" 米特尼克认为,计算机和解调器都不是问题的
关键,人才是最重要的,只有把人的安全防范意识提升到一个相当高的地步,黑客攻击的破坏性才能够从根本上降低。这个曾经被称为"地狱黑客"的电脑高手现
在创建了一家安全咨询公司,专为客户提供安全防护服务。
编辑 | 阅读全文(37) | 回复(2),viniedodo 发表于 2008-3-30 22:21

前瞻性无线网络安全资料

见附件

编辑 | 阅读全文(63) | 回复(0),viniedodo 发表于 2008-3-30 22:20

2008-3-26 23:40 | [原创]找点事给自己做

       这周起我开始给自己找了很多事去做,像是想要让自己忙不过来。尤其是今天过的很充实,早上的微机原理去了另外一个老师那里听课,以前就知道那个老师叫方针,总觉得他是个男的,进了教师才发现哇,原来是个女老师诶。听了她的两节课发现节奏有点慢,差点睡着,算了以后还是回原来老师那听课吧,虽然别人都觉得我们老师讲的太快但我还觉得很正常,适合我。后面的计算机通信网络我没领书,因为发现书太差了,今天上课挑了个靠后的地方,不过靠窗可以看到外面的景色还是不错的。不过上课以后就傻了眼了--看不见,那就听写(我高中一直就是这么干的),