Wu.Country@侠缘

勤学似春起之苗,不见其增,日有所长; 辍学如磨刀之石,不见其损,日所有亏!

导航

[读书笔记]Binary Hancks(1)

本书真的很不错,虽然它的名字叫做“黑客”,但它所讲述的内容却是一个程序员,特别是一个Linux程序员,或者说是C程序员必备的知识!

 

第一讲:二进制Hack的技巧分为6大类:

1、各种工具、库

2、二进制格式

3、系统调用

4、OS功能

5、处理器功能

6、编译器功能

 

从这几大类上就可以看出来,它并不是所谓的黑客工具或者攻略之类的东西,而是深入理解二进制程序的相关知识。相信很多程序写过很多程序,但都没有深入理解二进制文件的格式以及编译、链接、静态分析等之类的东西!从这里开始,你将了解这些东西!

 

第二计:Binary Hacks的用语基础知识

应用二进制接口ABI(Application Binary Interface),EABI

应用程序接口API(Application Programming Interface)

初始符号段BBS Segment(Block Started Bymbol Segment)

动态共享对象DSO(Dynamic Shared Object)

任意记录格式高度DWARF(Debug With Arbitrary Record Format)

可执行可链接格式ELF(Executable and Linking Format)

GCC(GNU Complier Collection)

glibc(Gnu C Library)

GNU(GNU's Not Unix)

GNU/Linux

全局偏移表GOT(Global Offset Table)

LLP64 long long和指针都占64位,int和long都占32位的数据模型

LP64 long和指针占64位,int占32位的数据模型

位置无关代码PIC(Position Idependent Code)

位置无关的可执行程序PIE(Position Idependent Executable)

程序链接表PLT(Procedure Linkage Table)

POSIX(Protable Operating System Interface for Unix)

SUS(Single Unix Specification)

线程本地存储TLS(Thread Local Storage)

预链接(prelink)

静态链接(Staitc Link)

工具链(toolschain)

数据段(Data segment)

代码段(Text segment)

调试器(Debuger)

调试信息(Debug infomation)

符号重组(demangle)

动态链接(Dynamic link)

动态链接库(Dynamic link library)

名称改编(name mangline)

Binarian 精通Binary Hack方面技术的工程师

栈跟踪,栈回塑(backstrace)

堆(heap)

断点(break point)

程序计数器(program conter)

进程(process)

Profile 程序性能解析

函数调用约定(Calling Convention)

运行时(runtime)

链接(link)

反射(reflection)

装载,加载(load)

 

有多少人知道上面所有的名词?本书会慢慢的带你了解这些基础知识!

posted on 2010-02-20 22:54  Wu.Country@侠缘  阅读(975)  评论(0编辑  收藏  举报