图书介绍
Binary Hacks 黑客秘笈100选PDF|Epub|txt|kindle电子书版本网盘下载
![Binary Hacks 黑客秘笈100选](https://www.shukui.net/cover/17/30261054.jpg)
- 高林哲等著 著
- 出版社: 北京:中国电力出版社
- ISBN:9787508387932
- 出版时间:2010
- 标注页数:370页
- 文件大小:34MB
- 文件页数:380页
- 主题词:计算机网络-安全技术
PDF下载
下载说明
Binary Hacks 黑客秘笈100选PDF格式电子书版下载
下载的文件为RAR压缩包。需要使用解压软件进行解压得到PDF格式图书。建议使用BT下载工具Free Download Manager进行下载,简称FDM(免费,没有广告,支持多平台)。本站资源全部打包为BT种子。所以需要使用专业的BT下载软件进行下载。如BitComet qBittorrent uTorrent等BT下载工具。迅雷目前由于本站不是热门资源。不推荐使用!后期资源热门了。安装了迅雷也可以迅雷进行下载!
(文件页数 要大于 标注页数,上中下等多册电子书除外)
注意:本站所有压缩包均有解压码: 点击下载压缩包解压工具
图书目录
本书寄语1
编写说明3
前言7
第1章介绍13
1.Binary Hack入门13
2.Binary Hack用语的基础知识15
3.用File查询文件的类型22
4.用od转储二进制文件24
第2章目标文件Hack30
5.ELF入门30
6.静态链接库和共享库40
7.通过Idd查阅共享库的依赖关系44
8.用readelf表示ELF文件的信息47
9.用objdump来转储目标文件49
10.用objdump反汇编目标文件53
11.用objcopy嵌入可执行文件的数据57
12.用nm检索包含在目标文件里的符号58
13.用strings从二进制文件中提取字符串64
14.用C++filt对C++的符号进行转储66
15.用addr2line从地址中获取文件名和行号66
16.用strip删除目标文件中的符号68
17.用ar操作静态链接库69
18.在链接C程序和C++程序时要注意的问题70
19.注意链接时的标识符冲突76
20.建立GNU/Linux的共享库 为什么要用PIC编译?82
21.用statifier对动态链接的可执行文件进行模拟静态链接85
第3章GNU编程Hack88
22.GCC的GNU扩展入门88
23.在GCC上使用内联汇编(inline assembler)93
24.活用在GCC的built in函数上的最优化97
25.不使用glibc写Hello World100
26.使用TLS (Thread-Local Storage)104
27.根据系统不同用glibc来更换加载库106
28.由链接后的库来变换程序的运行109
29.控制对外公开库的符号111
30.在对外公开库的符号上利用版本来控制动作114
31.在main()的前面调用函数121
32.GCC根据生成的代码来生成运行时的代码124
33.允许/禁止运行放置在stack里的代码126
34.运行放置在heap上的代码128
35.建成PIE(位置独立运行形式)129
36.用C++书写同步方法(synchronized method)132
37.用C++生成singleton136
38.理解g++的异常处理(throw篇)141
39.理解g++的异常处理(SjLj篇)142
40.理解g++的异常处理(DWARF2篇)149
41.理解g++异常处理的成本153
第4章安全编程Hack156
42.GCC安全编写入门156
43.用-ftrapv检测整数溢出160
44.用Mudflap检测出缓冲区溢出163
45.用-D_ FORTIFY_ SOURCE检测缓冲区溢出166
46.用-fstack-protector保护堆栈170
47.将进行位遮蔽的常量无符号化173
48.注意避免移位过大175
49.注意64位环境中0和NULL的不同之处176
50.POSIX的线程安全函数179
51.安全编写信号处理的方法182
52.用sigwait将异步信号进行同步处理187
53.用sigsafe将信号处理安全化190
54.用V algrind检测出内存泄漏198
55.使用V algrind检测出错误的内存访问200
56.用Helgrind检测出多线程程序的bug204
57.用fakeroot在相似的root权限中运行进程207
第5章运行时Hack211
58.程序转变成main()211
59.怎样调用系统调用220
60.用LD_ PRELOAD更换共享库223
61.用LD_ PRELOAD来lap既存的函数225
62.用dlopen进行运行时的动态链接228
63.用C表示回溯232
64.检测运行中进程的路径名237
65.检测正在加载的共享库240
66.掌握process和动态库map memory246
67.用libbfd取得符号的一览表250
68.运行C++语言时进行demangle254
69.用ffall动态决定签名读出函数257
70.用libdwarf取得调试信息261
71.通过dumper简化dump结构体的数据265
72.自行加载目标文件268
73.通过libunwind控制call chain275
74.用GNU lightning Portable生成运行编码278
75.获得stack的地址281
76.用sigaltstack处理stack overflow285
77.hook面向函数的enter/exit294
78.从signal handler中改写程序的context297
79.取得程序计数器的值299
80.通过自动改写来改变程序的操作300
81.使用SIGSEGV来确认地址的有效性303
82.用strace来跟踪系统调用305
83.用ltrace来跟踪进程调用共享库的函数307
84.用Jockey来记录、再生Linux的程序运行309
85.用prelink将程序启动高速化310
86.通过livepatch在运行中的进程上发布补丁313
第6章profile调试器Hack321
87.使用gprof检索profile321
88.使用sysprof搜索系统profile324
89.使用oprofile获取详细的系统profile326
90.使用GDB操作运行进程330
91.使用硬件调试的功能332
92.C程序中break point的设定可以用断点这个说法336
第7章其他的Hack338
93.Boehm GC的结构338
94.请注意处理器的存储器顺序343
95.对Portable Coroutine Library (PCL)进行轻量的并行处理348
96.计算CPU的clock数351
97.浮点数的bit列表现354
98.x86的浮点数运算命令的特殊性356
99.用结果无限大和NaN化运算来生成信号360
100.文献介绍363