内容简介
本书内容包括:介绍;目标文件Hack;GNU编程Hack;安全编程Hack;运行时Hack;profile调试器Hack等。
目录
本书寄语 编写说明 前言 ???? 介绍 1.Binary Hack入门 2.Binary Hack用语的基础知识 3.用File查询文件的类??br> 4.用0d转储二进制文??br>???? 目标文件Hack 5.ELF入门 6.静态链接库和共享库 7.通过Idd查阅共享库的依赖关系 8.用readelf表示ELF文件的信??br> 9.用objdump来转储目标文??br> 10.用objdump反汇编目标文??br> 11.用objcopy嵌入可执行文件的数据 12.用nm检索包含在目标文件里的符号 13.用strings从二进制文件中提取字符串 14.用c filt对c 的符号进行转??br> 15.用addr2line从地址中获取文件名和行??br> 16.用strip删除目标文件中的符号 17.用ar操作静态链接库 18.在链接C程序和C 程序时要注意的问??br> 19.注意链接时的标识符冲突 20.建立GNu,Linux的共享库,为什么要用PIC编译 21.用statifier对动态链接的可执行文件进行模拟静态链??br>???? GNU编程Hack 22.GCC的GNU扩展入门 23.在GCc上使用内联汇??inline assembler) 24.活用在GCC的built in函数上的化 25.不使用glibc写Hello World 26.使用TLS(Thread—Local Stotage) 27.根据系统不同用glibc来更换加载库 28.由链接后的库来变换程序的运??br> 29.控制对外公开库的符号 30.在对外公开库的符号上利用版本来控制动作 31.在main()的前面调用函??br> 32.GCC根据生成的代码来生成运行时的代码 33.允许/禁止运行放置在stack里的代码 34.运行放置在heap上的代码 35.建成PIE(位置独立运行形式) 36.用C 书写同步方法(synchronized method) 37.用C 生成singleton 38.理解g 的异常处??thrOW?? 39.理解g 的异常处??sjLj?? 40.理解g 的异常处??DwARF2?? 41.理解g 异常处理的成??br>???? 安全编程Hack 42.GCC安全编写入门 43.用一ftrapv检测整数溢??br> 44.用Mudflap检测出缓冲区溢??br> 45.用一D—FORTIFY—SOuRcE检测缓;中区溢??br> 46.用一fstack—protectm‘保护堆??br> 47.将进行位遮蔽的常量无符号化 48.注意避免移位过??br> 49.注??4位环境中0和NULL的不同之??br> 50.POSIx的线程安全函??br> 51.安全编写信号处理的方法 52.用sigwait将异步信号进行同步处??br> 53.用sigsafe将信号处理安全化 54.用Valgrind检测出内存泄漏 55.使用Valgrind检测出错误的内存访??br> 56.用Helgrind检测出多线程程序的bug 57.用fakeroot在相似的root权限中运行进??br>???? 运行时Hack 58.程序转变成main() 59.怎样调用系统调用 60.用LD-PRELOAD更换共享??br> 61.用LD-PRELOAD来lap既存的函??br> 62.用dlopen进行运行时的动态链??br> 63.用c表示回溯 64.检测运行中进程的路径名 65.检测正在加载的共享??br> 66.掌握process和动态库map memory 67.用libbfd取得符号的一览表 68.运行c 语言时进行demangle 69.用ffcall动态决定签名,读出函数 70.用1ibdwaif取得调试信息 71.通过dumper简化dump结构体的数据 72.自行加载目标文??br> 73.通过libunwind控制call chain 74.用GNU lightning Portable生成运行编码 75.获得stack的地址 76.用sigaltstack处理stack overflow 77.hook面向函数的enter/exit 78.从signal handler中改写程序的context 79.取得程序计数器的??br> 80.通过自动改写来改变程序的操作 81.使用sIGSEGV来确认地址的有效??br> 82.用strace来跟踪系统调??br> 83.用1trace来跟踪进程调用共享库的函??br> 84