Apr 3, 2009

UltraEdit中加入Delphi的语法高亮显示

很多人非常喜欢用UltraEdit写代码,其功能强大相信很多人都是有目共睹的

然而ultra edit本身没有提供delphi的关键字语法高亮

(pascal就这样悲剧的被忽略了)

只找到c/c++/java/vb/jsp/mysql/python/ruby等等等等

没关系,可以配置的

依次打开 高级--配置--编辑器显示--语法高亮

在‘词语列表完整路径’里默认指向UltraEdit的语法高亮配置文件

比如我的电脑上为

C:\Documents and Settings\wybin\Application Data\IDMComp\UltraEdit\WORDFILE.UEW

注意,某些版本中可能是txt格式

点击打开,打开该文件

在末尾加入以下代码。

注意,开头的/L14数字是可以改的,取决于你的UE上已经配置了多少个语法高亮文件

{--------------------Beginning of the codes, do not copy this line------------------------------ }

/L14"Delphi" Nocase Line Comment = // Block Comment On = { Block Comment On Alt = (* Block Comment Off = } Block Comment Off Alt = *) Escape Char = ?String Chars = ' File Extensions = pas dpr
/Delimiters = #$&'()*+,-./;<>@[]^{}
/Function String = "%^{procedure^}^{function^}"
/Indent Strings = "begin" "repeat" "asm"
/Unindent Strings = "end" "until"
/C1"Reserved words"
array asm
begin
case class const constructor
destructor dispinterface do downto
else end except exports
file finalization finally for function
goto
if implementation inherited initialization inline interface
label library
nil
object of out
packed procedure program property
raise record repeat resourcestring
set string
then threadvar to try type
unit until
uses
var
while with
/C2"Directives"
absolute abstract assembler automated
cdecl contains
default dispid dynamic
export external
far forward
implements index
message
name near nodefault
overload override
package pascal private protected public published
read readonly register reintroduce requires resident
safecall stdcall stored
virtual
write writeonly
/C3"Operators"
*
+
-
// /
< <= <>
=
> >=
@
and as
div
in is
mod
not
or
shl shr
xor
/C4"Special symbols"
#
$
&
(
(.
)
,
.
.)
..
:
:=
;
[
]
^

{------------------------End of the codes, do not copy this line------------------------------ }

保存,就可以高亮DELPHI的关键字了

Apr 1, 2009

右键菜单中加入当前文件目录的CMD快捷通道

好久没写东西了
最近一直在忙着公司的培训(Delphi, Oracle, ProC等)。还有一门是我一直想学的JAVA,但是算了,哎,没缘分,只好等把目前的东西学透了再抽空自学了。还好可以找人问

最近在使用公司提供的软件时发现了一个好东西,贴出来共享下
由于软件有两种模式,一种是菜单管理模式,是完整版的可动态修改菜单的
但是需要在CMD窗口下调用系统EXE文件并修改些参数
老打开CMD然后复制路径接着右键粘贴挺麻烦的
想到以前有的OS右键菜单有DOS快速通道,可以打开CMD.EXE
上网找到了这个,可以直接右键进入当前目录的CMD窗口
说明完毕,贴关键的东西

在文件夹的右键菜单中添加“命令提示符cmd”快捷通道选项。
运行regedit打开注册表,在注册表 HKEY_CLASSES_ROOT\Directory\shell分支下新建一项命名为“CommandPrompt”,修改右侧窗口中的“默认”键 值为“命令提示符(你想要在右键菜单里看到的文字)”,并在该项下级再建一个新项“Command”,将右侧窗口中“默认”键值设为“cmd.exe /k cd %1”。至此OK,你可以很快速的定位到指定的目录。

Mar 14, 2009

终于搭建起TA系统了!!

真的是呕心沥血啊,哎


客户端程序是写好的,一堆DDL加个EXE文件

服务器端,数据库是ORC 10g

由于TA系统采用的是三层架构,中间层用的是Tuxedo8.1


首先是今天我把系统重装了

因为昨天装VC6编译器时系统卡住了,我很郁闷

别人装的系统已经让我郁闷很久了,从系统到硬盘到域都让我纠结

花了3个小时重装了系统和软件(很高效吧,嘿嘿,不是GHOST哦,装的是原版的)

然后接下来的四个小时就在搭建TA系统

——摸着石头过河啊


新装了ORC数据库,果然用起来很顺手,10g的你想装多少次它只会在

*:\oracle\product\10.2.0下多建几个db_*路径而已,这点比9i要好很多

顺利的导入了数据库,然后,艰辛的过程就开始了流泪


首先建了个TA文件夹,里边有常用的一些目录

如src,temp,log,bin,etc等等

然后把服务器的一堆.pc和.c文件拷到src文件夹下,再加上用于配置VC编译器的makefile文件,接着启动cmd切换到src目录执行>make

热,报错。。。

找到问题所在——makefile配置文件里没有修改好

而且有两处错误,一点一点改,一点一点调

编译成功了!!然后再将ubb文件(tux配置)和编译好的可执行文件(自动放在bin目录)一起放到bin目录里,执行

tmloadcf -y ubb

what??tmloadcf can not run on a non-master mode

晕~~~是不是刚装系统时用的没有加入公司域的管理员账号装的TUX

加入域后我用域内用户名登陆,虽然我已经给它赋了管理员权限让它可以安装文件

但是在TUX这还是卡住了

没办法,重装TUX,重装的时候安装目录和先前不同(埋下了悲剧的伏笔流泪


重装TUX后再起,这回得退到make这一步了

>make

晕,buildserver不是一个内部或外部命令,也不是一个可执行的文件&*(&*

怎么回事,buildserver是tux\bin目录下的一个exe文件,建立服务器的

怎么会找不到?

看makefile和ubb文件,没有错啊。。。

困扰了很久,猛然想起:两次安装目录不同,环境变量!!!!

我只改了TUXDIR,而真正指向bin目录的是系统path变量下的tuxedo8.1\bin路径

改之再

>make

晕,CMDTUX_CAT you do not have a valid SDK license

靠,我装的时候明明把lic.txt文件导入了啊,它提示成功了

怎么可以。。。怎么可以酱紫。。。

再困扰了很久,又猛然想起,我瓜皮了,TUX识别lic的时候时去翻找TUXDIR变量

问题在这里!!改之,再

>make 哇卡卡卡卡,好顺利啊,酣畅淋漓


接下来又到了tmloadcf -y ubb这条命令

这回执行时候不会不承认我是它的master了

可是,又跳出来说TUXCONFIG未配置??

咦。ubb文件里明明配了的嘛,怎么回事?

随便set TUXCONFIG=$APPDIR\bin

再敲入命令,不对,说TUXCONFIG应该要和ubb中的匹配

明白了,set回来,再敲入命令

哇卡卡卡卡,酣畅淋漓啊


接着tmboot,很听话的启动了

再启动客户端,跳出数据库配置窗口

由于前边抓狂了很久,已经不记得要怎么填WSNADDR了,本机似乎不用填

可是服务器名忘记了

OK,够了,今天已经被摧残够了


想对兄弟们说,我们这群小年轻

面对生活

一定要学习小强的精神

那就是

“你TM的就是踩不死我!!”


收工,刷卡下班

Mar 9, 2009

【转】09年3月编程语言排行榜:VB江河日下,JavaScript稳步上升

2009年3月Tiobe编程语言排行榜出炉,前十位的排名基本没有变化,JavaScript前进2名,同比增长1.27%,(Visual) Basic下降1位,同比减少3.32%。

2009年3月榜单



前十名长期趋势



以下是排名21到50的语言

【CSDN新闻】专家称微软网络品牌混乱陷入web 2.0困局

导读:业界分析人士伊安·加里森(Ian Garrison)今天载文称,微软正在公司内部测试Kumo搜索引擎,但仅靠杰出的技术,微软无法挑战谷歌。微软还需要整合旗下不同的服务品牌,让普通用户理解其服务产品。以下为其全文:

微软新的“谷歌杀手”——Kumo搜索引擎似乎非常棒,但仅靠杰出的技术,微软无法成为互联网搜索市场上的领头羊。

消息称,微软正在公司内部对Kumo进行测试。Kumo不仅能够理解搜索关键词,还能够理解复杂的句子,返回的搜索结果的相关度也高得多。

如果其表现能够与微软的宣传相符,Kumo将标志着搜索技术的一大进步。因为当前的搜索技术还很“基本”, 尽管能够在不足1秒钟的时间内返回数以千计的搜索结果,但有多少搜索结果是用户真正感兴趣的?如果能够提供相关度更高的搜索结果,微软就可能成为搜索市场 上的赢家,但这还取决于另外一个因素——有效整合其品牌。

目前,微软的“Live”服务可谓是一团乱麻。谷歌提供了简洁的服务,而微软则陷入了web 2.0困局。没有多少人真正理解Windows Live、Office Online、Office Live是什么。尽管每种服务可能都很棒,但普通用户却很难搞清楚它们各自的用途。

部分业界观察人士认为,微软在计划将各种服务整合到Kumo品牌下。考虑到微软目前服务产品的混乱局面,这可谓是一项英明的决策。如果微软希望挑战谷歌,就需要重新考虑其销售互联网服务的方式。(志翔)

【转】Oracle重新配置EM简化版教程

Oracle 10G重建EM DB Control.
  1.drop configuration files and repository run :
  emca -deconfig dbcontrol db -repos drop
  2. Logon SQLPLUS as user SYS or SYSTEM, and drop the sysman account and mangement objects:
  a. drop user sysman cascade;
  b. drop role MGMT_USER;
  c. drop user MGMT_VIEW cascade;
  d. drop public synonym MGMT_TARGET_BLACKOUTS;
  e. drop public synonym SETEMVIEWUSERCONTEXT;
  3.Create configuration files and repository run
  emca -config dbcontrol db -repos create
  创建EM时,提示的端口号,应为实例的断口号,比如1521,不是EM的端口号(比如1158)
  EM的端口号在这个文件中可以查到10.2.0\db_1\sysman\config\emca.properties
  然后,进行em后,界面出来了,但报了一个错:
  Java.lang.Exception: Exception in sending Request :: null
  很多功能不能用,提示重新登录.
  在Oracle论坛上查到了解决办法:
  http://forums.oracle.com/forums/thread.jspa?threadID=320574&tstart=0&messageID=1374397
  找到下面的文件
  10.2.0\db_1\ZYKNET_ORC2\sysman\config\emd.properties
  其中的agentTZRegion缺省是GMT,改为你所在的时区即可,例如:
  agentTZRegion=Asia/Chungking
  关于时区的列表参考:10.2.0\db_1\sysman\admin\supportedtzs.lst
  然后,重启OracleDBConsole

【转】你的系统有多脆弱

软件安全性依然是热点话题。每个人,从老祖母到全球 500 强公司都听说过由互联网上的病毒和攻击者所引起的盗窃身份、丢失数据,及一般性的伤害的事。在 2008 年第一季度,所有报告的 1,474 个不同的软件脆弱点只有 64 个被解决。 1 分辨率大约为 4%。伴随所有关于软件和系统安全的议论,计算机世界似乎处于一片混乱中,这会让许多人不禁问道:“我有多脆弱?”

在本文中,我将介绍一些伍斯特工业学院(Worcester Polytechnic Institute,WPI)近期的安全项目的成果,以及额外的研究。我的目的是通过阐明公共术语并且提供一些典型的安全性使用的现实实例来说明什么是软件安全性。

本文不打算提供全面的计算机安全教育,而是介绍一些辽阔且扩展的信息安全领域中的关键主题。如果您想要进一步讨论,那么请通过 rbreznak@wpi.edu 联系我。

背景

我 早期对计算机安全的兴趣实际上激发了我对计算机科学的最初兴趣,并且从那时起就一直是我关注的焦点。所以不用说,我有一点失望的是 WPI 没有提供大学软件或系统安全课程。在没有任何正式的安全课程的情况下,我和其他两个计算机科学的学生决定进行独立研究,了解更多关于软件安全的知识。今年 的早些日子,我们和 WPI 计算机科学的教授 Kathryn Fisler 谈论关于开始一个涉及软件安全的独立研究项目的事。我们计划开设一门首先在 08-09 学年度进行的安全软件工程的课程。众所周知,CS4400x 将成为 WPI 提供的第一门大学计算机科学安全课程。

在开设该课程的过程中,我们发现许多关于没有在标准课 程中提到的软件脆弱性和预防的事实。我们发现大部分脆弱点通常由小的逻辑错误或软件开发人员没发现或解决的情况所引起。一些脆弱点不太复杂,因而很容易被 黑客利用。可以通过一些简单的资源就能找到它们,像 Web 浏览器和文本编辑器。在软件开发团队出错的其他情况下,安全性的破坏可能由最终用户不恰当地配置或使用软件所致。

我们的结论是,最大的安全缺陷源于开发人员错误地假设安全问题将在系统的其他地方处理 —— 举例来说,他们假设可以相信输入的数据。经验教训:我们不得不认识到安全是每个人的职责,不是其他人的。


脆弱性 101

脆 弱性是什么?“利用”、“攻击”、“脆弱点”,和其它术语一般用于描述什么适当的软件安全目的在于纠正:系统中允许黑客特权访问信息或破坏系统的缺陷。 Mitre Corporation 将脆弱性定义为“系统或网络中允许黑客以另一个用户的身份执行命令,访问他们不应该访问的数据,冒充某人,及/或执行拒绝服务的状态”。 2 根据此定义,脆弱就意味着处于一种状态,在这种状态下,黑客(人或恶意程序,像病毒或间谍软件)可以访问到比他们应该可以访问的要多的系统的部分。

脆弱点出现的范围很广,从明显的 —— 像使用不健壮的密码或存储无保护的私有数据 —— 到更有细微差异的 —— 像未检查的输入。

溢出攻击

最 早遭受破坏的,且仍旧普遍的攻击来源于开发人员对最终用户输入的数据可以信任的假设。大部分程序设计人员未预料在用户名框中得到 40,000 行文本,或者从密码框中获得甚至非键盘输入的模糊字符,因此,所输入的数据从不会被验证无误。这种假设增加了溢出攻击。举例来说,使用本文编辑器并了解一 些 Microsoft PowerPoint 文件格式的知识, 3 人们就可以手工编写 PowerPoint 文件。编辑 PowerPoint 文件 4 , 让内部字段中拥有比格式允许的更多的数据会导致 Microsoft PowerPoint XP 崩溃,然后执行任何黑客想要执行的程序。在一个这种脆弱性的熟悉的实例中,内嵌的 Windows 计算器程序被执行,然而,被执行的程序很容易是更恶意的。这只是无数的这类利用中的一个实例。

实质上,溢 出类攻击是由于将太多的数据放入原始程序设计人员认为足够的空间中导致的。额外的数据溢出到预期存储区附近的内存中,并且覆盖与该区域的原始用途无关的数 据。当执行余下的程序时,它使用新被覆盖的数据。如果黑客能够用伪数据(也就是,NOP)填充足够的空间,然后添加一点恶意代码或值,那么程序将执行恶意 代码或使用新值。这可能导致许多不同的后果。黑客可能能够越过登录 5 ,获得程序的管理员特权。如果受攻击的程序是由系统管理员启动的,那么恶意代码将作为原始程序的一部分进行执行,给黑客系统中的管理员特权。溢出脆弱点,尽管不总是出现,但在一些情况下,可能很容易被补救,当开发应用程序时利用“安全”库 6 ,使用堆栈保护 7 (也就是,StackGuard 8 )或对输入数据进行检查,从而确保其是适当的大小或类型。这一类的利用总是以类似的方式进行,但会根据受影响的内存类型和预期效果而不同。

缓冲区溢出攻击

在缓冲区溢出攻击的实例中,程序的内部值溢出,从而改变程序的运行方式。 9 在 程序的正常操作过程中,当调用一个函数时,被调用函数的所有参数以及返回位置的指针都放在栈中。当完成该函数之后,使用返回指针回到原来的位置并继续程 序。利用缓冲区溢出进行攻击可以改变这个过程,并且允许黑客执行任何他们期望的函数。 这是通过输入足够的数据来用伪数据覆盖参数,及输入到不同函数的新返回指针来实现的,现在就执行新的函数了。 10

SQL 注入

除 了溢出的利用以外,SQL 注入是另一类依赖于开发人员没测试输入数据的疏漏的攻击。大多数人拥有字母数字式密码,或者有安全意识的人,拥有附带其他键盘符号的字母数字式密码。由于 这种想法,开发人员可能允许输入任何字符作为密码。这通常是没问题的,除非他们忘记清洁或检查输入数据。这种情况比应该的要发生的频繁得多。使用 SQL 数据库的密码系统(在许多网站上非常普遍的场景)可能运行这样的查询:

SELECT * FROM users WHERE 'username' = '$USER' AND 'password'='$PASS';

$USER 和 $PASS 会用用户提供的用户名和密码来代替。那么如果用户输入‘bob’和‘1234’,那么结果的查询是:

SELECT * FROM users WHERE 'username' = 'bob' AND 'password' = '1234';

,而来自数据库的返回值会是所有用 bob 作为用户名且用 1234 作为密码的数据元组。如果黑客输入 admin 和 <<'hi' 或 1=1>>--,那么查询是:

SELECT * FROM users WHERE 'username' = 'admin' and `password` = 'hi' OR 1=1--'

注 意用户输入的引号如何与原始查询中的第三个引号匹配。数据库现在会返回用户名为 admin 的所有元组,并且会取消对密码的检查,因为 'password' = 'hi' OR 1=1 命令数据库寻找密码是 hi 的元组或 1=1 的元组,而由于 1 总是 1,所以每行都是候选。-- 是 SQL 注释标志,取消查询中原始的其他引号,并且还将取消任何额外的检查,因此如果有额外的凭证(也就是,keyfob 11 或 captcha 12 )也会被忽略。现在黑客可以以管理员的身份进入系统并且不用不得不给出合法的密码。通过利用越来越复杂的查询,黑客可以变更、添加,或查询数据。 13 对于数据库,这令黑客具有同应用程序相同的特权。

这 种类型的脆弱点被证实是对 Web 应用程序最有效的攻击类型之一,并且随着对 Web 应用程序的信任的增加,这种利用的力量甚至将更令人畏缩。幸运的消息是,像溢出类型的攻击一样,可以通过清洁输入数据,并且从不立即相信用户输入(至少对 于输入的数据)来防止大部分这种脆弱点。


散列攻击

任何处理在数据库中存储用户凭证的人都会告诉您,首要的规则之一是从不直接存储没有首先加密的密码或其它私有数据。如果数据库暴露了,那么使用加密方案将防止暴露用户的密码。为了更多的利益,利用单向加密算法或散列,像 MD5 14 或 Blowfish, 15 将使密码的解密成为不可能。这是因为散列可以将输入值转化为新的值,而这些新值不能从数学上逆向生成原始值。传统上,攻击以这种方式存储的密码的方式涉及 用尽可能多的不同的密码进行尝试直到最终有效,这被称之为“蛮干”技术。虽然这种类型的攻击十分简单,但通常是无效的,因为需要绝对的时间来尝试足够的组 合,有时候要上千年,统计上是成功的,一般是理论的。

每天您可能都在使用散列攻击工具,而甚至不知道它。Google 真的非常擅长它所做的:在信息之间找到链接。举例来说,Googling “Bob Breznak”将取出所有关于我的信息:我为 The Rational Edge 写的最近的书评,我的个人站点(及废弃的)等等。现在,如果您从这里借鉴一下,那么您将得到快速返回结果的许多想法。应用该想法来寻找散列。举例来说,利 用“foobar”的 MD5 散列:3858f62230ac3c915f300c664312c63f。现在将其输入 Google,瞧!0.21 秒内,第一个结果是“Google Hash: md5(foobar) = 3858f62230ac3c915f300c664312c63f”。您将找到的大部分结果都是哈希索引站点 —— 有意地连接散列值和其相应关键字的站点。尝试更复杂的字符串(举例来说,“bobby”、“crayon”、“rational”)将生成混合的结果。如 果您尝试复杂的密码(或者最好是传递阶段),您可能没有收获。

这可能不是您需要担心的最大安全漏洞,但令其危险的是,这种利用不太知名,并且没有简单的补救办法。随着越来越复杂的关键字被匹配到散列上,匹配到已知密码上的可能性增加了。变更为更复杂的算法,比方说从 MD5 变更为 SHA-2, 16 对恢复秘密的完整性没什么作用。这是因为尽管从不同的散列中获得同一个字符串的返回值,但是将关键字链接到散列上也只是时间的问题。虽然加密法总是将利用时间来蛮干作为安全网,搜索减少所需的时间,从而成功地从几千年到几年,甚至几个月。

现 在,存在着两种主要的争论,它们将散列查找从年度最大的安全缺陷的竞争列表中去掉了。这种类型的攻击只可能在数据库或密码存储已经暴露的情况下进行。需要 读取数据库、影子文件(UNIX 或 LINUX 系统保存用户密码的地方),或 I/O 流。在某些情况下,这可能和达到正确的 URL 或执行 SQL 注入一样简单,而在其他情况下,它可能需要比黑客多得多的工作。减小这种攻击的潜在严重性的另一个争论实际上源于散列的使用。由于许多字符串可以生成相同 的散列,所以不能必然地确定原始的字符串(用户的真实密码)。然而,找到任何散列到相同值得字符串能够再次生成相同的散列值。这意味着尽管黑客可能没有获 得实际的密码,但是由于系统使用存储的散列,而黑客拥有能生成同等散列的字符串,所以系统会像黑客拥有原始密码那样响应。


最终用户问题

即使有了最彻底地测试过的且安全的软件,一旦打包并交给最终用户,全部的赌都输了。软件如何配置和实现,像其他步骤那样扮演者关键的安全性角色。

默认值的谬论

用 户犯的最大错误之一是当所使用的软件没有默认值时。许多软件为各种选项定义默认值,以便用户可以尽可能快地运行。虽然有时候这可能非常有益,像 Web 服务器默认为标准的 Web 服务器通信端口,这也会导致许多安全问题。举例来说,许多路由器和其它网络设备都有默认的登录用户名和密码。当用户不将这些默认值改为独特的值时就会出现 问题。搜索“默认的路由器密码”将得到许多列出市场上大部分路由器的默认用户名和密码的站点。如果黑客打算进入网络,那么还未接触的用户名、密码、IP 地址,和其它默认值都是现成的钥匙。

不可靠的系统

当 最终用户不确定他们添加的软件如何符合系统的其他部分,并且需要采取什么额外的安全量度时,会产生另一个问题。再次拿 Web 搜索举例。搜索“view/index.shtml axis”将返回未保护的网络摄像机的列表。在一些情况下,最终用户成功地设置了他们想让全世界都可见的网络摄像机。在其他情况下,网络摄像机被添加到某 个网络,并且没有配置为不公开。这种未保护的摄像机可以被互联网上的每个人见到,并且可能快速地成为侵犯隐私罪。一些书籍和网站致力于提供返回所有者没犹 豫过安全性并且现在公开了的数据搜索查询。 17

我 们从这些新的搜索中得到一些经验。第一,默认值到处都是,因此当不修改默认值时,考虑如果黑客知道此信息会有多有害。第二,您应该了解如何访问系统的各个 部分并且考虑这种访问级别是否合适。第三,记住通过模糊的安全没有用。不论多么不重要或未公开的信息公开了,如果有人感兴趣,不管通过自动的搜索或一些人 力,都可以找到该数据。 18


结束语

随 着越来越多的脆弱点日益被发现,这些威胁只是沧海一粟 。如同这些实例一样,大部分脆弱点源于疏忽:忽略了实现安全实践的开发人员,或者忽略改变配置的最 终用户。即使我提供的实例可能肤浅,并且似乎十分容易避免,但随着项目的增长,对于简单的未检查的情况就有机会了。黑客可能只需要小小的机会就对系统进行 攻击并且引起永久性的损害。开发人员应该充分了解他们假设的影响,并且越过正常使用之外进行测试。通过充分地了解系统的工作方式,并且假定为对于产品的黑 客角色,开发人员应该定期审查他们的工作,并且在必要时发布补丁。

个人可能说不出软件有多大缺陷,并且虽然没 有那么完全的安全系统,但是人们可以通过利用多层次的安全性将脆弱性最小化。健壮的密码,让软件保持更新及适当地修补,并且当添加了每个软件困扰时了解它 的影响,是最终用户添加保护层的小方法。最后,与软件相关的每个人都有责任关注安全性,并试图减少脆弱点。


注释

  1. http://www.cert.org/stats/vulnerability_remediation.html
  2. http://cve.mitre.org/about/terminology.html#vulnerability
  3. http://poi.apache.org/hslf/ppt-file-format.html
  4. http://www.astalavista.com/index.php?section=exploits&cmd=details&id=4818
  5. http://nsfsecurity.pr.erau.edu/bom/Spock.html
  6. http://www.openbsd.org/cgi-bin/man.cgi?query=strlcpy&sektion=3
  7. http://nsfsecurity.pr.erau.edu/bom/StackGuard.html
  8. http://www.usenix.org/publications/library/proceedings/sec98/full_papers/cowan/cowan_html/cowan.html
  9. http://nsfsecurity.pr.erau.edu/bom/Smasher.html
  10. http://insecure.org/stf/smashstack.html
  11. http://en.wikipedia.org/wiki/SecurID
  12. http://captcha.net/
  13. http://www.youtube.com/watch?v=MJNJjh4jORY
  14. http://userpages.umbc.edu/~mabzug1/cs/md5/md5.html
  15. http://en.wikipedia.org/wiki/Blowfish_(cipher)
  16. http://en.wikipedia.org/wiki/SHA-1
  17. http://www.oreilly.com/catalog/googlehks
  18. http://www.linux.com/articles/23313
关于作者

author photo

Bob Breznak 在马萨诸塞州,伍斯特的伍斯特工业学院研究计算机科学,专攻软件工程和机器人技术。目前,他作为高级助理,受雇于计算机科学系,并且受雇于 Sun Microsystems。在学校里,他频繁参与 Association for Computer Machinery(ACM)、IEEE、和最近刚把他选为主席的计算机科学的荣誉团体(Upsilon Pi Epsilon,或 UPE)。他通常在计算机科学楼的下层地下室中进行从系统安全到机器人技术的项目。

Powered By Blogger