新闻资讯
看你所看,想你所想

Shellcoder编程揭秘

《Sh即元配行量ellcod来自er编程揭秘》是由Kris Kaspersky编写,电子工业出版社出版的一本书籍。

  • 书名 Shellcoder编程揭秘
  • 作者 Kris Kaspersky
  • 原作品 Shellcoder's Programming Uncovered
  • 译者 罗爱国 郑艳杰
  • 出版社 电子工业出版社

编辑推荐

  ·软件安全专家Kris Kaspersky最新力作

  ·打开魔法之门,进入隐藏在高级语言编程背后的精彩世界

  ·全面讲述应用软件和操作系统漏洞的生成与发现、攻击与保护的技巧

内容简介

  全书的内容紧密围绕shellcode编程展开,系统地阐述了作为一名shellcoder应该掌握的知识要点。除了she逐论微态够支llcode之外,作者还介绍了手机,bios等涉及安全的新领域。

  本书的按景片约左第1部分介绍了编写shellcode前应掌握的一些基本概念,应熟悉的软件工具等内容,还介绍了利用gprs入侵的细节。第2部分则以常见的栈溢出、堆溢出问题开始,接着介绍了seh、格式化漏洞等来自内容,最后介绍怎样解决这些漏洞,并以实际的漏洞为例,讲解怎样利用漏洞。第3部分主要放在编写shellcode上,介绍怎样编写适应多种环境的shellcode,除了以windows平台为主,还稍带介绍了linux平台上shellcode,第15章则介绍了怎样编译与反编译shellcode。360百科第4部分介绍了网络蠕虫与病毒。包煤房第5部分介绍了防火墙,蜜罐,和其他的保护系统。重点介绍了怎样突破这些保护系统故华兰心歌。第6部分介绍了去取员牛号除常见攻击对象之外的其他目标,如无线网络,手机,bios着载受香门拉法式如刻态等。

  书中还包括了大量未分开的用c/ic编语言编写攻击代烈随码的高级技巧。

资巴跳担专倒速

  第1部分 shell假细已团映鲜修code简介

  第1章 必需的工具 3

  1.1 编程语言 7

  1.2 分析,调试,逆向工程的工具 8

  1.3 必读书目和其他的参考资料 10

  第来自2章 汇编语言--概览 12

  2.1 汇编语言基本原理 13

  2.2 用c程序解释汇编概念 14

  2.3 以内联汇编为平台 16

  第3章 揭秘利用gprs的入侵 18

  3.1 匿名为什么也不安全 18

  3.2 利用gprs入侵 21

  3.2.1 gprs调制解调vs手机 22

  3.2.2 深入了解手机 22

  3.2.3 从键盘改写nam 24

  3.2.4 手动改写nam 26

  3.2.5 参考资料 29

  第2部分 溢出错误

  第4章 受溢出影响的缓冲区犯第试止(怪圈) 33

  4.1 溢出错误分类(极度无聊) 34

  4.2 产生溢出错误的历史必然性 36

  4.3 有关溢出错误的神话与传说 37

  4.4 攻击的目标和可能性 39

  4.4.常体1 读敏感变量 39

  4.4.2 修改秘密变量 39

  4.4.3 把控制权传给程序中的秘密函数 40

  4.4.4 把控制权传给入侵者的代码 40

  4.4.5 360百科溢出攻击的目标 40

  4.4.6 不同溢出类型的特征 48

  第5章 利用seh 56

  5.1 关于结构化异常的简短信息 56

  5.2 捕获日有乎振均免写护张块析控制 62

  5.3 抑制应用程序异常终止 63

  第6章 受控的格阶击式符 64

  6.1 支持格式化输出的函数 65

  6.2 cfingerd补丁 66

  6.3 潜在的叶板树端损局倒如道威胁源 66

  6.3.1 强制伪造格式符 66

  6.3.2 dos实现 67

  6.开总织宁类毫绿大可待3.3 peek实现 6利联交费可肥州烟则觉音9

  6.3.4 poke实现 71

  6.3.5 不均衡的格式符 73

  6.3.6 目统送括素政味标缓冲区溢出 73

  第7章 溢出实例 75

 直九卷段验 7.1 威胁源 75

  7.2 技术细节 76

  7.3 攻击代码 77

烟切汽  7.4 使攻击代码复活 80

  7.5 编写she存只易奏倒季模河llcode 81

存及尔草列帮困概减成  7.6 胜利或失败 81

  7.7 路在何方利训右五华帝针赶战找? 83

  第8章 搜索溢出的缓冲区 84

  8.1 埋优否缺害医拉耐害拉损实没在打印纸下 85

 致先胜亲空皇染灯何 8.2 二进制代码历险 87

  8.2.1 代码分析step by step 88

  8.2.2 重要提示 95

  8.3 溢出错误的实例 96

  第9章 保护缓冲区免遭溢出之害 102

  9.1 反黑客的技术 103

  9.1.1 stackguard 103

  9.1.2 不可执行栈(nonexecutable stack) 104

  9.1.3 its4软件安全工具 104

  9.1.4 flawfinder 104

  9.2 内存分配的问题 105

  9.2.1 ccured 105

  9.2.2 memwatch 105

  9.2.3 dmalloc,the debug malloc library 106

  9.2.4 checker 106

  第3部分 设计shellcode的秘密

  第10章 编写shellcode的问题 113

  10.1 无效的字符 113

  改写地址的技巧 113

  10.2 大小很重要 118

  10.3 寻找自我 119

  10.4 调用系统函数的技术 121

  10.4.1 在不同的操作系统里实现系统调用 127

  10.4.2 溢出之后恢复脆弱的程序 132

  10.5 关于shellcoding的有趣参考 132

  第11章 写可移植shellcode的技巧 134

  11.1 可移植shellcode的需求 135

  11.2 达成可移植之路 135

  11.3 硬编码的缺点 136

  11.4 直接在内存里搜索 138

  11.5 over open sights: peb 140

  11.6 展开seh栈 141

  11.7 原始api 142

  11.8 确保可移植的不同方法 143

  第12章 自修改基础 144

  12.1 了解自修改代码 144

  12.2 建立自修改代码的原则 147

  12.2.1 the matrix 153

  12.2.2 通过因特网修改

  12.2.2 代码的问题 156

  12.2.3 关于自修改的笔记 157

  第13章 在linux里捉迷藏 159

  13.1 可加载内核模块 160

  13.2 从任务列表里移走进程 164

  13.3 捕获系统调用 168

  13.4 捕获文件系统请求 169

  13.5 当模块不可用时 171

  13.6 其他的隐藏方法 174

  第14章 在linux里捕获ring 0 176

  14.1 hacking的正道 176

  14.2 linux下内核蓝牙本地攻击 177

  14.3 elfs fall into the dump 178

  14.4 多线程的问题 179

  14.5 在多处理器机器上得到root 181

  14.6 有趣的资源 183

  第15章 编译与反编译shellcode 184

  反编译shellcode 188

  第4部分 网络蠕虫和本地病毒

  第16章 蠕虫的生存周期 193

  16.1 真实介绍前的闲言碎语 194

  16.2 蠕虫介绍 195

  16.2.1 蠕虫的结构解剖 196

  16.2.2 蠕虫传播机理 204

  16.2.3 蠕虫的到达 205

  16.2.4 感染的策略与战术 206

  16.2.5 为自然生态环境而努力:在同伴面前的决择,生或死 209

  16.2.6 怎样发现蠕虫 213

  16.2.7 怎样战胜蠕虫 216

  16.2.8 暴风雨前的平静结束了? 217

  16.2.9 有趣的因特网资源 219

  第17章 unix里的本地病毒 221

  病毒活动需要的条件 223

  第18章 scripts里的病毒 225

  第19章 elf文件 231

  19.1 elf文件的结构 233

  19.2 常见结构和病毒行为的策略 235

  19.2.1 通过合并来感染 236

  19.2.2 通过扩展文件的最后一节来感染 238

  19.2.3 通过压缩原始文件的部分内容来感染 241

  19.2.4 通过延伸文件的代码节来感染 246

  19.2.5 通过把代码节下移来感染 249

  19.2.6 通过创建定制的节来感染 251

  19.2.7 在文件和头部之间插入来感染 251

  第20章 获取控制权的方法 253

  20.1 替换进入点(entry point) 253

  20.2 在进入点附近插入病毒码 254

  20.3 修改导入表(import table) 254

  第21章 被病毒感染的主要征兆 256

  21.1 反病毒程序有用吗? 261

  21.2 有关病毒感染的因特网资源 262

  第22章 最简单的windows nt病毒 263

  22.1 病毒操作的算法 264

  22.2 实验室病毒的源码 265

  22.3 编译并测试这个病毒 268

  22.4 枚举流 270

  22.5 有用的资源 270

  第5部分 防火墙,蜜罐,和其他保护系统

  第23章 绕过防火墙 273

  23.1 防火墙能防御和不能防御的威胁 274

  23.2 探测并识别防火墙 276

  23.3 穿过防火墙的扫描和跟踪 280

  23.4 渗透防火墙 281

  23.5 关于防火墙的连接 282

  第24章 从防火墙逃脱 283

  24.1 防火墙做与不做什么 283

  24.2 与远程主机建立连接 285

  24.2.1 绑定exploit,或"幼稚的攻击" 285

  24.2.2 反向exploit 288

  24.2.3 find exploit 290

  24.2.4 重用exploit 292

  24.2.5 fork exploit 294

  24.2.6 sniffer exploit,或被动扫描 295

  第25章 在unix和windows nt下组织远程shell 296

  25.1 blind shell 296

  25.2 多功能shell 297

  第26章 黑客喜欢蜂蜜 300

  26.1 罐里有什么? 301

  26.2 准备攻击 302

  26.3 对蜜罐的认识(casting light on honeypots) 303

  26.4 骗人的诡计 303

  26.5 攻击蜜罐 303

  26.6 在蜜中淹死 304

  第27章 窃听lan 305

  27.1 攻击的目标和方法 305

  hub和相关的缺陷 306

  27.2 被动窃听 307

  检测被动窃听 314

  27.3 主动窃听或arp欺骗 315

  检测主动窃听 317

  27.4 克隆网卡 318

  检测克隆并抵制它 318

  27.5 窃听dial-up流量 318

  27.6 sniffers无用时(when sniffers are useless) 319

  27.7 秘密窃听 319

  27.8 与窃听有关的资源 320

  第28章 攻击之下的数据库 321

  28.1 薄弱的密码加密算法 322

  28.2 密码窃听 322

  28.3 hacking a script 323

  28.4 难忘的查询或sql注入 324

  28.5 怎样检测sql服务器的存在 327

  28.6 抵抗入侵 328

  第6部分 可用于插入的外来对象

  第29章 攻击蓝牙 331

  29.1 什么是蓝牙? 332

  29.2 精确射击型天线 333

  与天线有关的有趣的连接 335

  29.3 认证和授权 335

  关于加密算法的有趣连接 337

  29.4 攻击方法 338

  与蓝牙安全相关的连接 339

  29.5 蓝牙hacking工具概述 339

  widcomm里的溢出错误 340

  第30章 节省gprs费用 342

  30.1 通过代理服务器工作 342

  30.2 google web accelerator 343

  其他的web加速器 344

  30.3 通过telnet隧道 345

  30.4 通过icmp隧道 346

  黑客软件 347

  第31章 关于flashing bios传说与神话 348

  31.1 升级bios的好处 351

  31.1.1 支持新设备 352

  31.1.2 新操作模块 353

  31.1.3 解决冲突 353

  31.2 什么时候升级bios 355

  31.3 hacking bios 355

  31.3.1 深入了解刷新工具 358

  31.3.2 刷新bios的技巧 358

  31.3.3 自我维护的bios 360

  31.3.4 不能自我维护的bios 362

  第32章 病毒感染bios 363

  32.1 怎么进行 364

  32.2 深入bios 365

  32.3 baptizing by fire, or creating an isa rom module 369

  32.4 修改启动块 373

  升高栅栏 374

  32.5 系统超频 375

  32.6 与bios有关的有用的连接 376

  cd内容 377

前言

  我们生活在一个残酷无情的世界里,几乎所有机器上的软件都有安全漏洞,而且其中的大部分还非常严重。黑客、蠕虫、病毒迅速利用这些漏洞,从网络的各个角落发起攻击。据统计,绝大多数的远程攻击是通过溢出缓冲区来完成的,而最常见的就是栈溢出。可以毫不夸张地说,精通溢出缓冲区的那些人主宰着整个世界。如果你希望在如此恶劣的生存环境寻找一本生存指南,从而在易受溢出影响的缓冲区里游刃有余,那么,本书就是为你准备的。隐藏在高级语言编程背后的是一个异常精彩的世界,本书将会为你打开进入它的魔法之门。

  溢出错误为什么如此重要呢?我们能利用它做些什么?怎样发现脆弱的缓冲区?这样的缓冲区对shellcode有何限制?怎样克服这些局限性?应该用什么样的工具编译shellcode?怎样做到向远程主机发送shellcode而不会引起人们的注意?怎样绕过防火墙?怎样发现并分析其他人的shellcode?怎样保护自己的程序,使它免受溢出之害?

  大家都知道,反病毒厂商的圈子相对比较封闭,他们很少向外界透露信息,也不大乐意接受新成员,他们拥有的信息只对圈内人士开放。部分原因可能是基于安全性的考虑,但主要原因可能是怕影响到企业的竞争力。没关系,本书将从某种程度上揭开这层神秘的面纱。

转载请注明出处安可林文章网 » Shellcoder编程揭秘

相关推荐

    声明:此文信息来源于网络,登载此文只为提供信息参考,并不用于任何商业目的。如有侵权,请及时联系我们:fendou3451@163.com