成功加入购物车
[日] 高林哲 著; 蒋斌 、 杨超 译 / 中国电力出版社 / 2010-01 / 平装
售价 ¥ 88.00
品相 九五品
优惠 满包邮
延迟发货说明
上书时间2018-11-26
卖家超过10天未登录
Binary Hacks:黑客秘笈100选
《BinaryHacks:黑客秘笈100选》的主题是关于底层程序的技术。说到底层,就是和“原始的”计算机很接近的意思。软件的世界是一个抽象化的积累,逐步演化到现在的阶段。抽象化就是隐藏底层的复杂部分,相比较来说是可以提高生产性、安全性的方法,并给开发者提供程序化的手段。但是,如果认为完全不依赖底层系统级的技术来进行编程,这是行不通的。追求性能上的最佳,尽可能提高可信赖性,想解决偶尔发生的“谜一样的错误”,在这些情况下,了解底层系统级的技术就显得尤为重要。遗憾的是,抽象化并不能代替所有的。
《BinaryHacks:黑客秘笈100选》的目的就是在上述的情况下,都能使用的大量Know-how的介绍。《BinaryHacks:黑客秘笈100选》BinaryHack定义为“能驱动软件的底层技术的Know-how”,从最基本的工具使用开始,安全编程,OS到提高处理器的处理性能的技术,在一个很宽泛的范围内都进行了说明。
本书寄语编写说明前言第1章介绍1.BinaryHack入门2.BinaryHack用语的基础知识3.用File查询文件的类型4.用od转储二进制文件第2章目标文件Hack5.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编程Hack22.GCC的GNU扩展入门23.在GCC上使用内联汇编(inlineassembler)24.活用在GCC的builtin函数上的最优化25.不使用glibc写HelloWorld26.使用TLS(Thread-LocalStorage)27.根据系统不同用glibc来更换加载库28.由链接后的库来变换程序的运行29.控制对外公开库的符号30.在对外公开库的符号上利用版本来控制动作31.在main()的前面调用函数32.GCC根据生成的代码来生成运行时的代码33.允许,禁止运行放置在stack里的代码34.运行放置在heap上的代码35.建成PIE(位置独立运行形式)36.用C++书写同步方法(synchronizedmethod)37.用C++生成singleton38.理解g++的异常处理(tllrow篇)39.理解g++的异常处理(sjLj篇)40.理解g++的异常处理(DWARF2篇)41.理解g++异常处理的成本第4章安全编程Htick42.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检测出多线程程序的bug57.用fakeroot在相似的root权限中运行进程第5章运行时HaCk58.程序转变成main()59.怎样调用系统调用60.用LD_PRELOAD更换共享库61.用LD_PRELOAD来lap既存的函数62.用dlopen进行运行时的动态链接63.用C表示回溯64.检测运行中进程的路径名65.检测正在加载的共享库66.掌握process和动态库mapmemory67.用libbfd取得符号的一览表68.运行C++语言时进行demangle69.用ffcall动态决定签名,读出函数70.用libdwarf取得调试信息71.通过dumper简化dump结构体的数据72.自行加载目标文件73.通过libunwind控制callchain74.用GNulightningPortable生成运行编码75.获得stack的地址76.用sigaltstack处理stackoverflow77.hook面向函数的enter/exit78.从signalhandler中改写程序的context79.取得程序计数器的值80.通过自动改写来改变程序的操作81.使用SIGSEGV来确认地址的有效性82.用strace来跟踪系统调用83.用ltrace来跟踪进程调用共享库的函数84.用Jockey来记录、再生Linux的程序运行85.用prelink将程序启动高速化86.通过livepatch在运行中的进程上发布补丁第6章profile调试器Hack87.使用gprof检索profile88.使用sysprof搜索系统profile89.使用oprofile获取详细的系统profile90.使用GDB操作运行进程91.使用硬件调试的功能92.c程序中breakpoint的设定可以用断点这个说法第7章其他的Hack93.BoehmGC的结构94.请注意处理器的存储器顺序95.对PortableCoroutineLibrary(PCL)进行轻量的并行处理96.计算CPU的clock数97.浮点数的bit列表现98.x86的浮点数运算命令的特殊性99.用结果无限大和NaN化运算来生成信号100.文献介绍
展开全部
配送说明
...
相似商品
为你推荐
开播时间:09月02日 10:30