Binary Hacks

Binary Hacks pdf epub mobi txt 电子书 下载 2026

出版者:
作者:[日] 高林哲 等
出品人:
页数:370
译者:
出版时间:2010-1
价格:39.00元
装帧:
isbn号码:9787508387932
丛书系列:
图书标签:
  • 计算机
  • hacks
  • Linux
  • 编程
  • binary
  • C/C++
  • 程序设计
  • 中文版
  • 逆向工程
  • 二进制分析
  • 漏洞利用
  • 安全
  • 黑客
  • 调试
  • 汇编
  • Windows
  • Linux
  • CTF
想要找书就要到 小美书屋
立刻按 ctrl+D收藏本页
你会得到大惊喜!!

具体描述

《Binary Hacks:黑客秘笈100选》的主题是关于底层程序的技术。说到底层,就是和“原始的”计算机很接近的意思。软件的世界是一个抽象化的积累,逐步演化到现在的阶段。抽象化就是隐藏底层的复杂部分,相比较来说是可以提高生产性、安全性的方法,并给开发者提供程序化的手段。但是,如果认为完全不依赖底层系统级的技术来进行编程,这是行不通的。追求性能上的最佳,尽可能提高可信赖性,想解决偶尔发生的“谜一样的错误”,在这些情况下,了解底层系统级的技术就显得尤为重要。遗憾的是,抽象化并不能代替所有的。

《Binary Hacks:黑客秘笈100选》的目的就是在上述的情况下,都能使用的大量Know-how的介绍。《Binary Hacks:黑客秘笈100选》Binary Hack定义为“能驱动软件的底层技术的Know-how”,从最基本的工具使用开始,安全编程,OS到提高处理器的处理性能的技术,在一个很宽泛的范围内都进行了说明。

作者简介

目录信息

本书寄语
编写说明
前言
第1章介绍
1.binary hack入门
2.binary hack用语的基础知识
3.用file查询文件的类型
4.用od转储二进制文件
第2章目标文件hack
5.elf入门
6.静态链接库和共享库
7.通过idd查阅共享库的依赖关系
8.用readelf表示elf文件的信息
9.用objdump来转储目标文件
10.用objdump反汇编目标文件
11.用objcopy嵌入可执行文件的数据
12.用nm检索包含在目标文件里的符号
13.用strings从二进制文件中提取字符串
14.用c++filt对c++的符号进行转储
15.用addr21ine从地址中获取文件名和行号
.16.用strip删除目标文件中的符号
17.用ar操作静态链接库
18.在链接c程序和c++程序时要注意的问题
19.注意链接时的标识符冲突
20.建立gnu/linux的共享库,为什么要用pic编译?
21.用statifier对动态链接的可执行文件进行模拟静态链接
第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++的异常处理(throw篇)
39.理解g++的异常处理(sjlj篇)
40.理解g++的异常处理(dwarf2篇)
41.理解g++异常处理的成本
第4章安全编程hack
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控制call chain
74.用gnu lightning portable生成运行编码
75.获得stack的地址
76.用sigaltstack处理stack overflow
77.hook面向函数的enter/exit
78.从signal handler中改写程序的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.对portable coroutine library(pcl)进行轻量的并行处理
96.计算cpu的clock数
97.浮点数的bit列表现
98.x86的浮点数运算命令的特殊性
99.用结果无限大和nan化运算来生成信号
100.文献介绍
· · · · · · (收起)

读后感

评分

随便一翻,看到Hack100,文献。 严重怀疑作者没有相关行业背景, 详解Unix编程 应该是 Advanced Programing in the Unix Environment 国内翻译叫做Unix环境高级编程。 计算机的构成和设计, 应该是Computer Organization and Design. 国内翻译我记得是,计算机组织与设计 D...  

评分

刚看到这本书的时候,欣喜啊,觉得又有一本经典的编程著作问世了。可是看了china-pub上的书评,听说这本书是用金山快译翻译的,有点不敢买了。 在很久以前,上中学的时候,有个老师告诉我们,要是作者在书里留下了联系方式,说明这个作者是一个负责的人,这样的书可以买,就算...  

评分

翻译的实在太差,大量的句子不通顺、用词匪夷所思。很差,是给译者和编辑,大败OReilly的牌子。书的内容对于学习了解Linux开发一些底层知识和技巧还是有价值的,我是把书中的内容作为索引在网上搜索自学的。 期待有负责的人士重新翻译出版。  

评分

《Binary Hacks:黑客秘笈100选》的主题是关于底层程序的技术。说到底层,就是和“原始的”计算机很接近的意思。软件的世界是一个抽象化的积累,逐步演化到现在的阶段。抽象化就是隐藏底层的复杂部分,相比较来说是可以提高生产性、安全性的方法,并给开发者提供程序化的手段。...  

评分

刚看到这本书的时候,欣喜啊,觉得又有一本经典的编程著作问世了。可是看了china-pub上的书评,听说这本书是用金山快译翻译的,有点不敢买了。 在很久以前,上中学的时候,有个老师告诉我们,要是作者在书里留下了联系方式,说明这个作者是一个负责的人,这样的书可以买,就算...  

用户评价

评分

我是在一个技术论坛上偶然看到有人推荐这本书的,说它对理解现代分布式系统的设计理念有奇效。拿到手后我立刻翻阅了目录,发现其中对“异步I/O模型”和“事件驱动架构”的章节描述得相当深入,这正是我目前工作中最头疼的领域之一。我抱着试试看的心态去阅读了关于“零拷贝”技术的章节,结果被作者的阐述方式彻底折服了。他没有直接堆砌数据结构和系统调用接口,而是构建了一个复杂的物流中心模型,详细描绘了数据包在内核态和用户态之间搬运时产生的“物理搬运工成本”,通过这个具象化的比喻,我立刻明白了为什么零拷贝在特定场景下能带来质的飞跃。这种将抽象概念具象化的叙事能力,在技术书籍中是极为罕见的。我甚至感觉这不是在看一本技术书,更像是在听一位经验丰富的大佬在分享他多年踩坑的血泪史,那种真诚和洞察力,让人忍不住想一口气读完,然后立刻应用到自己的项目中去验证一番。

评分

这本书的封面设计得非常有吸引力,那种深沉的蓝色调配上醒目的霓虹灯字体,一下子就抓住了我的眼球。我本以为这会是一本关于编程语言底层奥秘的硬核技术手册,毕竟书名听起来就充满了技术范儿,但实际上,它带给我的体验远超预期。里面的内容似乎更偏向于系统架构和性能调优的哲学探讨,而不是枯燥的语法讲解。作者在开篇就抛出了几个引人深思的问题,关于如何在资源受限的环境下榨取出系统的最大潜能,这立刻让我放下了手里正在看的另一本老旧的编译原理教材,全身心投入到这本书的阅读中。尤其让我印象深刻的是关于内存管理那几个章节,他没有用传统的教科书式定义去解释什么是指针,而是通过一个生动的前后端工程师协作的场景来比喻内存分配与回收的复杂性,那种叙事的手法非常新颖,让那些原本晦涩的概念变得清晰易懂,仿佛一下子打通了任督二脉。整本书的节奏把控得非常好,知识点的密度既能满足专业人士的需求,又不会让初学者望而却步,真是一本难得的佳作。

评分

坦白说,我挑选这本书的时候,只是被它那充满未来感的标题所吸引,期望能看到一些关于未来计算范式的猜想。阅读过程中我发现,它对数据结构与算法的讨论,角度非常独特。比如,在谈到哈希表的冲突解决机制时,作者并没有停留在拉链法或开放寻址法的常规介绍,而是引入了博弈论的视角,讨论在恶意输入或极端负载下,不同的冲突解决策略如何影响系统的稳定性,这简直是教科书级别的思维跃迁。每当我觉得自己要跟不上作者的思路时,他总会用一个精心设计的代码片段或者一个历史案例来及时拉住我,让人既感到挑战,又不至于迷失。尤其是关于“算法的代价”那一章,它探讨的不是时间复杂度O(n),而是算法在真实硬件环境下对能耗和散热的影响,这种宏观的、跨学科的视角,极大地拓宽了我对“高效”的定义。这本书让我开始重新审视那些我习以为常的基础知识,发现它们背后蕴藏的复杂权衡。

评分

我一直认为,一本好的技术书应该具备如同散文诗般的韵律感,而这本书恰恰满足了这一点。它的文字流畅自然,即使是描述复杂的并发控制机制,也读起来毫无滞涩感。我特别喜欢作者在章节末尾设置的“思考的岔路口”环节,它不是传统的习题,而是抛出一系列开放性的伦理或工程决策问题,引导读者去思考技术背后的社会责任和工程取舍。例如,在讨论数据库事务隔离级别时,作者巧妙地将“可重复读”与“快照隔离”的权衡,类比成了两条不同哲学派系对“真实”的定义,读完之后,我感觉自己不仅在学习技术,更是在进行一场深刻的哲学思辨。这种将人文精神融入冰冷代码的做法,使得这本书具有了超越时效性的价值,它不仅仅是一本工具书,更像是一本可以伴随工程师职业生涯成长的思想伙伴。

评分

这本书的排版和图示设计简直是艺术品级别的。我之前读过很多技术书籍,插图往往是草草勾勒的流程图,但这本书中的每一个图示,都经过了精心的美学处理和信息密度优化。比如,在解释TCP拥塞控制的“慢启动”阶段时,作者用了一个像爬藤植物向上生长的动态图景来描绘窗口大小的指数增长,那种视觉上的冲击力和记忆点是单一的数学曲线无法比拟的。更让我惊喜的是,作者在书中引用了大量经典计算机科学家的生平片段作为引言,这些小故事不仅软化了技术内容的严肃性,更重要的是,它们揭示了许多重要算法和理论的诞生背景——往往是源于某个特定的历史困境或个人顿悟。这种叙事方式极大地增强了阅读的沉浸感,让我仿佛置身于那个技术思潮涌动的年代,去感受那些先驱者们是如何一步步构建起我们今天依赖的数字世界的。

评分

同 debug hacks

评分

很不错的书

评分

不喜欢,太散

评分

原书不错,估计只是翻译的错了,唉,毁书不倦~~

评分

原书四星;翻译一星,好多自造的术语

本站所有内容均为互联网搜索引擎提供的公开搜索信息,本站不存储任何数据与内容,任何内容与数据均与本站无关,如有需要请联系相关搜索引擎包括但不限于百度google,bing,sogou

© 2026 book.quotespace.org All Rights Reserved. 小美书屋 版权所有