Binary Hacks ―ハッカー秘伝のテクニック100選

Binary Hacks ―ハッカー秘伝のテクニック100選 pdf epub mobi txt 电子书 下载 2026

出版者:オライリー・ジャパン
作者:高林 哲
出品人:
页数:412
译者:
出版时间:2006-11-14
价格:JPY 33.60
装帧:単行本(ソフトカバー)
isbn号码:9784873112886
丛书系列:
图书标签:
  • linux
  • hack
  • Programming
  • 计算机科学
  • 计算机
  • binary
  • unix
  • 日文书
  • 二进制
  • 黑客
  • 安全
  • 编程
  • 漏洞
  • 技术
  • 计算机
  • 逆向工程
  • 调试
  • 实践
想要找书就要到 图书目录大全
立刻按 ctrl+D收藏本页
你会得到大惊喜!!

具体描述

Binary Hacks from O'Reilly Japan is a book about low-level programming on GNU/Linux systems. The goal of the book is to offer useful but not necessarily very well-known techniques as many as we can to readers.

Table of Contents

Chapter 1. Introduction

1. Introduction to Binary Hacks

2. Terminology of Binary Hacks

3. Using "file" to tell file types

4. Using "od" to dump binary files

Chapter 2. Object Files Hacks

5. Introduction to ELF

6. Static libraries and dynamic libraries

7. Using "ldd" to check dependencies of shared libraries

8. Using "readelf" to see information of ELF files

9. Using "objdump" to dump object files

10. Using "objdump" to disassemble object files

11. Using "objcopy" to embed data in executables

12. Using "nm" to see lists of symbols in object files

13. Using "strings" to extract strings from binary files

14. Using "c++filt" to demangle C++ symbols

15. Using "addr2line" to get file names and line numbers by addresses

16. Using "strip" to delete symbols from object files

17. Using "ar" to modify static libraries

18. How to link C and C++ programs

19. How to avoid symbol collision issues

20. Why PIC code is used for shared libraries on GNU/Linux systems

21. Using "statifier" to create pseudo static executables from dynamic executables

Chapter 3. GNU Programming Hacks

22. Introduction to GCC extensions

23. Using inline assembler with GCC

24. Using GCC's builtin functions for optimization

25. Writing "Hello World" without using glibc

26. Using TLS (Thread Local Storage)

27. Switching glibc's internal libraries by system capabilities

28. Changing behavior of programs by linked libraries

29. Reducing exported symbols of libraries

30. Using versioned symbols to manage compatibility

31. Calling functions before main()

32. How GCC generates trampoline code at runtime

33. Allowing and disallowing executable flags of code on stacks

34. Running code on heaps

35. Creating PIE (Position Independent Executable)

36. Writing synchronized methods in C++

37. Creating singletons in C++

38. Understanding g++'s exceptions (throw)

39. Understanding g++'s exceptions (SjLj)

40. Understanding g++'s exceptions (DWARF2)

41. Understanding runtime cost of g++'s exceptions

Chapter 4. Secure Programming Hacks

42. Introduction to GCC secure programming

43. Using "-ftrapv" to detect integer overflows

44. Using "Mudflap" to detect buffer overflows

45. Using "-D_FORTIFY_SOURCE" to detect buffer overflows

46. Using "-fstack-protector" to protect stacks

47. Why you should use unsigned constants to do bitmask

48. Why big shift operations are dangerous

49. Why you should care difference between 0 and NULL on 64-bit systems

50. Thread-safe functions defined by POSIX

51. Writing signal handlers in a safe manner

52. Using "sigwait" to process async signals synchronously

53. Using "sigsafe" to write signal processing safely

54. Using "Valgrind" to detect memory leaks

55. Using "Valgrind" to detect invalid memory access

56. Using "Helgrind" to debug multi-threaded programs

57. Using "fakeroot" to run programs with fake root privilege

Chapter 5. Runtime Hacks

58. How programs reach main()

59. How system calls are called

60. Using "LD_PRELOAD" to switch shared libraries

61. Using "LD_PRELOAD" to wrap existing functions

62. Using "dlopen" to do dynamic linking

63. Showing backtraces with C programs

64. Checking running process's absolute path

65. Checking loaded shared libraries of running programs

66. Checking memory maps of running programs

67. Using "libbfd" to list symbols

68. Demangling C++ symbols at runtime

69. Using "ffcall" to call functions with dynamic signatures

70. Using "libdwarf" to get debug information

71. Using "dumper" to pretty-print struct variables

72. How to load object files yourself

73. Using "libunwind" to control call chains

74. Using "GNU lightning" to generate code in a portable manner

75. Getting addresses of stacks

76. Using "sigaltstack" to handle stack overflows

77. Hooking entering and exiting of functions

78. Modifying contexts of programs in signal handlers

79. Getting values of program counters

80. Rewriting your programs at runtime

81. Using "SIGSEGV" to validate accessibility of addresses

82. Using "strace" to trace system calls

83. Using "ltrace" to trace function calls in shared libraries

84. Using "Jockey" to record and replay programs

85. Using "prelink" to improve programs starting up time

86. Using 'livepatch" to patch running programs

Chapter 6. Profilers and Debuggers Hacks

87. Using "gprof" to profile programs

88. Using "sysprof" to profile systems very easily

89. Using "oprofile" to profile systems

90. Using "GDB" to control running programs

91. Using debugging support of hardware

92. Setting break points in your C programs

Chapter 7. Misc Hacks

93. How Boehm GC works

94. Why you should be careful about memory ordering of processors

95. Light-weight concurrent processing with PCL (Portable Coroutine Library)

96. Counting clock counts of CPUs

97. How floating numbers are expressed in bits

98. What's special about x86's floating numbers instructions

99. Raising signals for operations resulting infinite or NAN.

100. Further reading

作者简介

目录信息

读后感

评分

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

评分

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

评分

我不会日语,所以把原书给我我也看不懂。这里只说中文版。今天刚拿到书,看第二章,ELF的规范我看过不止一遍,即使这样我也不知道第二章的前10页在说什么,或者说我很难把这些汉字和我看过的东西联系在一起,即便是我在大脑中进行"中文<--->英文"的转换之后。 这本书的中文用...  

评分

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

评分

本书在美国 amazon上的网页: http://www.amazon.com/BINARY-HACKS-Tips-hackers-election/dp/7508387937/ 看到了吗? Author 是:GAO LIN ZHE ( DENG ) JIANG BIN YANG CHAO YI 太诡异了!狗屎翻译跟病毒一样,还具有传染性!

用户评价

评分

这本书给我的最大感受是“深度”与“实用性”的完美结合,而且这种结合的方式相当硬核。它没有那种“友好的”引导,而是直接将你抛入问题的核心,然后用一系列极具洞察力的技术点来武装你。我个人对其中关于特定硬件交互和操作系统调度机制的部分特别感兴趣,作者对这些复杂流程的拆解和重构能力令人赞叹。很多时候,我们面对的是一个黑盒子,而这本书就像一把定制的万能钥匙,让你能够绕过表面的抽象层,直接与底层硬件进行“对话”。这种对话带来的信息量是巨大的,它能让你在设计架构时,就预先考虑到那些可能导致系统崩溃或效率低下的“隐形陷阱”。对于那些渴望在技术深度上寻求突破的工程师而言,这本书提供的不仅仅是知识,更是一种思维模式的转变,一种更加主动、更具控制欲的技术心态。

评分

这本电子书,光看名字就让人热血沸腾,是那种能在深夜里点燃你好奇心的读物。它不像那些充斥着晦涩理论的教科书,反而更像是一本武林秘籍,里面的每一个“招式”都带着一股实战的烟火气。我记得我刚接触它的时候,正值职业瓶颈期,感觉自己会的那些都是皮毛,对那些真正“地下”的技巧一无所知。这本书的厉害之处在于,它没有过多地渲染理论的宏大叙事,而是直接抛出了一个又一个“黑箱”操作的解决方案。比如,书中对内存布局的某些非常规操作,简直是颠覆了我以往的认知,让我明白了为什么有些程序能跑得如此极限和高效。它让你感觉自己像是一个刚刚被授予了某种古老技艺的学徒,迫不及待地想在自己的代码库里试上一试。那种从“知其然”到“知其所以然”的跨越,带来的满足感是难以言喻的。它真的让你从一个代码的使用者,蜕变成一个能够深入挖掘系统底层秘密的“工匠”。

评分

说实话,刚开始接触这本书时,我还有些许的保留意见,觉得名字取得太夸张,会不会内容也是华而不实。但随着阅读的深入,这种疑虑彻底烟消云散了。它确实提供了一些非常规但极其有效的技巧,有些甚至是我在业界工作多年都未曾耳闻的“野路子”。这本书的叙事方式非常注重“效果导向”,很多章节的切入点都非常刁钻,直击那些最令人头疼的性能瓶颈或兼容性难题。它不是那种循规蹈矩的教材,更像是一个经验丰富的老兵在给你传授那些从无数次失败中提炼出来的“保命符”。阅读过程中,我经常需要停下来,对照自己的项目环境去验证那些操作的有效性,每验证成功一次,都伴随着一种“原来如此”的顿悟。这本书的价值,在于它提供了一种超越官方文档和主流框架限制的视角,让你得以窥见软件世界更深层、更具操作性的运行机制。

评分

翻开这本书的瞬间,我立刻被它那种直截了当的风格所吸引。没有冗长的前言和对历史的追溯,作者似乎直接把我拉到了一个充满挑战的实战现场。内容组织上,它更像是一系列精妙的“工具箱”集合,每个工具都有其特定的应用场景和使用限制。我尤其欣赏它对系统调用层面的深入剖析,很多我们日常编程中被框架或库完美封装起来的底层细节,在这里被毫不留情地剥开,展露出其最原始的形态。这对于那些追求极致性能和对安全边界有深刻理解的开发者来说,无疑是一份珍宝。它迫使你不再满足于仅仅让代码跑起来,而是要去探究它跑起来的每一个时钟周期中,到底发生了什么。这种对细节的偏执和对效率的极致追求,让这本书的价值远远超出了单纯的技术参考手册的范畴,更像是一份深入系统内核的“探险地图”。

评分

要评价这本书,我必须提到它所蕴含的“反主流”精神。在如今这个过度依赖高级抽象层的时代,这本书却逆流而上,鼓励读者去探究那些被遗忘或刻意隐藏的底层细节。它不是教你如何写出更漂亮的面向对象代码,而是教你如何在性能的极限边缘挤出每一滴油水。书中的许多“技巧”,其前提都是对特定平台或编译器的深入理解,这要求读者必须具备扎实的基础功。然而,一旦你掌握了这些技巧,你就会发现自己在面对复杂系统问题时,拥有了别人没有的“上帝视角”。这是一种非常令人兴奋的体验,就好比你从一个只能在高速公路上开车的司机,变成了一个可以随时拆开发动机进行深度调校的机械师。这本书的价值在于,它培养的是一种不被表象所迷惑,勇于深挖本质的工程师精神。

评分

评分

把目前能看懂的hacks读完了。原书很不错,中文版则充分演绎了什么叫做狗屎一样的翻译。

评分

评分

把目前能看懂的hacks读完了。原书很不错,中文版则充分演绎了什么叫做狗屎一样的翻译。

评分

把目前能看懂的hacks读完了。原书很不错,中文版则充分演绎了什么叫做狗屎一样的翻译。

相关图书

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

© 2026 book.wenda123.org All Rights Reserved. 图书目录大全 版权所有