Binary Hacks:黑客秘笈100选
¥
35.34
9.1折
¥
39
九五品
仅1件
作者[日]高林哲 著;蒋斌、杨超 译
出版社中国电力出版社
出版时间2010-01
版次1
装帧平装
上书时间2024-11-19
商品详情
- 品相描述:九五品
图书标准信息
-
作者
[日]高林哲 著;蒋斌、杨超 译
-
出版社
中国电力出版社
-
出版时间
2010-01
-
版次
1
-
ISBN
9787508387932
-
定价
39.00元
-
装帧
平装
-
开本
18开
-
纸张
胶版纸
-
页数
370页
-
字数
379千字
-
正文语种
简体中文
- 【内容简介】
-
《BinaryHacks:黑客秘笈100选》的主题是关于底层程序的技术。说到底层,就是和“原始的”计算机很接近的意思。软件的世界是一个抽象化的积累,逐步演化到现在的阶段。抽象化就是隐藏底层的复杂部分,相比较来说是可以提高生产性、安全性的方法,并给开发者提供程序化的手段。但是,如果认为完全不依赖底层系统级的技术来进行编程,这是行不通的。追求性能上的最佳,尽可能提高可信赖性,想解决偶尔发生的“谜一样的错误”,在这些情况下,了解底层系统级的技术就显得尤为重要。遗憾的是,抽象化并不能代替所有的。
《BinaryHacks:黑客秘笈100选》的目的就是在上述的情况下,都能使用的大量Know-how的介绍。《BinaryHacks:黑客秘笈100选》BinaryHack定义为“能驱动软件的底层技术的Know-how”,从最基本的工具使用开始,安全编程,OS到提高处理器的处理性能的技术,在一个很宽泛的范围内都进行了说明。
- 【目录】
-
本书寄语
编写说明
前言
第1章介绍
1.BinaryHack入门
2.BinaryHack用语的基础知识
3.用File查询文件的类型
4.用od转储二进制文件
第2章目标文件Hack
5.ELF入门
6.静态链接库和共享库
7.通过Idd查阅共享库的依赖关系
8.用readelf表示ELF文件的信息
9.用objdump来转储目标文件
10.用objdump反汇编目标文件
11.用Objcopy嵌入可执行文件的数据
12.用am检索包含在目标文件里的符号
13.用strings从二进制文件中提取字符串
14.用c++filt对C++的符号进行转储
15.用addr2line从地址中获取文件名和行号
16.用strip删除目标文件中的符号
17.用ar操作静态链接库
18.在链接c程序和c++程序时要注意的问题
19.注意链接时的标识符冲突
20.建立GNU/Linux的共享库,为什么要用PIC编译?
21.用statitier’对动态链接的可执行文件进行模拟静态链接
第3章GNU编程Hack
22.GCC的GNU扩展入门
23.在GCC上使用内联汇编(inlineassembler)
24.活用在GCC的builtin函数上的最优化
25.不使用glibc写HelloWorld
26.使用TLS(Thread-LocalStorage)
27.根据系统不同用glibc来更换加载库
28.由链接后的库来变换程序的运行
29.控制对外公开库的符号
30.在对外公开库的符号上利用版本来控制动作
31.在main()的前面调用函数
32.GCC根据生成的代码来生成运行时的代码
33.允许,禁止运行放置在stack里的代码
34.运行放置在heap上的代码
35.建成PIE(位置独立运行形式)
36.用C++书写同步方法(synchronizedmethod)
37.用C++生成singleton
38.理解g++的异常处理(tllrow篇)
39.理解g++的异常处理(sjLj篇)
40.理解g++的异常处理(DWARF2篇)
41.理解g++异常处理的成本
第4章安全编程Htick
42.GCC安全编写入门
43.用-ftrapv检测整数溢出
44.用Mudflap检测出缓冲区溢出
45.用-D_FORTIFY_SOURCE检测缓冲区溢出
46.用-fstack-protector保护堆栈
47.将进行位遮蔽的常量无符号化
48.注意避免移位过大
49.注意64位环境中0和NULL的不同之处
50.POSIX的线程安全函数
51.安全编写信号处理的方法
52.用sigwait将异步信号进行同步处理
53.用sigsafe将信号处理安全化
54.用Valgrind检测出内存泄漏
55.使用Valgrind检测出错误的内存访问
56.用Helgrind检测出多线程程序的bug
57.用fakeroot在相似的root权限中运行进程
第5章运行时HaCk
58.程序转变成main()
59.怎样调用系统调用
60.用LD_PRELOAD更换共享库
61.用LD_PRELOAD来lap既存的函数
62.用dlopen进行运行时的动态链接
63.用C表示回溯
64.检测运行中进程的路径名
65.检测正在加载的共享库
66.掌握process和动态库mapmemory
67.用libbfd取得符号的一览表
68.运行C++语言时进行demangle
69.用ffcall动态决定签名,读出函数
70.用libdwarf取得调试信息
71.通过dumper简化dump结构体的数据
72.自行加载目标文件
73.通过libunwind控制callchain
74.用GNulightningPortable生成运行编码
75.获得stack的地址
76.用sigaltstack处理stackoverflow
77.hook面向函数的enter/exit
78.从signalhandler中改写程序的context
79.取得程序计数器的值
80.通过自动改写来改变程序的操作
81.使用SIGSEGV来确认地址的有效性
82.用strace来跟踪系统调用
83.用ltrace来跟踪进程调用共享库的函数
84.用Jockey来记录、再生Linux的程序运行
85.用prelink将程序启动高速化
86.通过livepatch在运行中的进程上发布补丁
第6章profile调试器Hack
87.使用gprof检索profile
88.使用sysprof搜索系统profile
89.使用oprofile获取详细的系统profile
90.使用GDB操作运行进程
91.使用硬件调试的功能
92.c程序中breakpoint的设定可以用断点这个说法
第7章其他的Hack
93.BoehmGC的结构
94.请注意处理器的存储器顺序
95.对PortableCoroutineLibrary(PCL)进行轻量的并行处理
96.计算CPU的clock数
97.浮点数的bit列表现
98.x86的浮点数运算命令的特殊性
99.用结果无限大和NaN化运算来生成信号
100.文献介绍
点击展开
点击收起
— 没有更多了 —
以下为对购买帮助不大的评价