Ⅰ 我想自学windows内核编程以及C语言网络编程(之前完全没接触过),已经掌握C、C++,应该如何入手
《windows核心编程》距离windows内核编程还差得远啦,《windows核心编程》是一本讲述windows应用程序开发的书。你真正需要掌握的是操作系统方面的知识,例如怎么样创建一个线程、创建一个进程、如何遍历文件夹,控制他们的访问权限,内存映射等。
然后开始看操作系统方面的书,比如《操作系统 : 精髓与设计原理(原书第6版) 》,《现代操作系统(原书第3版)》这样有一定理论深度的书,这些理论的书没有代码,但你在看的时候也要想想这些东西是怎么实现的。
有了一定的基础之后,可以开始看内核编程方面的书,例如潘爱民写的《windows内核原理与实现》,再高级一点的看毛德操写的《Windows内核情景分析》,最权威的当然还是《深入解析Windows操作系统》,然后你就可以深入windows内核编程了。不过提醒你就是这3本的难度在《windows核心编程》之上,要花好多年功夫,写好多万行代码,泡好多个论坛看别人的贴子,看很多别人博客,好多别的辅助读物,才能都看懂。楼主要量力而行。
网络编程的话,windows方面我也不知道哪本书好,我真心推荐《UNIX网络编程》(1,2卷)和《UNIX环境高级编程》。
Ⅱ Windows内核编程的简介
内核程序是运行在Ring0级的,因此内核程序要比应用层上的普通Ring3级程序有更高的权限。因此内核编程的应用,往往给传统软件带来更强的功能,实现技术上的飞跃。同理,黑客们也将传统的攻击程序或潜行程序从Ring3搬到了Ring0级去,以便于更隐蔽、更有效的监视或控制目标系统(如Rootkit)。
Ⅲ 怎么学习windows内核编程
C/C++入门->MFC编程->WINDWOS程序设计->WINDWOS核心编程->Windows2000Secrets->WINDOWS驱动开发详解->WINDWOS内核安全编程->从汇编语言到WINDWOS内核编程->ROOTKIT-WINDWOS内核的安全防护
Ⅳ Windows核心编程如何由浅入深学习
要求C++,熟练掌握指针,函数,结构体内容。
Windows API要求英语好,这点很重要,查MSDN必备。
学Windows最先要掌握的知识:句柄,消息,窗口。掌握他的工作方式是必须。
学习路线:掌握基础知识,会查MSDN并能读懂MSDN,看带项目的书籍(这种书的好处就是让你在学会做某一项目的同时,了解一些新的结构跟方法。
推荐书籍:Windows 核心编程。
初级的书我便不推荐了,毕竟每个人的理解程度不同,你可以去书店,找一本基础的东西(一本你可以看的懂的),毕竟这东西是靠MSDN来工作的,多看看MSDN是正经,但是,我奉劝你,不要花时间把工作放在记忆MSDN内的结构和函数上,因为这是不可能记忆的东西,你只需要知道有这个东西的存在,然后在需要的时候,查MSDN使用就可以了,然后就看带有小项目的书籍,进攻核心编程。最后工作,掌握更多的实战经验,许多东西是在这个阶段学来的 。
Ⅳ 关于WINDOWS图形界面程序编程
语言:C#,C+,C++;
工具:Microsoft Visual Studio系列。
C#:读做C-sharp,编程语言是由微软公司的Anders Hejlsberg和 Scott Willamette领导的开发小组专门为.NET平台设计的语言,它可以使程序员移植到.NET上。这种移植对于广大的程序员来说是比较容易的,因为C#从C,C++和Java发展而来,它采用了这三种语言最优秀的特点,并加入了它自己的特性。C#是事件驱动的,完全面向对象的可视化编程语言,我们可以使用集成开发环境来编写C#程序。
Microsoft Visual Studio:简称VS,是美国微软公司的开发工具包系列产品。VS是一个基本完整的开发工具集,它包括了整个软件生命周期中所需要的大部分工具,如UML工具、代码管控工具、集成开发环境(IDE)等等。所写的目标代码适用于微软支持的所有平台,包括Microsoft Windows、Windows Mobile、Windows CE、.NET Framework、.NET Compact Framework和Microsoft Silverlight 及Windows Phone。
Ⅵ 图形编程是什么
图形编程的概念很广,有UI编程,还有游戏编程,游戏编程又分为2D游戏、3D游戏等。有人觉得游戏不是一门艺术,因为受众也是参与者;有人觉得游戏是一门艺术,尤其是一门交互艺术。创造游戏的人和游戏的受众,都在虚拟世界中沉迷。
UI编程也如是,早期PC机上,人们在厌倦了XP风格的界面后,争先恐后的用GDI+技术产出了各种各样的UI风格。这种风格的UI界面不但美观而且安全。
其安全性在于,使用GDI+技术绘制的UI控件,不在Windows系统本身控制范围内,所以任何检测工具都无法检测到其存在,这使得UI入侵的难度变高。
图形与数据:
图形界面编程是在与机器做抗争,而数据编程是在与人做抗争。数据,是人产生的,所以数据编程是对人的编程。人产生的数据千变万化,一套代码无法适应持续波动的数据,但是经过一系列算法,过滤,检测后,最终得出的结果却是十分客观的。
这是一个奇妙的事情,甚至可以上升到哲学层面。对机器编程产生主观结果,对人编程产生客观结果。如果按照这个理论,那么上面那位说自己喜欢“算出东西”的同学,则是一个标准的理科生思维,而喜欢图形编程的同学,则是人文和技术兼备的创作家。
Ⅶ 关于Windows内核编程的问题
其实Windows内核编程不但有用,而且常用。很多我们每天都使用的软件,就毫无疑问的使用了Windows内核编程的技术。最典型的就是实时监控的杀毒软件。此外还有防火墙、虚拟光驱、以及90%的驱动程序。这些程序的有一个共同的特点,他们的一部分组件,是作为Windows的一部分,能对 Windows上运行的所有的应用程序起作用。
因此内核编程的应用,往往给传统软件带来更强的功能,实现技术上的飞跃。
举个例子。我们常常听说,对文件进行加密,可以使文档更加安全。对文件加密并不需要任何内核组件。我们可以写一个应用程序,读入文件,加密数据,然后重写为一个加密文件。解密也可以同样如此。
但是实际上这并不满足一般的用户需求。对一个公司的员工来说,那些“重要的文档”很可能就是每天工作所用的文件。想象一下,他必须要每天从服务器上下载加密的文件,然后用解密工具解密。然后用Office开始工作。工作完毕后,用加密工具加密,再上传,然后删除工作文档。且不说大部分时间文档是以解密的方式保存在硬盘上的不安全性,这个工作流程是可以接受的吗?没有人会接受的。
比较“人性化”的方式就是让Office可以直接打开已经加密的文档。保存的时候,直接就保存成加密的文档。硬盘上,这个文档始终是加密的。而且对合法的用户透明。对非法的用户,则只能看见密文,从而无法编辑也无法阅读。而且也不仅仅Office,还有AutoCAD、Visual Studio、Photoshop等等用户可能用于编辑机密文件的所有的工具。这是可以实现的吗?如果我们不能去修改Office和其他的工作软件。
这当然是可以实现的。既然我们编写Windows内核程序,当然可以让Windows的文件系统从硬盘读取文件的时候,对特定的进程进行特别的解密。等这些软件读取到数据的时候,它们读到的已经是正常的数据了。这个过程和实时扫描病毒的原理是一样的,使用一个文件过滤驱动程序。这就是读者可能已经听到过的文件透明加密技术。
在和《天书夜读:从汇编语言到Windows内核编程》一书同一系列的《寒江独钓——Windows内核编程与信息安全》(预计明年出版)中,对键盘过滤、硬盘过滤、文件过滤、网络过滤等安全相关的内核编程,都有详尽的讲解和例子。
内核编程的另一个特点是:这些代码运行在R0级。R0级别是最高特权级别。对CPU有完全控制的能力。这非常的适合一些安全软件,当然也适合做破坏的工作。因为内核程序有最高(也就是根)权限,这样的技术在安全领域(或者破坏领域)被称为rootkit技术。rootkit技术是当前安全领域最热门的技术之一。
许多病毒使用了rootkit技术。用来隐藏病毒文件,窃取密码、发送攻击包等等。rootkit病毒感染后极难清除,在感染前提前防范是最有效的办法。
Windows内核确实没有公开源代码。但是MS提供Windows内核程序的开发包:WDK。WDK实际上主要用于开发驱动程序。而驱动程序基本上都是内核程序。WDK提供的头文件以及部分源代码,实际上就是Windows内核的代码的一部分。有部分驱动程序(比如FAT32文件系统)的代码是完全公开的。我们也可以在这里看到Windows内核开发者的代码风格。同时,微软也提供了所有Windows版本的符号表在网上供研究者下载。并提供了功能无比强大的调试器WinDbg。有了它们,你就可以轻松的调试Windows内核了。无论是你自己写的代码的部分,还是Windows内核开发者们编写的部分。虽然看到的是汇编语言,但是函数名和全局变量名都是存在的。而且,所有的这些(WDK、WinDBG,符号表)都是免费的。