计算机世界的黑客帝国

dawndu 2005-03-29 11:07:27
相信喜欢看黑客帝国的程序员不少,在黑客帝国中,现实世界是如此的可怕,人都是泡在“羊水”中的生物电池,为超级电脑供电。现实世界没有阳光,不见天日,是一个人间地狱。而人的意识都活在虚拟世界中,人的诸多活动都是和超级电脑交流的结果。相对来讲,虚拟的世界可以说完美得多,人可以得到很多得满足。
当java还活在服务器端的时候,这个虚拟平台还不为人了解,现在个人计算机越来越快,终于迎来了.Net,看来计算机语言开始全面进入黑客帝国时代。
好事,还是坏事?c++等原生语言将向何处去?生存或死亡,这是个问题。
对于虚拟平台,我想学过编译原理的人应该都想过,因为一般教编译的基本方法都是那个小语言,教我们编译成一种虚拟汇编码,然后执行之。既然我们都想过,那些大师们,可能早在第一个编译器出来的时候就想过,为什么现在才实现?可见,一个虚拟平台要解决的问题并不仅仅是这些。
我想喜欢使用原生语言的程序员,对虚拟平台一定是深恶痛绝的。一如,当时汇编程序员对c,c社区对c++的看法。用惯了指针,习惯自己控制内存,你让我看不到指针了,把内存交给虚拟平台管理,而我,这个系统的God,在虚拟平台上看到的都是“假”的东西,都是别人写好的东西,我能放心吗?能甘心吗?再说了,这个效率行不行啊?大家都有这样的疑问。可是,在这个计算机系统上,“真”的东西又有多少呢?当操作系统出来后,很多的东西都不太真实了,内存,有虚拟的,打开文件也要调系统的函数,这些在unix上还底层一点,在windows上则全部被API给封装了。可以说现代操作系统已经是封装的很厉害的了,就想电影《楚门的世界》中的世界,那的确是真实的,但是却是个人造的摄影棚。其实,我们就活在这个“摄影棚”中间。这些封装带来了很多的好处。而虚拟平台,好处就更多了。
其一,对于组件的开发,虚拟平台是一个彻底的解决,用c++写Corba和COM是件比较难的事。Corba和COM的思想都很好。拿COM来说,这种写组件的方式相当奏效,前提是要有好用的开发库。因为,COM实际上在二进制上给c++等原生语言来了一个约束,所以,你就不得不保证AddRef,Release,QueryInterface是头3个,你不得不定死你函数的调用方式,还有引用计数等等。谁要是不用mfc,atl,vcl这些自己写看看,真是一个难字了得。而对于虚拟平台,这些都可以提供first class的支持,你可以不用关心这些了。在加上工具,库什么的,就更方便了。其二,分布式能力,这是这些虚拟平台要解决的要点之一。而我们的c程序员,恐怕还要socket一下吧。java的表现就很能说明这些问题了。其三,移植能力。想我从32位平台移植一个充满了左移右移的程序到64位unix上去的那件事,我就做恶梦。而看别人java程序员,真是羡慕得不得了。.Net要做移植的话,只要微软愿意做,肯定是没有问题的,因为虚拟平台是对物理机器的抽象,这个对别的物理平台都是一样的。
就说上面3点吧,什么内存泄漏等,都不说了。已经是一个很完美的世界了。记得有个数据库方面的教授写过他接触过的项目,他发现这些项目很少成功。最后原因是,一个搞计算机的(开发方)很难对一个具体业务的东西有兴趣,而且也很难做到精通。而一个对业务很熟悉的人(用户),对计算机也不感冒。而他看到的一个比较成功的项目是这样的,一帮学计算机的提供基本的库,封装基本的操作,而精通的业务的,包括他们用户计算机中心的人,用这些库来搭建应用程序。最后这个项目很成功,也调动了用户的积极性,得到了很好的效果。我想虚拟平台以后的应用模式可能就是这样的。微软这样的大公司提供虚拟平台,其他软件公司偏计算机人员的在上面开发组件,而比较偏业务的搭建应用平台。对于偏应用的人员来说,他们的计算机技术就不需要那么深入了,而虚拟平台就是把这些技术难度降到最低。而偏计算机的人员可能就对这个虚拟平台非常了解,可以解决很多计算机方面的问题。
看来计算机世界中的黑客帝国是大势所趋。而.Net,java并不是一飘而过的浮躁的风潮。据马克思他老人家的说法是,生产力是推动社会发展的主要因素。而虚拟平台的出现极大的发展了生产力。对于与这个潮流为敌的以前事物,用央市《挑战主持人》中那经典的句话来说就是:“尽管你委屈或者不服,但是,你,被淘汰了”
要是这样,那我,就完蛋了。因为,我是一个c++原教诣主义者。
从历史来看,汇编到c,c到c++,这些都是通用的技术。而现在的虚拟平台都掌握在少数厂商,这是极度不正常的。同时,完美世界并不完美。比如做游戏,做底层的事情,这些平台都靠边站。因为计算机速度的发展,这些平台(希望是独立于厂商)也许在越来越多的方面占据市场份额,但是终久是一个应用平台。如果是一个独立软件厂商,就一定不能跟风,如果是一个国家,就更不能跟风了。
如果你是做应用的,不关注.Net,java,后果是惨的。如果是做底层的东西,而且要有自己的东西,是理所当然的选择原生语言的。
就像黑客帝国中,也许生活在虚拟世界母体中的人好像很幸福,可是他们由别人摆布,自由是有限度的。而Neo他们,也许在一个不见天日的现实中生活,可是他们是自由的,他们可以自己制造自己的母体,供自己训练和游戏。而在母体中他们的力量比一般人更强。这正如一个精通c++,COM的人在.Net的世界里比普通的.Net程序员要更强一样。
领悟了c++,Object Pascal,OOP等精髓的人永远是虚拟平台中的救世主那样的人,The One!
...全文
254 3 打赏 收藏 转发到动态 举报
写回复
用AI写文章
3 条回复
切换为时间正序
请发表友善的回复…
发表回复
Mr-Chen 2005-03-30
  • 打赏
  • 举报
回复
JAVA和.net的确不错,我们必须承认事实
lake_wave 2005-03-30
  • 打赏
  • 举报
回复
l love c++ too.
月吻长河 2005-03-29
  • 打赏
  • 举报
回复
文笔不错
对未来人工智能的畅想500字全文共1页,当前为第1页。对未来人工智能的畅想500字全文共1页,当前为第1页。人工智能的发展及未来畅想 对未来人工智能的畅想500字全文共1页,当前为第1页。 对未来人工智能的畅想500字全文共1页,当前为第1页。 最近看了电影《黑客帝国》系列,对其中的科幻生活有了很大的兴趣,不觉有了疑问:现在的世界是否会如电影中一样呢?人工智能的神话是否会发生在当前社会中的呢? 在黑客帝国世界里,程序员成为了耶稣,控制着整个世界黑客帝国之所以成为经典,我认为,不是因为飞来飞去的超级人物,而是因为其暗自揭示了一个人与计算机世界的关系,一个发展趋势。谁知道200年以后会不会是智能机器统治了世界? 人类正向信息化的时代迈进,信息化是当前时代的主旋律。信息抽象结晶为知识,知识构成智能的基础。因此,信息化到知识化再到智能化,必将成为人类社会发展的趋势。人工智能已经并且广泛而有深入的结合到科学技术的各门学科和社会的各个领域中,她的概念,方法和技术正在各行各业广泛渗透。 智能是一个宽泛的概念。智能是人类具有的特征之一。然而,对于什么是人类智能(或者说智力),科学界至今还没有给出令人满意的定义。有人从生物学角度定义为"中枢神经系统的功能",有人从心理学角度定义为"进行抽象思维的能力",甚至有人同义反复地把它定义为"获得能力的能力",或者不求甚解地说它"就是智力测验所测量的那种东西"。这些都不能准确的说明人工智能的确切内涵。 虽然难于下定义,但人工智能的发展已经是当前信息化社会的迫切要求,同时研究人工智能也对探索人类自身智能的奥秘提供有益的帮助。所以每一次人工智能技术的进步都将带动计算机科学的大跨步前进。如果将现有的计算机技术、人工智能技术及自然科学的某些相关领域结合,并有一定的理论实践依据,计算机将拥有一个新的发展方向。 当前人工智能的发展方向可以分为两种:一种受控于人类的智能机器或智能程序,人类输入指令后让其达到预期的目的;另一类,能自主推理、逻辑、判断、学习、进步的智能,而后一种而有吸引力,更增加了人工智能无穷的魅力。 人工智能是研究使计算机来模拟人的某些思维过程和智能行为(如学习、推理、思考、规划等)的学科,主要包括计算机实现智能的原理、制造类似于人脑智能的计算机,使计算机能实现更高层次的应用。人工智能涉及到计算机科学、心理学、哲学和语言学等学科。可以说几乎是自然科学和社会科学的所有学科,其范围已远远超出了计算机科学的范畴,在不断的接近。她并不像很多人想象的是几个科学家的工作,而是随着社会各学科发展而默默发展的。在智能领域里,最关键的问题之一,就是机器学习的问题。一旦机器有了学习的能力,谁还(敢)预测未来呢? 人类的社会发展其实也是在不断积累中发展而来,人的智能也就是事实依据库+推理机制所构成了的。当所有领域的定律都能用特定的公式推理出来,黑客帝国的实现就要到来了。 研究人工智能的目的,一方面是要创造出具有智能的机器,另一方面是要弄清人类智能的本质,因此,人工智能既属于工程的范畴,又属于科学的范畴。通过研究和开发人工智能,可以辅助,部分替代甚至拓宽人类的智能,使计算机更好的造福人类。 对未来人工智能的畅想500字
作者: (俄)Kris Kaspersky(克里斯.卡巴斯基) 译者: 谭明金[同译者作品] 丛书名: 安全技术大系 出版社:电子工业出版社 ISBN:9787121106279 上架时间:2010-6-12 出版日期:2010 年6月 开本:16开 页码:1 版次:2-1 所属分类: 计算机 > 软件与程序设计 > 汇编语言/编译原理 > 汇编语言程序设计 编辑推荐 俄罗斯著名的安全技术专家Kris Kaspersky力作 横跨Windows和UNIX两大主流操作系统 全面介绍多种调试工具和方法 目录回到顶部↑第一篇 黑客工具介绍 第1章 携黑客工具启程 2 1.1 调试器 2 1.2 反汇编器 6 1.3 反编译器 8 1.4 十六进制编辑器 10 1.5 解包器(Unpacker) 12 1.6 转储器 13 1.7 资源编辑器 14 1.8 窥测器(Spy) 14 1.9 监视器(Monitor) 15 1.10 修正器 17 1.11 受保护光盘复制器 17 第2章 UNIX黑客工具 18 2.1 调试器 18 2.2 反汇编器 21 2.3 窥测器 22 2.4 十六进制编辑器 23 2.5 转储器 24 2.6 自动保护工具 24 .第3章 调试器与仿真器的仿真 25 3.1 仿真器概述 25 3.2 历史概况 25 3.2.1 仿真器的应用范围 27 3.2.2 硬件虚拟 31 3.3 流行的仿真器 32 3.3.1 DOSBox 32 3.3.2 Bochs 34 3.3.3 VMware 35 3.3.4 Microsoft Virtual PC 37 3.3.5 Xen 39 3.3.6 最势均力敌的竞争对手 40 3.4 仿真器的选择 41 3.4.1 安全性 41 3.4.2 可扩展性 41 3.4.3 源代码是否可用 41 3.4.4 仿真的质量 42 3.4.5 内置调试器 43 3.4.6 如何在VMware下配置SoftICE 45 第4章 汇编器入门 46 4.1 汇编语言方法论 47 4.2 基于C程序实例解释汇编概念 48 4.3 汇编插入语句 49 4.4 可用的汇编语言工具 50 4.5 汇编编译器的概况与比较 51 4.5.1 评判的基本标准 52 4.5.2 MASM 54 4.5.3 TASM 56 4.5.4 FASM 57 4.5.5 NASM 58 4.5.6 YASM 59 4.5.7 结论 60 第二篇 基本黑客技术 第5章 走进黑客门 64 5.1 按密钥类型划分保护机制 67 5.2 保护机制的强度 68 5.3 商业化保护机制的缺点 70 5.4 定制保护机制的实现错误 70 5.4.1 非授权复制与序列号分发 70 5.4.2 试用期及其弱点 71 5.4.3 算法重建 74 5.4.4 磁盘与内存的修改 78 5.4.5 反反汇编器 78 5.4.6 反调试技术 79 5.4.7 反监听器 79 5.4.8 反转储器 79 5.4.9 弥补保护机制 80 5.5 容易导致严重后果的小错误 80 第6章 热身 83 6.1 创建保护机制,并尝试破解 83 6.2 走近反汇编器 85 6.2.1 批反汇编器与交互式反汇编器 86 6.2.2 使用批反汇编器 87 6.2.3 从EXE到CRK 90 6.3 实际的破解范例 101 6.3.1 抑制干扰屏的出现 102 6.3.2 强行注册 105 6.3.3 彻底破解或者驯服“About”对话框 108 6.4 总结 111 第7章 通晓应用程序调试技术 112 7.1 调试简介 112 7.2 配套使用反汇编器与调试器 113 7.3 API函数断点 115 7.4 消息断点 117 7.5 数据断点 118 7.6 展开堆栈 119 7.7 调试DLL 121 7.8 总结 122 第8章 在UNIX与Linux下的特殊调试技术 123 8.1 GDB的基础——ptrace 124 8.1.1 ptrace及其命令 126 8.1.2 GDB对多进程的支持 127 8.1.3 GDB简介 128 8.1.4 跟踪系统调用 131 8.2 用GDB调试二进制文件 133 8.2.1 准备进行文件调试 133 8.2.2 跟踪前的准备 138 第9章 Linice内核调试基础 141 9.1 系统要求 142 9.2 编译与配置Linice 143 9.3 引导系统与启动调试器 144 9.4 Linice的基本使用原理 147 9.5 总结 151 第10章 高级调试专题 152 10.1 SoftICE用做日志记录器 152 10.1.1 热身运动 153 10.1.2 更复杂的过滤器 156 10.1.3 SoftICE的动画型跟踪 159 10.2 随机设置断点的技巧 160 10.2.1 单步跟踪的秘密 161 10.3 通过覆盖方法进行破解 169 10.3.1 总体思路 169 10.3.2 工具的选择 170 10.4 确定代码覆盖的算法 172 10.5 方法的选择 173 10.6 程序破解实例 174 10.7 总结 179 第三篇 高级反汇编技术 第11章 反汇编32位PE文件 182 11.1 PE文件结构不同实现形式的特性 182 11.2 PE文件的一般概念与要求 183 11.3 PE文件结构 184 11.4 PE文件的代码插入与删除技术 186 11.4.1 X码概念及其他约定 186 11.4.2 X码的目的与任务 187 11.4.3 对X码的要求 188 11.4.4 插入 189 11.5 总结 215 第12章 在Linux与BSD中反汇编ELF文件 216 12.1 所需要的工具 216 12.2 ELF文件结构 217 12.3 在ELF文件中插入外来码 219 12.3.1 通过合并来感染文件 220 12.3.2 通过扩展文件的最后分区来感染文件 222 12.3.3 通过压缩部分原始文件 12.3.3 而感染文件 224 12.3.4 通过扩展文件的代码分区而感染文件 228 12.3.5 通过下移代码分区而感染文件 231 12.3.6 通过创建定制分区而感染文件 233 12.3.7 通过在文件与头结构之间 12.3.7 插入代码而感染文件 233 12.3.8 在ELF文件中插入代码的实验 234 12.4 反汇编Linux版tiny-crackme程序 241 12.4.1 剖析tiny-crackme 241 12.5 总结 253 第13章 反汇编x86-64程序 254 13.1 简介 254 13.2 需要的工具 255 13.3 x86-64体系结构概述 258 13.4 切换到64位模式 260 13.5 x86-64平台上的“Hello, World”程序 262 13.6 总结 267 第14章 反汇编与破解Linux内核 268 14.1 反汇编Linux内核 268 14.1.1 内核的外围话题 268 14.1.2 攻击内核 269 14.1.3 深入内核 271 14.1.4 错误所在的位置 275 14.2 内核攻击秘诀 276 14.2.1 修改Linux徽标 276 第15章 高级补丁技术 281 15.1 联机补丁的秘密与诀窍 281 15.1.1 最简单的联机补丁器 282 15.1.2 大比拼 284 15.1.3 截取传递信号的API函数 285 15.1.4 硬件断点 287 15.2 几种鲜为人知的破解客户程序的方法 289 15.2.1 破解客户应用程序的方法概述 289 15.2.2 在不编辑字节的情况下进行修改 289 15.3 Windows NT/2000/XP内核黑码事宜 296 15.3.1 内核结构 296 15.3.2 内核类型 298 15.3.3 修改内核的方法 300 15.3.4 修改启动徽标 306 15.4 BSOD之后还有活路吗 308 15.4.1 用SoftICE克服BSOD 309 15.4.2 自动实现的复活过程 313 15.4.3 这个反BSOD程序安全吗 317 15.5 总结 318 第16章 反汇编其他格式的文件 319 16.1 反汇编PDF文件 319 16.1.1 Adobe Acrobat为那些不循规蹈矩的人提供了什么 320 16.1.2 修改Adobe Acrobat 323 16.1.3 使用打印屏幕功能实施破解 324 16.1.4 尽量多懂几种语言 324 16.1.5 PDF文件结构 324 16.1.6 生成加密密钥 328 16.1.7 攻击U-密码 329 16.1.8 如何动手破解PDF密码 331 16.2 总结 333 第四篇 实用代码探查技术 第17章 在Windows上捉迷藏 336 17.1 Windows反调试技术 337 17.1.1 历史在不断地重演 339 17.1.2 自跟踪程序 340 17.1.3 基于物理内存访问的反调试技术 345 17.1.4 Windows 2000/XP SDT Restore如何工作 349 17.2 Windows世界的隐形技术 349 17.2.1 Blue Pill、Red Pill——Windows Longhorn再现《黑客帝国》 350 17.2.2 Blue Pill 350 17.2.3 规避数字签名 350 17.2.4 沉迷于虚拟世界 352 17.2.5 Red Pill 355 17.3 总结 357 第18章 攻克打包器 358 18.1 初步的分析 358 18.2 解包与其他方法 361 18.3 解包算法 361 18.4 搜索原始入口点 362 18.4.1 活动程序转储 362 18.4.2 通过内存中的签名搜索启动代码 364 18.4.3 流行但低效的工具: 18.4.3 GetModuleHandleA与fs:0 365 18.4.4 解包器的副作用 369 18.4.5 基于堆栈平衡找到OEP的通用方法 372 18.4.6 如果调试器跳过了解包器入口点怎么办 375 18.5 转储受保护的应用程序 377 18.5.1 简单转储案例 377 18.5.2 自行搜索 381 18.5.3 从外部查看转储内容 382 18.5.4 动态解密机制 383 18.5.5 对内部数据进行转储 384 18.5.6 打包器的诡计 386 18.6 总结 388 第19章 攻克代码混淆 389 19.1 混码器如何发挥作用 390 19.2 如何破解混淆程序 394 19.2.1 解除代码混淆 395 19.3 黑盒方法 397 19.4 虚拟机牢笼 398 19.5 总结 399 第20章 攻克Linux与BSD打包器 400 20.1 打包器对性能的影响 400 20.2 ELFCrypt 401 20.3 UPX 408 20.4 Burneye 410 20.5 Shiva 413 20.6 打包器的比较 414 20.7 总结 415 第21章 调试与反汇编恶意软件 416 21.1 用调试器反监视 416 21.1.1 时间也会留下印记 416 21.1.2 进程树 418 21.1.3 查看线程 420 21.1.4 恢复系统服务表 426 21.2 攻击程序的核查与反汇编 430 21.2.1 如何反汇编攻击程序 431 21.2.2 分析消息排队攻击程序 432 21.2.3 如何在调试器下运行外壳码 443 21.3 总结 444
基本信息 作者: (俄)Kris Kaspersky(克里斯.卡巴斯基) 译者: 谭明金[同译者作品] 丛书名: 安全技术大系 出版社:电子工业出版社 ISBN:9787121106279 上架时间:2010-6-12 出版日期:2010 年6月 开本:16开 页码:1 版次:2-1 所属分类: 计算机 > 软件与程序设计 > 汇编语言/编译原理 > 汇编语言程序设计 编辑推荐 俄罗斯著名的安全技术专家Kris Kaspersky力作 横跨Windows和UNIX两大主流操作系统 全面介绍多种调试工具和方法 目录回到顶部↑第一篇 黑客工具介绍 第1章 携黑客工具启程 2 1.1 调试器 2 1.2 反汇编器 6 1.3 反编译器 8 1.4 十六进制编辑器 10 1.5 解包器(Unpacker) 12 1.6 转储器 13 1.7 资源编辑器 14 1.8 窥测器(Spy) 14 1.9 监视器(Monitor) 15 1.10 修正器 17 1.11 受保护光盘复制器 17 第2章 UNIX黑客工具 18 2.1 调试器 18 2.2 反汇编器 21 2.3 窥测器 22 2.4 十六进制编辑器 23 2.5 转储器 24 2.6 自动保护工具 24 .第3章 调试器与仿真器的仿真 25 3.1 仿真器概述 25 3.2 历史概况 25 3.2.1 仿真器的应用范围 27 3.2.2 硬件虚拟 31 3.3 流行的仿真器 32 3.3.1 DOSBox 32 3.3.2 Bochs 34 3.3.3 VMware 35 3.3.4 Microsoft Virtual PC 37 3.3.5 Xen 39 3.3.6 最势均力敌的竞争对手 40 3.4 仿真器的选择 41 3.4.1 安全性 41 3.4.2 可扩展性 41 3.4.3 源代码是否可用 41 3.4.4 仿真的质量 42 3.4.5 内置调试器 43 3.4.6 如何在VMware下配置SoftICE 45 第4章 汇编器入门 46 4.1 汇编语言方法论 47 4.2 基于C程序实例解释汇编概念 48 4.3 汇编插入语句 49 4.4 可用的汇编语言工具 50 4.5 汇编编译器的概况与比较 51 4.5.1 评判的基本标准 52 4.5.2 MASM 54 4.5.3 TASM 56 4.5.4 FASM 57 4.5.5 NASM 58 4.5.6 YASM 59 4.5.7 结论 60 第二篇 基本黑客技术 第5章 走进黑客门 64 5.1 按密钥类型划分保护机制 67 5.2 保护机制的强度 68 5.3 商业化保护机制的缺点 70 5.4 定制保护机制的实现错误 70 5.4.1 非授权复制与序列号分发 70 5.4.2 试用期及其弱点 71 5.4.3 算法重建 74 5.4.4 磁盘与内存的修改 78 5.4.5 反反汇编器 78 5.4.6 反调试技术 79 5.4.7 反监听器 79 5.4.8 反转储器 79 5.4.9 弥补保护机制 80 5.5 容易导致严重后果的小错误 80 第6章 热身 83 6.1 创建保护机制,并尝试破解 83 6.2 走近反汇编器 85 6.2.1 批反汇编器与交互式反汇编器 86 6.2.2 使用批反汇编器 87 6.2.3 从EXE到CRK 90 6.3 实际的破解范例 101 6.3.1 抑制干扰屏的出现 102 6.3.2 强行注册 105 6.3.3 彻底破解或者驯服“About”对话框 108 6.4 总结 111 第7章 通晓应用程序调试技术 112 7.1 调试简介 112 7.2 配套使用反汇编器与调试器 113 7.3 API函数断点 115 7.4 消息断点 117 7.5 数据断点 118 7.6 展开堆栈 119 7.7 调试DLL 121 7.8 总结 122 第8章 在UNIX与Linux下的特殊调试技术 123 8.1 GDB的基础——ptrace 124 8.1.1 ptrace及其命令 126 8.1.2 GDB对多进程的支持 127 8.1.3 GDB简介 128 8.1.4 跟踪系统调用 131 8.2 用GDB调试二进制文件 133 8.2.1 准备进行文件调试 133 8.2.2 跟踪前的准备 138 第9章 Linice内核调试基础 141 9.1 系统要求 142 9.2 编译与配置Linice 143 9.3 引导系统与启动调试器 144 9.4 Linice的基本使用原理 147 9.5 总结 151 第10章 高级调试专题 152 10.1 SoftICE用做日志记录器 152 10.1.1 热身运动 153 10.1.2 更复杂的过滤器 156 10.1.3 SoftICE的动画型跟踪 159 10.2 随机设置断点的技巧 160 10.2.1 单步跟踪的秘密 161 10.3 通过覆盖方法进行破解 169 10.3.1 总体思路 169 10.3.2 工具的选择 170 10.4 确定代码覆盖的算法 172 10.5 方法的选择 173 10.6 程序破解实例 174 10.7 总结 179 第三篇 高级反汇编技术 第11章 反汇编32位PE文件 182 11.1 PE文件结构不同实现形式的特性 182 11.2 PE文件的一般概念与要求 183 11.3 PE文件结构 184 11.4 PE文件的代码插入与删除技术 186 11.4.1 X码概念及其他约定 186 11.4.2 X码的目的与任务 187 11.4.3 对X码的要求 188 11.4.4 插入 189 11.5 总结 215 第12章 在Linux与BSD中反汇编ELF文件 216 12.1 所需要的工具 216 12.2 ELF文件结构 217 12.3 在ELF文件中插入外来码 219 12.3.1 通过合并来感染文件 220 12.3.2 通过扩展文件的最后分区来感染文件 222 12.3.3 通过压缩部分原始文件 12.3.3 而感染文件 224 12.3.4 通过扩展文件的代码分区而感染文件 228 12.3.5 通过下移代码分区而感染文件 231 12.3.6 通过创建定制分区而感染文件 233 12.3.7 通过在文件与头结构之间 12.3.7 插入代码而感染文件 233 12.3.8 在ELF文件中插入代码的实验 234 12.4 反汇编Linux版tiny-crackme程序 241 12.4.1 剖析tiny-crackme 241 12.5 总结 253 第13章 反汇编x86-64程序 254 13.1 简介 254 13.2 需要的工具 255 13.3 x86-64体系结构概述 258 13.4 切换到64位模式 260 13.5 x86-64平台上的“Hello, World”程序 262 13.6 总结 267 第14章 反汇编与破解Linux内核 268 14.1 反汇编Linux内核 268 14.1.1 内核的外围话题 268 14.1.2 攻击内核 269 14.1.3 深入内核 271 14.1.4 错误所在的位置 275 14.2 内核攻击秘诀 276 14.2.1 修改Linux徽标 276 第15章 高级补丁技术 281 15.1 联机补丁的秘密与诀窍 281 15.1.1 最简单的联机补丁器 282 15.1.2 大比拼 284 15.1.3 截取传递信号的API函数 285 15.1.4 硬件断点 287 15.2 几种鲜为人知的破解客户程序的方法 289 15.2.1 破解客户应用程序的方法概述 289 15.2.2 在不编辑字节的情况下进行修改 289 15.3 Windows NT/2000/XP内核黑码事宜 296 15.3.1 内核结构 296 15.3.2 内核类型 298 15.3.3 修改内核的方法 300 15.3.4 修改启动徽标 306 15.4 BSOD之后还有活路吗 308 15.4.1 用SoftICE克服BSOD 309 15.4.2 自动实现的复活过程 313 15.4.3 这个反BSOD程序安全吗 317 15.5 总结 318 第16章 反汇编其他格式的文件 319 16.1 反汇编PDF文件 319 16.1.1 Adobe Acrobat为那些不循规蹈矩的人提供了什么 320 16.1.2 修改Adobe Acrobat 323 16.1.3 使用打印屏幕功能实施破解 324 16.1.4 尽量多懂几种语言 324 16.1.5 PDF文件结构 324 16.1.6 生成加密密钥 328 16.1.7 攻击U-密码 329 16.1.8 如何动手破解PDF密码 331 16.2 总结 333 第四篇 实用代码探查技术 第17章 在Windows上捉迷藏 336 17.1 Windows反调试技术 337 17.1.1 历史在不断地重演 339 17.1.2 自跟踪程序 340 17.1.3 基于物理内存访问的反调试技术 345 17.1.4 Windows 2000/XP SDT Restore如何工作 349 17.2 Windows世界的隐形技术 349 17.2.1 Blue Pill、Red Pill——Windows Longhorn再现《黑客帝国》 350 17.2.2 Blue Pill 350 17.2.3 规避数字签名 350 17.2.4 沉迷于虚拟世界 352 17.2.5 Red Pill 355 17.3 总结 357 第18章 攻克打包器 358 18.1 初步的分析 358 18.2 解包与其他方法 361 18.3 解包算法 361 18.4 搜索原始入口点 362 18.4.1 活动程序转储 362 18.4.2 通过内存中的签名搜索启动代码 364 18.4.3 流行但低效的工具: 18.4.3 GetModuleHandleA与fs:0 365 18.4.4 解包器的副作用 369 18.4.5 基于堆栈平衡找到OEP的通用方法 372 18.4.6 如果调试器跳过了解包器入口点怎么办 375 18.5 转储受保护的应用程序 377 18.5.1 简单转储案例 377 18.5.2 自行搜索 381 18.5.3 从外部查看转储内容 382 18.5.4 动态解密机制 383 18.5.5 对内部数据进行转储 384 18.5.6 打包器的诡计 386 18.6 总结 388 第19章 攻克代码混淆 389 19.1 混码器如何发挥作用 390 19.2 如何破解混淆程序 394 19.2.1 解除代码混淆 395 19.3 黑盒方法 397 19.4 虚拟机牢笼 398 19.5 总结 399 第20章 攻克Linux与BSD打包器 400 20.1 打包器对性能的影响 400 20.2 ELFCrypt 401 20.3 UPX 408 20.4 Burneye 410 20.5 Shiva 413 20.6 打包器的比较 414 20.7 总结 415 第21章 调试与反汇编恶意软件 416 21.1 用调试器反监视 416 21.1.1 时间也会留下印记 416 21.1.2 进程树 418 21.1.3 查看线程 420 21.1.4 恢复系统服务表 426 21.2 攻击程序的核查与反汇编 430 21.2.1 如何反汇编攻击程序 431 21.2.2 分析消息排队攻击程序 432 21.2.3 如何在调试器下运行外壳码 443 21.3 总结 444

16,472

社区成员

发帖
与我相关
我的任务
社区描述
VC/MFC相关问题讨论
社区管理员
  • 基础类社区
  • Web++
  • encoderlee
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

        VC/MFC社区版块或许是CSDN最“古老”的版块了,记忆之中,与CSDN的年龄几乎差不多。随着时间的推移,MFC技术渐渐的偏离了开发主流,若干年之后的今天,当我们面对着微软的这个经典之笔,内心充满着敬意,那些曾经的记忆,可以说代表着二十年前曾经的辉煌……
        向经典致敬,或许是老一代程序员内心里面难以释怀的感受。互联网大行其道的今天,我们期待着MFC技术能够恢复其曾经的辉煌,或许这个期待会永远成为一种“梦想”,或许一切皆有可能……
        我们希望这个版块可以很好的适配Web时代,期待更好的互联网技术能够使得MFC技术框架得以重现活力,……

试试用AI创作助手写篇文章吧