| 资源介绍 |
|
语言: 简体中文
|
|
地区: 大陆
|
|
图书fenlei: 网络
|
|
中文名: 灰帽黑客:正义黑客的道德规范、渗透测试、攻击方法和漏洞分析技术
|
|
发行时间: 2012年11月
|
|
原名: Gray Hat Hacking: The Ethical Hacker's Handbook, Third Edition
|
|
资源格式: PDF
|
|
版本: 文字版
|
简介:  内容简介: 本书的目标是帮助培养更多技术精湛的、专注于抵御恶意黑客攻击的安全专家。事实一再证明,对敌方的了解是非常重要的,包括他们的策略、技能、工具和动机。企业和国家所面临的敌手非常专注,而且技艺超群。我们必须携起手来才能理解敌方的行动过程和流程,以确保我们能够正确地挫败敌方具有破坏性的恶意攻击。 本书的作者希望为读者提供他们认为这个行业所需的信息,即对负责任的而且在意图和 物质方面真正合乎道德标准的正义黑客技术的整体性讨论。这也是为什么本书一开始就给出正义黑客的定义的原因所在,社会上对正义黑客的理解是非常模糊的。 本书对前两版中的材料进行了更新,并尝试将最全面、最新的技术、流程和材料汇集起来。因此增加了9 章全新的内容,同时对其他章的内容进行了新新。 技术编辑简介: Michael Baucom 是北卡罗莱纳州N2NetSecurity, Inc.公司的研发副总裁。他的软件工程 师职业生涯长达15 年,曾经编写过各种软件,既包括采用汇编语言编写的路由转发代码, 也包括Windows 应用程序和服务。除了编写软件之外,他还从事过安全咨询工作,包括培 训、源代码审查以及渗透测试。 作者简介: Allen Harper,CISSP、PCI QSA,北卡罗莱纳州N2NetSecurity, Inc.公司总裁和所有者。他曾在美国海军陆战队服役20 年并在伊拉克“旅游”之后退役。此外,他还曾经担任美国财政部、国税局计算机安全应急响应中心(IRS CSIRC)的安全分析师。他经常会在像Black Hat 和Techno 这样的会议上发表演讲和授课。 Shon Harris,CISSP,Logical Security 总裁,作家、教育工作者和安全咨询师。曾经担任过美国空军信息战部队的工程师,并且出版过一些有关信息安全领域的不同学科的著作和论文。信息安全杂志(Information Security Magazine)曾经将她评为信息安全领域的25 最杰出的位女性精英之一。
|
目录: 第Ⅰ部分 “合乎道德的揭秘行为” 简介 .................................... 1 第1 章 正义黑客的道德规范 ................ 3 1.1 理解敌方策略的意义 ................. 3 1.2 认识安全领域的灰色区域 ......... 7 1.3 本书与正义黑客类图书 的关系 ........................................ 8 1.3.1 漏洞评估 ................................. 8 1.3.2 渗透测试 ................................. 9 1.4 关于黑客类图书和课程的 争议 .......................................... 12 1.4.1 工具的双重性 ....................... 13 1.4.2 识别攻击 ............................... 14 1.4.3 模拟攻击 ............................... 15 1.5 攻击者最喜欢利用的漏洞 ....... 15 第2 章 合乎道德的正常揭秘行为 ....... 19 2.1 各方看待问题的不同角度 ....... 20 2.2 CERT 目前采取的工作流程 .... 21 2.3 完全揭秘策略— RainForest Puppy Policy .......... 23 2.4 Internet 安全组织 ..................... 24 2.4.1 发现漏洞 ............................... 25 2.4.2 通知 ....................................... 25 2.4.3 验证 ....................................... 27 2.4.4 解决 ....................................... 29 2.4.5 发布 ....................................... 30 2.5 争议仍将存在 ........................... 30 2.6 案例分析 ................................... 34 2.6.1 正当揭秘过程的优缺点 ....... 35 2.6.2 供应商更加关注 ................... 38 2.7 接下来应该做什么 ................... 38 第Ⅱ部分 渗透测试及工具 .............. 41 第3 章 社会工程攻击 ......................... 43 3.1 社会工程攻击原理 ................... 43 3.2 实施社会工程攻击 ................... 44 3.3 渗透测试中常用到的 攻击手段 .................................. 46 3.3.1 好心人 ................................... 47 3.3.2 会议室 ................................... 51 3.3.3 加入公司 ............................... 53 3.4 准备好进行面对面的攻击 ....... 54 3.5 防御社会工程攻击 ................... 56 第4 章 潜入攻击 ................................ 57 4.1 潜入攻击如此重要的原因 ....... 57 4.2 实施潜入攻击 ........................... 58 4.2.1 侦察 ....................................... 58 4.2.2 思想准备 ............................... 60 4.3 进入目标建筑物的常用方法 ..... 60 4.3.1 吸烟区入口 ........................... 61 4.3.2 人工检查点 ........................... 62 4.3.3 锁住的门 ............................... 64 4.3.4 物理方式开锁 ....................... 66 4.3.5 进入目标之后 ....................... 69 4.4 防御潜入攻击 ........................... 69 第5 章 内部攻击 ................................ 71 5.1 模拟内部攻击的重要性 ........... 71 5.2 实施内部攻击 ........................... 72 5.2.1 工具和准备工作 ................... 72 5.2.2 了解情况 ............................... 72 5.2.3 获得本地管理员权限 ............ 73 5.2.4 禁用防病毒软件 ................... 76 5.2.5 使用Cain ............................... 77 5.3 防御内部攻击 ........................... 83 第6 章 使用BackTrack Linux 发行 ..... 85 6.1 BackTrack 简介 ........................ 85 6.2 将BackTrack 安装到DVD 或优盘 ...................................... 86 6.3 直接在虚拟机中使用Back Track ISO 映像文件 ................. 87 6.3.1 使用VirtualBox 创建 BackTrack 虚拟机 ............... 88 6.3.2 引导BackTrack LiveDVD 系统 ....................................... 88 6.3.3 探索BackTrack X 窗口 环境 ...................................... 89 6.3.4 启动网络服务 ....................... 90 6.4 永久性更改BackTrack............. 90 6.4.1 将BackTrack 完整地安装 在硬盘或者优盘中 ................ 91 6.4.2 新建一个包含永久性更改 信息的ISO 文件 ................... 92 6.4.3 使用自定义文件自动保存 和恢复更改 ........................... 94 6.5 研究BackTrack 引导菜单........ 95 6.6 更新BackTrack ........................ 97 第7 章 使用Metasploit ...................... 99 7.1 Metasploit 简介 ......................... 99 7.2 获取Metasploit ......................... 99 7.3 使用Metasploit 控制台加载 攻击工具 ................................. 100 7.4 使用Metasploit 攻击客户端 漏洞 ........................................ 105 7.5 使用Metasploit Meterpreter 进行渗透测试 ......................... 107 7.5.1 使用Meterpreter 进行 键盘记录 ............................ 110 7.5.2 使用Meterpreter 以不同的已 登录用户身份运行代码 ...... 110 7.5.3 使用Meterpreter 的hashdump 命令和Metasploit 的psexec 命令 以及共享口令登录 .............. 112 7.6 Metasploit 的自动化 与脚本化 ................................ 113 7.7 更进一步探讨Metasploit ....... 115 第8 章 渗透测试管理 ....................... 117 8.1 制定渗透测试计划 ................. 117 8.1.1 渗透测试的类型 ................. 117 8.1.2 渗透测试的范围 ................. 118 8.1.3 渗透测试的位置 ................. 118 8.1.4 渗透测试小组成员构成 ...... 118 8.1.5 方法和标准 ......................... 118 8.1.6 渗透测试的各个阶段 .......... 119 8.1.7 渗透测试计划 ..................... 120 8.2 签署渗透测试协议 ................. 121 8.2.1 工作声明 ............................. 121 8.2.2 “保释信” ......................... 121 8.3 实施渗透测试 ......................... 122 8.3.1 测试启动会议 ..................... 122 8.3.2 渗透测试中的资源访问 ...... 122 8.3.3 测试预期值管理 ................. 123 8.3.4 测试问题管理 ..................... 123 8.3.5 欲速则不达 ......................... 123 8.3.6 外部和内部协同 ................. 123 8.4 在渗透测试中进行信息共享 ...... 124 8.5 生成渗透测试结果报告 ......... 128 8.5.1 报告格式 ............................. 128 8.5.2 报告摘要 ............................. 128 第Ⅲ部分 漏洞攻击 ........................ 129 第 9 章 编程技能 ............................ 131 9.1 C 编程语言 ............................. 131 9.1.1 C 语言基本结构 .................. 131 9.1.2 程序范例 ............................. 135 9.1.3 使用gcc 进行编译 .............. 136 9.2 计算机内存 ............................. 137 9.2.1 随机存取存储器(RAM) ...... 137 9.2.2 字节序 ................................. 137 9.2.3 内存分段 ............................. 138 9.2.4 内存中的程序 ..................... 138 9.2.5. 缓冲区 .................................. 139 9.2.6. 内存中的字符串 .................. 139 9.2.7 指针 ..................................... 139 9.2.8 内存知识小结 ....................... 140 9.3 Intel 处理器 ............................. 141 9.3.1 寄存器 ................................. 141 9.4 汇编语言基础 ......................... 142 9.4.1 机器指令、汇编语言与 C 语言 ................................. 142 9.4.2 AT&T 与NASM ................. 142 9.4.3 寻址模式 ............................. 144 9.4.4 汇编文件结构 ..................... 145 9.4.5 汇编过程 ............................. 146 9.5 使用gdb 进行调试 ................. 146 9.5.1 gdb 基础 .............................. 146 9.5.2 使用gdb 进行反汇编 ......... 148 9.6 Python 编程技能 ..................... 149 9.6.1 获取Python ......................... 149 9.6.2 Python 中的Hello World 程序 ..................................... 149 9.6.3 Python 对象 ......................... 150 9.6.4 字符串 ................................. 150 9.6.5 数字 ..................................... 151 9.6.6 列表 ..................................... 152 9.6.7 字典 ..................................... 153 9.6.8 Python 文件操作 ................. 154 9.6.9 Python 套接字编程 ............. 155 第10 章 基本的Linux 漏洞攻击 ....... 157 10.1 栈操作 ................................... 157 10.1.1 函数调用过程 ................. 158 10.2 缓冲区溢出 ........................... 159 10.2.1 meet.c 溢出 ..................... 160 10.2.2 缓冲区溢出的后果 ......... 163 10.3 本地缓冲区溢出漏洞攻击 ..... 164 10.3.1 漏洞攻击组成部分 ......... 165 10.3.2 在命令行上进行栈溢出 漏洞攻击 ........................ 167 10.3.3 使用通用漏洞攻击代码 进行栈溢出漏洞攻击 ..... 168 10.3.4 对小缓冲区进行 漏洞攻击 ......................... 170 10.4 漏洞攻击开发过程 ............... 173 10.4.1 控制eip ........................... 173 10.4.2 确定偏移 ......................... 173 10.4.3 确定攻击途径 ................. 176 10.4.4 构建漏洞攻击三明治 ..... 176 10.4.5 测试漏洞攻击 ................. 177 第11 章 高级Linux 漏洞攻击 ........... 179 11.1 格式化字符串漏洞攻击 ....... 179 11.1.1 问题描述 ......................... 179 11.1.2 从任意内存读取 ............. 183 11.1.3 写入任意内存 ................. 184 11.1.4 利用.dtors 获得根 特权级 ............................ 186 11.2 内存保护机制 ....................... 189 11.2.1 编译器改进 ..................... 190 11.2.2 内核补丁和脚本 ............. 193 11.2.3. “返回到libc”漏洞 攻击 ................................ 194 11.2.4 综合比较 ......................... 202 第12 章 Shellcode 策略 ................... 203 12.1 用户空间shellcode ............... 203 12.1.1 系统调用 ......................... 203 12.1.2 基本shellcode ................. 204 12.1.3 端口绑定shellcode ......... 205 12.1.4 反向shellcode ................. 206 12.1.5 查找套接字shellcode ..... 207 12.1.6 命令执行代码 ................. 208 12.1.7 文件传输代码 ................. 208 12.1.8 多级shellcode ................. 209 12.1.9 系统调用代理 shellcode ......................... 209 12.1.10 进程注入shellcode ....... 210 12.2 其他shellcode 考虑因素 ...... 211 12.2.1 shellcode 编码 ................. 211 12.2.2 自我破坏shellcode ......... 212 12.2.3 反汇编shellcode ............. 213 12.3 内核空间shellcode ............... 214 12.3.1 内核空间考虑因素 ......... 214 第13 章 编写Linux shellcode .......... 217 13.1 基本的Linux shellcode ........ 217 13.1.1 系统调用 ......................... 217 13.1.2 使用C 进行系统调用 .... 218 13.1.3 使用汇编语言进行 系统调用 ........................ 219 13.1.4 系统调用exit .................. 219 13.1.5 系统调用setreuid ........... 221 13.1.6 利用execve 实现创建 shell 的shellcode ............ 222 13.2 实现端口绑定shellcode ....... 226 13.2.1 Linux 套接字编程........... 226 13.2.2 采用汇编语言编程建立 一个套接字 ..................... 228 13.2.3 测试shellcode ................. 231 13.3 实现反向连接shellcode ....... 234 13.3.1 反向连接C 语言编程 ...... 234 13.3.2 反向连接汇编程序 ......... 235 13.4 shellcode 编码 ....................... 237 13.4.1 简单的XOR 编码 ........... 237 13.4.2 编码后shellcode 的 结构 ................................. 238 13.4.3 JMP/CALL XOR 解码 器示例 ............................. 238 13.4.4 FNSTENV XOR 示例 ..... 239 13.4.5 将代码组合起来 ............. 241 13.5 利用Metasploit 自动生成 shellcode ............................... 244 13.5.1 利用Metasploit 生成 shellcode ......................... 244 13.5.2 利用Metasploit 对 shellcode 进行编码 ........ 245 第14 章 Windows 漏洞攻击 ............. 247 14.1 Windows 程序编译与调试 .... 247 14.1.1 在Windows 上进行 编译 ................................. 247 14.1.2 在Windows 上用 OllyDbg 进行调试 ......... 249 14.2 编写Windows 漏洞攻击 程序 ...................................... 253 14.2.1 漏洞攻击程序开发 过程回顾 ........................ 254 14.2.2 ProSSHD 服务器 ............ 254 14.2.3 控制eip ........................... 255 14.2.4 确定偏移 ......................... 257 14.2.5 确定攻击途径 ................. 258 14.2.6 构建攻击三明治 ............. 261 14.2.7 根据需要调试漏洞 攻击程序 ......................... 262 14.3 理解SEH .............................. 264 14.3.1 SEH 的实现 ..................... 264 14.4 理解Windows 内存保护 (XP SP3、Vista、7 和 Server 2008) .......................... 266 14.4.1 基于栈的缓冲区溢出 检测(/GS) ....................... 266 14.4.2 SafeSEH .......................... 268 14.4.3 SEHOP ............................ 268 14.4.4 堆保护 ............................. 268 14.4.5 DEP ................................. 268 14.4.6 ASLR ............................... 269 14.5 绕开Windows 内存保护 ...... 270 14.5.1 绕开/GS ........................... 270 14.5.2 绕开SafeSEH ................. 271 14.5.3 绕开ASLR ...................... 272 14.2.4 绕开DEP......................... 272 14.5.5 绕开SEHOP ................... 278 14.5.6 内存保护绕开方法小结 .... 285 第15 章 Content-Type 攻击原理 与检测 ................................ 287 15.1 Content-Type 攻击原理 ........ 287 15.2 现今可被攻击的文件格式 ..... 289 15.3 PDF 文件格式简介 ............... 290 15.4 恶意PDF 漏洞攻击分析 ...... 293 15.5 恶意PDF 文件检测工具 ...... 296 15.5.1 PDFiD .............................. 296 15.5.2 Pdf-parser.py .................... 300 15.6 Content-Type 攻击防御 测试工具 .............................. 303 15.7 Content-Type 攻击防御 方法 ...................................... 304 15.7.1 安装所有的安全更新 ..... 304 15.7.2 在Adobe Reader 中禁用JavaScript ........... 305 15.7.3 针对微软Office 应用 程序和Adobe Reader 启用DEP ......................... 305 第16 章 WEB 应用程序安全漏洞....... 307 16.1 最流行的Web 应用程序 安全漏洞概述 ...................... 307 16.1.1 注入漏洞 ......................... 307 16.1.2 跨站脚本漏洞 ................. 308 16.1.3 OWASP 十大隐患中 的其他内容 ..................... 308 16.2 SQL 注入漏洞攻击 .............. 308 16.2.1 SQL 数据库与语句......... 310 16.2.2 测试Web 应用程序, 搜寻SQL 注入漏洞 ........ 312 16.3 跨站脚本漏洞攻击 ............... 317 16.3.1 “脚本”的含义 ............. 317 16.3.2 跨站脚本的含义 ............. 318 第17 章 oIP 攻击 ............................. 323 17.1 VoIP 的含义 .......................... 323 17.2 VoIP 使用的协议 .................. 324 17.2.1 SIP ................................... 324 17.2.2 Megaco H.248 ................. 325 17.2.3 H.323 ............................... 325 17.2.4 TLS 和DTLS .................. 326 17.2.5 SRTP ................................ 327 17.2.6 ZRTP ............................... 327 17.3 VoIP 攻击类型 ...................... 327 17.3.1 枚举 ................................. 328 17.3.2 SIP 口令破解 .................. 328 17.3.3 窃听与分组捕获 ............. 329 17.3.4 拒绝服务 ......................... 329 17.4 如何防范VoIP 攻击 ............. 335 第18 章 SCADA 攻击 ...................... 337 18.1 SCADA 的含义 .................... 337 18.2 SCADA 使用的协议 ............ 338 18.2.1 OPC ................................. 338 18.2.2 ICCP ................................ 338 18.2.3 Modbus ............................ 338 18.2.4 DNP3 ............................... 339 18.3 SCADA fuzzing 测试 ............ 340 18.3.1 使用Autodafé进行SCADA fuzzing 测试 ................... 340 18.3.2 使用TFTP Daemon Fuzzer 进行SCADA fuzzing 测试 ................... 346 18.4 Stuxnet 恶意软件(网络恐怖 主义新浪潮) ......................... 349 18.5 防范SCADA 攻击 ............... 349 第Ⅳ部分 漏洞分析 ........................ 351 第19 章 被动分析 ............................ 353 19.1 道德的逆向工程 ................... 353 19.2 使用逆向工程的原因 ........... 354 19.2.1 逆向工程注意事项 ......... 354 19.3 源代码分析 ........................... 355 19.3.1 源代码审计工具 ............. 355 19.3.2 源代码审计工具的 实用性 ............................. 357 19.3.3 手工源代码审计 ............. 359 19.3.4 自动化源代码分析 ......... 363 19.4 二进制分析 ........................... 365 19.4.1 二进制代码的手工审计 .... 365 19.4.2 自动化的二进制 分析工具 ........................ 376 第20 章 使用IDA Pro 进行高级 静态分析 ........................... 381 20.1 静态分析难点 ....................... 381 20.1.1 剥离的二进制文件 ......... 381 20.1.2 静态链接程序和 FLAIR ............................. 383 20.1.3 数据结构分析 ................. 389 20.1.4 已编译的C++代码 的诡异之处 ..................... 393 20.2 扩展IDA Pro ........................ 396 20.2.1 IDC 脚本编程 ................. 396 20.2.2 IDA Pro 插件模块 及IDA Pro SDK .............. 398 20.2.3 构建IDA Pro 插件 .......... 400 20.2.4 IDA Pro 加载器及 处理器模块 ..................... 402 第21 章 高级逆向工程技术 .............. 405 21.1 软件攻击的目的 ................... 405 21.2 软件开发过程概述 ............... 406 21.3 检测工具 ............................... 407 21.3.1 调试器 ............................. 407 21.3.2 代码覆盖分析工具 ......... 409 21.3.3 统计分析工具 ................. 410 21.3.4 流程分析工具 ................. 410 21.3.5 内存使用监视工具 ......... 412 21.4 模糊测试 ............................... 416 21.5 定制的模糊测试工具 和技术 .................................. 417 21.5.1 一个简单的URL 模糊 测试工具 ......................... 417 21.5.2 对未知协议进行模糊 测试 ................................. 420 21.5.3 SPIKE .............................. 421 21.5.4 SPIKE 静态内容原语 ..... 421 21.5.5 SPIKE Proxy ................... 424 21.5.6 Sharefuzz ......................... 424 第22 章 客户端浏览器的漏洞攻击 .... 427 22.1 客户端软件漏洞的 重要性 ................................... 427 22.1.1 客户端漏洞可以规避 防火墙保护 ..................... 427 22.1.2 客户端应用程序经常 在管理权限下运行 ......... 428 22.1.3 客户端漏洞易于针对 特定人群或机构目标 .... 428 22.2 Internet Explorer 的安全 概念 ...................................... 429 22.2.1 ActiveX 控件 ................... 429 22.2.2 Internet Explorer 安全区域 ........................ 430 22.3 客户端漏洞攻击的历史 与发展趋势 .......................... 431 22.3.1 客户端漏洞的流行 ......... 431 22.3.2 历史上针对客户端 攻击的著名漏洞............. 431 22.4 挖掘基于浏览器的新漏洞 ..... 437 22.4.1 mangleme ........................ 437 22.4.2 Mozilla 安全团队的 模糊测试工具 ................. 440 22.4.3 AxEnum ........................... 441 22.4.4 AxFuzz ............................ 446 22.4.5 AxMan ............................. 446 22.5 可利用的堆喷射技术 ........... 451 22.5.1 InternetExploiter .............. 451 22.6 防范客户端漏洞攻击 ........... 452 22.6.1 同步更新安全补丁 ......... 452 22.6.2 获取最新信息 ................. 453 22.6.3 在缩减权限下运行 Internet 应用 ................... 453 第23 章 攻击Windows 访问控制 模型 ................................... 455 23.1 攻击访问控制机制的 理由 ...................................... 455 23.1.1 多数人不理解访问 控制机制 ......................... 455 23.1.2 访问控制漏洞易于 攻击 ................................ 456 23.1.3 访问控制漏洞数量 巨大 ................................ 456 23.2 Windows 访问控制的 工作机制 .............................. 456 23.2.1 安全标识符 ..................... 456 23.2.2 访问令牌 ......................... 457 23.2.3 安全描述符 ..................... 460 23.2.4 访问检查 ......................... 463 23.3 访问控制配置分析工具 ....... 465 23.3.1 转储进程令牌 ................. 466 23.3.2 转储安全描述符 ............. 468 23.4 特殊SID、特殊访问权限和 “禁止访问”问题 ................ 469 23.4.1 特殊的SID...................... 469 23.4.2 特殊访问权限 ................. 471 23.4.3 “禁止访问”的原理 ..... 472 23.5 访问控制引起的提权漏洞 ..... 477 23.6 各种对象类型的攻击模式 ..... 478 23.6.1 服务攻击 ......................... 478 23.6.2 Windows 注册表DACL 攻击 ................................ 484 23.6.3 目录DACL 攻击 ............ 488 23.6.4 文件DACL 攻击 ............ 493 23.7 其他对象类型的枚举方法 ..... 497 23.7.1 共享内存段 ..................... 497 23.7.2 命名管道 ......................... 498 23.7.3 进程 ................................. 499 23.7.4 其他已命名的内核对象 (信号量、互斥锁、事件、 设备) ............................... 500 第24 章 智能模糊测试框架Sulley .... 503 24.1 协议分析 ............................... 503 24.2 Sulley 模糊测试框架 ............ 504 24.2.1 安装Sulley ...................... 505 24.2.2 强大的模糊测试工具 ..... 505 24.2.3 块结构 ............................. 507 24.2.4 监视进程中的错误 ......... 511 24.2.5 监视网络流量 ................. 512 24.2.6 控制VMware .................. 512 24.2.7 综述 ................................. 513 24.2.8 崩溃事件的事后分析 ..... 515 24.2.9 网络使用分析 ................. 516 24.2.10 进一步研究 ................... 517 第25 章 漏洞的可利用性和漏洞 攻击程序 ............................ 519 25.1 漏洞的可利用性 ................... 519 25.1.1 通过调试分析可利用性 .... 520 25.1.2 初始分析 ......................... 520 25.2 理解漏洞攻击问题 ............... 524 25.2.1 先决条件和后置条件 ..... 524 25.2.2 可重复性 ......................... 525 25.3 构造漏洞攻击程序有效 载荷的有关考虑 .................. 533 25.3.1 漏洞攻击程序有效 载荷的协议元素 ............ 533 25.3.2 缓冲区的方向 ................. 534 25.3.3 自毁式shellcode ............. 534 25.4 对问题进行归档 ................... 535 25.4.1 背景知识 ......................... 535 25.4.2 环境 ................................. 536 25.4.3 研究结果 ......................... 536
|