程序设计综合
-
水晶报表Crystal Reports 9从入门到精通(美)Cate McCoy,(美)Gord Maric著;冯华英等译;冯华英译译Crystal Reports是加拿大Crystal Decisions公司出品的专业级报表分析与生成软件,在全球已经拥有超过1100万用户。本书主要讲述Crystal Decisions公司于2002年最新推出的Crystal Reports 9。全书从解决问题的角度详细讲解了Crystal Reports 9的安装过程与使用方法。此外,本书还介绍了Crystal Enterprise和Report Application Server。全书共分五个部分:报表编写基础、使报表元素生效、高级报表、水晶报表应用程序开发及企业报表。书中各章节的设置力求使用读者从一个水晶报表初学者迅速成长为水晶报表专家。书中各章节既互相联系,又自成体系。如何读者已经掌握了某一部分的内容,可以直接跳过这一部分,进入下一部分的学习。本书适合水晶报表的新用户使用,也适合由Crystal Reports以前版本升级到Crystal Reports 9的用户使用。 -
Visual FoxPro系统开发教程文振焜,张基宏编著本书针对初学者而编写,力求深入浅出,强调基础,强调章节知识的连贯性和学习内容的完整性。全书有二百多个例题和14个开发实例。通过大量的例题讲解,简化了抽象的学习内容,加深了学习内容的理解和认识,通过有趣实用的开发实例,演示了Visual FoxPro 6.0应用系统开发的全过程,提高了读者快速掌握系统开发的能力。本书充分利用Visual FoxPro的面向对象设计特性,在介绍Visual FoxPro基本概念后立即进入项目管理器开发环境,通过项目管理器首先介绍数据库、数据表和视图,其次介绍表单、报表、主文件和菜单的开发,最后介绍系统的发布和安装,内容的重点是表单开发。本书通过例题介绍了大量的命令、函数、属性、事件和方法,也介绍了程序开发基础,同时还打破了一般的惯例,把这些抽象枯燥的学习内容穿插在相应的开发过程之中进行全面讲解,提高了读者的学习兴趣,减少了读者的学习压力。本书l~8章都配有习题,并配有学习光盘。本书十分适合作为大专院校的教材,也适合作为自学者的指导书及开发人员的参考书。 -
学习GNU EmacsDebra Cameron,Bill Rosenblatt,Hric Raymond;杨涛译学习GNU Emacs GNU Emacs是Emacs编辑器家族中最受欢迎、传播范围最广、也是最强大和最灵活的UNIX文本编辑器。与其他文本编辑器的重要区别在于它是一个完备的工作环境,使用Emacs可以完成各种日常工作。本书循序渐进地讲述Emacs的入门知识,随着本书的深入,读者的Emacs使用水平将从初级(只会进行简单的文字编辑)提高到足以完成相当复杂的定制和程序设计任务的阶段。 本书对Emacs 19.30中的新增功能做了全面的介绍,内容涉及字体和颜色、下拉菜单、卷屏条、增强的x窗口系统支持,以及对大多数标准按键进行正确的绑定。此外,书中还对Emacs自带的新闻阅读器程序Gnus和文件传输协议的透明接口ange-ftp模式进行了介绍。 本书内容包括: ·把Emacs当做一个因特网工具箱来使用 ·Emacs丰富而又全面的在线帮助功能 ·如何使用Emacs来编辑文件 ·把Emacs当做一种“shell环境”来使用 ·如何利用Emacs内建的排版功能 ·如何使用多个编辑缓冲区、多个Emacs窗口、多个x窗口 ·对Emacs进行定制 ·Emacs到X窗口系统的接口 ·用宏来完成重复性工作的理由和方法 ·作为程序设计环境的Emacs EmacsLISP程序设计入门 ·如何获得Emacs 书后所附的速查卡列出了书中介绍的全部命令。 -
加密与解密段钢编著前言自计算机诞生之日起,其技术的发展可谓日新月异,各种新技术、新思路不断涌现。个人计算机操作系统也经历了DOS,Windows3.x,Windows9x,Windows2000及WindowsXP的历程。各种应用软件从最初的几个、几十个字节发展到现在的动辄几张光盘,成千上万的共享软件和商业软件越来越庞大,技术内涵也日趋复杂。一款优秀的软件,其技术秘密往往成为他人窃取的重点。作为软件开发人员,为了保护自己辛辛苦苦开发的软件不轻易被他人“借鉴”,有必要对软件保护(加密)和破解(解密)技术进行研究。但是,软件保护和破解方面的资料目前比较匮乏,许多软件开发人员不得不自行摸索,导致在重复劳动中走了不少弯路,耗费了大量的时间和精力。随着软件以共享方式在网络上发布这种方式的流行,软件保护和数据加密技术的迫切性被越来越突出地表现了出来。软件加解密的发展历史我们通常是随着操作系统的不断升级来划分相应的软件,所以划分软件加解密的发展历史就是操作系统发展的历史。1.DOS时期这个时代的软件主要是正式版和功能不全的Demo版以及一些磁盘防拷贝保护,很少有所谓的共享软件(Shareware)。所以DOS时代所谓的解密通常是去掉软件中的某些限制或跳过原版磁盘检查,然后通过广大业余的BBS提供下载。但值得一提的是,这个时代的软件由于16位操作系统很容易接触到系统底层的原因,而导致个别软件保护方式异常强悍,又因为在16位平台上很难区分系统领空和程序领空而导致天然的破解跟踪困难,所以这个时代的软件保护机制两极分化很严重。2.Windows95早期当Windows95出现的时候,很多人不适应这个平台,它上面的加解密资料奇缺,对许多人来说就像做了一场恶梦。这段时期共享软件渐渐地盛行起来,采用序列号保护的共享软件越来越多。由于当时许多程序员对刚刚出现的Windows95不了解,感觉有些手足无措,编制的软件在加密部分都比较脆弱,所以那时候的序列号加密方案特别脆弱。3.Windows95末期其实这段时期应该是Windows95和Windows98共存的时期。在这个时期,程序员已经对Windows9x这个系统了如指掌,一些需要较高编程技巧、与系统核心等底层联系紧密的软件纷纷出笼。这个时期,共享软件大多还是采用序列号加密方式,但其序列号通常经过复杂的计算,所以很难像早期的软件一样,随随便便就能被解密。4.Windows2000/XP时期这段时期就是Windows9x和Windows2000/XP共存的时期。这时,各种软件的加密外壳泛滥,特别是各种专用加壳软件的出现,大大地提高了软件的保护质量;同时,解密技术也不断提高,各种新式的解密工具随即出现。此时的序列号加密越来越多地采用密码学中不可逆的加密算法,使得解密的过程越来越像高等数学的研究。软件解密者要想得到正确的序列号就必须对各种成熟加密算法有很深的了解,或者找出软件加密算法的漏洞(像WinRAR。CloneCD等软件的Keygen就是利用ECC椭圆算法的加密漏洞而编制出来的)。关于本书2000年初,作者想找一些研究加解密的朋友交流一下,但十分令人遗憾的是,那时国内这方面的技术资料很缺乏,不成系统,大家交流的也有限,因此就建了一个主页“看雪学院”,与大家共同探讨加密与解密的知识。这个主页是当时国内惟一一个从技术角度研究加解密的站点,并在广大网友的支持下,健康地成长了起来了。后来,主页提供的软件调试论坛成了国内知名的加解密技术论坛,吸引了密界众多高手。大家以知识共享的精神,无私地将自己所知的技术奉献出来了,至今为止原创了2500余篇文章,极大地推动了国内加解密技术的发展。这是一本很难写的书,因为当时这是一个全新的领域。从Windows95面世以来的6年内,市面上没有一本这方面的书,网上也很缺乏相关资料。为了填补国内Windows平台上加密与解密书籍的空白,作者与软件调试论坛的密界一流好手努力合作,克服种种困难,于2001年9月推出了国内第一本全面介绍Windows平台下软件加密与解密技术的书籍,这就是本书的第一版《加密与解密:软件保护技术及完全解决方案》。在第一版中,我们试图从软件加密和解密这两个方面对当今流行的软件保护技术进行了分析。希望读者看过本书之后,能够对各种流行的软件保护与破解技术有所了解。第一版一面世就得到了广大读者的喜爱和认可,获得了2002年全国优秀畅销书奖(科技类)!在全国很多计算机专业书店获得了名利前茅的销售业绩,而且一年来在著名的华储网销售排行中都被排在前几名内。次年,本书在台湾发行了繁体版,得到了台湾读者的热烈欢迎。为了跟上技术发展的步伐,作者花费了6个月时间做准备,6个月时间进行写作,汇集了国内顶尖软件调试论坛(看雪论坛)的众多密界一流好手,以本书第一版为基础,更新了第一版的大部分内容,最后完成了本书的第二版《加密与解密》。这本500多页的图书,几乎囊括了Windows下软件保护的绝大多数内容,从基本的跟踪调试到深层的拆解脱壳、从浅显的分析注册到商用的软件保护,其跨度之广、内容之深,国内至今尚无同类出版物能与之比肩。内容导读第二版是在一版基础上写成的,删除了第一版中的过时内容,补充了许多新技术。全书有一半的内容与第一版不同,结构更加合理。补充和加强了Windows与Unicode、代码逆向分析、IDA详细操作、SoftICE符号调试技术、OllDbg操作、密码学算法应用、VB的Pcode跟踪、增加PE文件的功能、SEH技术、脱壳技术等。什么是API?什么是Unicode?什么是逆向分析?Winodws9x与Windows2000/XP上的加解密究竟有什么不同?只有了解这些基础知识,在加密与解密过程中才能有的放矢地处理各种问题。本书的基础篇(第1章"基础知识"和第2章"代码分析技术")将系统地解答这些问题。在进行软件解密的过程中,一个首要问题是对被解密的软件进行分析,这部分就是静态分析与动态分析技术。本书以极大的篇幅讲述了这两种分析技巧,包括逆向工程必备工具IDA的详细操作,最新SoftICE和OllyDbg的操作等。这些内容可以在第3章"静态分析技术"与第4章"动态分析技术"中找到。一些软件作者对软件保护方案的策划与实施很不以为然,他们往往自以为保护在解密者眼中不堪一击。希望本部分能让这些软件作者了解一些软件攻击的方法,以便更好地保护自己的作品。在这个年代,研究加解密不掌握点密码学的知识是不可思意的。第二版详细讲解了MD5,SHA,CRC,RSA,ElGamal等算法在软件保护方面的应用,并且光盘上提供了实例的源码!这些内容可以在第5章"软件保护及其弱点"与第6章"加密算法"中找到。现在所使用的语言无非是两种:一种是解释执行的语言,另一种就是编译后才能够执行的语言。解释语言的最大弱点之一就是能被反编译,因此其保护的重点应放在如何防止反编译上。这些内容可以在第7章"反编译语言"中找到。PE是Windows上可执行文件的格式,熟知PE文件将有助于对操作系统的深刻理解。如果你知道EXE和DLL里面的奥秘,就成为一名知识更加渊博的程序员。本书用大量篇幅,图文并貌地详细讲解了PE格式(第8章"PE文件格式")。在掌握PE格式后,就可随心所意地对PE文件做"手术",进行二次开发,如增加菜单、按钮等功能。这部分将带你走进另一个计算机的世界里去(第9章"增加PE文件功能")。SEH的出现已非一日,但有关SEH的知识资料却不是很多。SEH不仅可以简化程序的错误处理,使程序更加健壮,还被广泛应用于反跟踪和加密中。本书从解密角度讲述了SEH的机理,同时讲述了其他各种反跟踪技术,如Anti-Debug、花指令等。软件作者可以将这些技术应用到自己的软件中去,以加强软件的反跟踪能力(第10章"反跟踪技术")。现在,越来越多的软件都采用了加壳保护。当在软件分析和汉化过程中,脱壳是必不可少的一步。第11章"加壳与脱壳"详细介绍了各种壳的脱壳技巧,读者可以在自己的软件中运用这些壳中的先进反跟踪技术。第12章"补丁技术"介绍了文件补丁和内存补丁技术,同时重点讲解了SMC技术在补丁方面的应用。学习补丁是一件很有意思的事情。商用软件保护技术实际就是对商业软件加密的技术,真正有价值的商业软件一般都会采用这些技术来保护。第13章"商用软件保护技术"讲解了常见的商业保护技术,如软件狗,Vbox,SalesAgent,Flexlm等保护,而且对这些保护的优缺点进行了分析。对读者的要求本书适合以下读者。对软件加密与解密感兴趣的读者对软件保护感兴趣的软件开发人员对逆向工程感兴趣的读者对调试技术感兴趣的读者使用本书需要具备以下知识。汇编基础知识。此类书籍市面上很多,如《IBMPC汇编语言程序设计》等。应了解C语言。了解C语言的某些知识是有帮助的,但不是必须了解。Win32编程。不管研究加密与解密,还是编程,都必须了解Win32编程。Win32编程就是API方式的Windows程序设计,学习WindowsAPI能使您更深入地了解Windows工作方式。此类书籍有CharlesPetzold所著的《Windows程序设计》,该书堪称经典之作,它以C语言为讲解平台。另一本书是罗云彬所编著的《Windows环境下32位汇编语言程序设计》,它以Win32汇编为讲解平台。到此为止,作者将不再假设您已经具有任何加解密的经验了。致谢感谢我的母校同济大学,她的"同舟共济、自强不息"的同济精神一直指导着我的工作和学习!感谢电子工业出版社计算机事业部对本书的大力支持!同时也要感谢那些共同参与第一版组稿的软件调试论坛的众多密界一流好手,是他们的参与才让此书得以完成。这次的第二版改动较大,参考引用了如下朋友在第一版中参与的文章:1.Blowfish(http://www.shieldsoftware.com/)参与的"软件保护技术"、"Anti-Debug"、"JAVA程序反编译";2.DREAMtHEATE参与的"Windows消息机制";3.DDXia[CCG]参与的"远程调试技术","补丁技术";4.Passion参与的"FileMon的使用"、"TimeLOCK保护";5.Ljtt参与的"花指令";6.Arbiter参与的"FrogsICE使用简介"、"CRC原理篇";7.Ajj(http://ajj.126.com/)参与的"IceDump和NticeDump的使用";8.Fisheep(fisheep@sohu.com)参与的"VBOX4.3"、"SalesAgent保护技术"、"FlexGen工具用法"、"利用FlexLmSDK解密"、"浮点指令小结";9.吴朝相(http://www.souxin.com/)参与的"常用断点设置技巧"及"认识壳";10.mr.wei参与的"DeDe用法";11.邹丹(http://www.zoudan.com)的论文"关于Windows95下的可执行文件的加密研究";12.TiANWEi(http://winice.yeah.net)参与的"SoftICE指令手册"。在第二版的编写过程中特别感谢:1.Hume(http://humeasm.yeah.net/)提供的"指令优化一文";2.老罗的缤纷天地(http://www.luocong.com/)提供的"CRC32实践篇"与"奇妙的Base64编码"两篇文章及实例;3.夜月提供"Blowfish算法解密"一文;4.娃娃(王凌迪)参与的"MD5算法"资料;5.Blowfish的"ReVirgin使用指南","挫败隐藏在SEHhandler中的保护"。同时也要感谢SunBird,Hying,Spring,pll621,Ajj,小楼,Ljtt,Arbiter,Aming,Cooljiang,洋白菜,WinDos2K,小牧童等软件调试论坛的众多朋友的支持和帮助!论坛网友的一言一行都已融进了本书的文字里,实在无法一一列举。特别感谢CCG团体给与的技术支持!关于配套光盘本书所有实例及源码均在配套光盘里提供,大部分实例是使用MicrosoftVisualC++6.0开发和测试的。由于版权问题,配套光盘仅提供书中提到的免费软件或共享软件。如果从学习角度需要使用那些有版权的软件,建议用搜索引擎查找(如www.google.com)。光盘提供的软件经过多方面检查测试,绝无病毒。但一些加解密工具采用了某些病毒技术,因此部分代码与某些病毒的特征码类似,会造成查毒软件的误报。请勿将光盘的文件做成虚拟光驱,并跟踪调试虚拟光驱上的实例,以免出现一些无法解释的错误。建议将文件拷贝到硬盘,并去除只读属性再调试。反馈信息我们非常希望能够了解读者对本书的看法。如果有什么问题或有自己的调试实战故事,欢迎发到作者主页的论坛里,我乐意回答朋友们提出的任何合理的问题,因为当我努力回答这些问题时,也会从中获益匪浅。 -
数字逻辑与计算机设计基础刘真,蔡懿慈,毕才术编著《数字逻辑与计算机设计基础》以一个计算机硬件系统的设计为主线,先介绍数字电路设计的基本知识,然后使用这些知识和计算机结构的基本知识设计一个简单的计算机,最后利用已有的芯片设计完成一个较完整的计算机硬件系统。全书共9章,分别为:数制及编码、组合逻辑电路、时序逻辑电路、计算机设计引论、总线、存储器、简易计算机设计、基于微处理器的计算机设计、接口与通信等,并用附录的形式介绍了8086微机原理及接口实验系统和8086指令系统的内容。《数字逻辑与计算机设计基础》包含了数字逻辑、计算机原理和微机原理等三门课程的必备知识,并有机地结合在一起,适合计算机软件专业、非计算机专业的本科生和各类专科生作为教材或自学教材使用。 -
重构(美)Martin Fowler著随着对象技术应用越来越普及,软件开发社区出现了一个新的问题。缺乏经验的开发者编写出了大批设计较差的程序,导致这些应用程序非常低效,且难于维护和扩展。本书除了讨论重构的各种技巧之外,还提供了超过70个可行重构的详细编目,对如何应用它们给出了有用的提示;并以stepbystep的形式给出了应用每一种重构的指南;而且用实例展示了重构的工作原理。这些示例都是用Java语言写成的,但其中的思想却可以运用于任何面向对象编程语言。本书是软件工程领域的超级经典巨著,与另一巨著《设计模式》并称"软工双雄",全美销量超过100000册,亚马逊书店五星书。在本书中,作者MartinFowler充分展示了何处可能需要重构,以及如何将不好的设计改造为良好的设计。重构的每一步可能都非常简单、非常基础,但这些轻微的改变的累积效果却可以在极大程度上改进我们的设计。事实证明,重构是防止软件没落的可行方式。本书除了讨论重构的各种技巧之外,还提供了超过70个可行重构的详细目录,给出了重构的工作原理,并以stepbystep的形式给出了应用每一种重构的指南。这些示例都是用Java语言写成的,但其中的思想却可以运用到任何面对象的编程语言中。第一作者MartinFowler,除了是对象技术方面的专家外,还是UML和模式方面的专家。他撰写的AnalysisPatterns、UMLDistilled、PatternsofEnterpriseApplicationArchitecture和PlanningExtremeProgramming几本书也广受赞誉,在亚马逊上的评价也极高(最低星级为4星),从这些也足可见其在业内的显赫地位。相信这本书以影印版的形式在国内推出,巨匠巨著,原汁原味,无疑是给国内广大软件开发人员提供了一盏前进路上的明灯。读者对象:软件开发人员,项目管理人员,高等院校计算机及相关专业师生,其他相关人员 -
面向对象软件开发教程(加)Scott W.Ambler著;车皓阳,刘锐译;车皓阳译本书是一本优秀的面向对象技术的基础教程,深受全世界专业人士和学生的广泛好评。作者以一种通俗易懂的方式清晰地解释了面向对象的基本概念,使用UML技术介绍了面向对象的需求、分析和设计方法。全书共分11章,每章专注于一个主题,包括需求收集、需求确认、00分析、00设计、00编程、00测试、软件过程等。每章最后都配有复习题,有助于读者自己测试对所学内容的掌握程序。本书作为00入门读物,可用作高校面向对象技术的教材,也广泛适用于00程序员、业务分析员、用户、项目经理、系统设计员等广大读者。 -
Visual FoxPro 6.0程序设计学与用教程王可歆编著本书以Visual FoxPro 6.0为背景,介绍了关系数据库管理系统的基础理论、Visual FoxPro6.0语言基础、 Visual FoxPro 6.0数据库及其操作、查询和视图、结构化查询语言SQL、结构化程序设计、面向对象程序设计、表单设计与应用、报表设计与应用、菜单设计与应用。为了使读者能更好地了解Visual FoxPro 6.0的应用,特制作了15个典型例子供读者参考。书中配有丰富的例题、习题,并附有解答,以更适合读者的需要。本书适用于初学者入门,也可供中级读者编程时参考使用,同时可作为大中专院校、各类计算机培训班的教材和自学者的学习资料。 -
Tuxedo中间件开发与配置徐春金编著在电信、金融等行业的大型计算机应用系统中,中间件的使用日益普及,中间件已与操作系统、数据库并列为三大基础软件。BEA Tuxedo作为最优秀的交易中间件,在很多行业中的使用非常广泛,本书结合作者多年使用Tuxedo的经验,通过大量例子详细介绍Tuxedo的设计、开发、配置、管理等方面的内容。使读者可以快速、全面的掌握Tuxedo。本书的主要内容如下:Tuxedo的安装和配置、Tuxedo应用系统的管理维护、Tuxedo的缓冲区介绍、Tuxedo的服务端编程、Tuxedo的客户端编程、Tuxedo的通讯方式、Tuxedo的数据库编程、Tuxedo的可靠消息队列/Q、Tuxedo与其他系统的互连和Tuxedo的性能调整。本书既适合初学者学习,也可作为有一定使用经验的开发管理人员的参考书。 -
大规模基于构件的软件开发(美)Alan W.Brown著;赵文耘,张志等译随着Internet时代的到来,计算机界面临着一系列的变化,这些变化使得传统的软件开发方法不能满足商业界对于软件的需求,软件业面临着越来越大的压力。本书针对这个背景,提出了大规模基于构件的软件开发方法。其主要内容包括:应用程序开发所面临的挑战,基于构件的开发方法学相关技术和标准,面向构件建模的方法,以及对未来发展方向的展望。本书作者对计算机界的历史、现状和未来发展趋势的见解十分深刻,把基于构件的开发方法的理论与实践很好地结合在一起。本书适合IT相关管理与技术人员以及大学计算机及相关专业的本科生、研究生阅读。这本权威性的著作由世界顶尖软件公司的研发领导人撰写,针对以Internet为中心的、基于构件的开发提出了完整的概念性框架。AlanW.Brown介绍了企业级开发技术中的一种“最佳实践”,这些技术可以减少开发时间、提高质量,并提高复用水平。他深入探讨了如何使用EnterpriseJavaBeansTM、COM+和CORBA/IIOP这样的技术以更低的成本,更好的灵活性、响应度、用户友好性进行分布式访问。本书内容包括:针对电子商务进行开发:业务驱动因素和技术支持中间件、应用服务器和企业应用集成的角色选择技术、定义架构、为应用程序建模以及管理基于构件的项目基于构件开发领域的新方向:把先进的研发成果转化为现实世界的企业级解决方案本书为管理推动电子商务的Web技术和构件技术提供了一幅完整的蓝图。对于每一个与以Internet为中心的多层企业级系统相关的决策制定者来说,这都是宝贵的资源。
